当前位置: 首页 > news >正文

衡阳网站定制网站建设费属于服务类么

衡阳网站定制,网站建设费属于服务类么,深圳网站建设_请到中投网络,asp网站后台密码文件如何构建Zdal#xff0c;这篇文章主要介绍如何在传统的Java Web项目中引入Zdal#xff0c;来达到分库或者分表的目的#xff0c;本文是《zdal设计文档》的实战补充。添加zdal-client依赖在Zdal项目中有很多模块#xff0c;这些模块分别有着不同的功能和角色#xff0c;在z…如何构建Zdal这篇文章主要介绍如何在传统的Java Web项目中引入Zdal来达到分库或者分表的目的本文是《zdal设计文档》的实战补充。添加zdal-client依赖在Zdal项目中有很多模块这些模块分别有着不同的功能和角色在zdal-doc中的《zdal设计文档》中是这么给每个模块定义的:zdal-client : 加载本地配置文件初始化各种数据源调整数据源的配置信息路由规则等zdal-datasource : 管理访问数据库连接的组件控制app对数据库资源的使用目前支持mysqloracledb2等数据库的数据访问zdal-parser : 手工编写的高性能的方便扩展的SQL Parser支持MySQL、Oracle,DB2等流行关系数据库的SQL Parserzdal-rule : 在分库分表中根据拆分字段进行选库选表的组件基于groovy规则引擎zdal-common : Zdal功能所用到一些公共组件类我们在使用zdal中间件的时候其实只需要在POM中引用zdal-client即可zdal-client已经依赖了内部其他组件同时建议剔除掉对Spring的引用主要是为了防止Spring版本的冲突com.alipay.zdalzdal-client0.0.1org.springframeworkspringDataSource替换成ZdalDataSource笔者在《分库分表技术概览》一文中总结过分库分表现在主要是两种解决方案应用层依赖类中间件和中间层代理类中间件。Zdal属于应用层依赖类中间件主要是通过重写JDBC接口的方式来实现的应用层使用ORM框架并没有本质的影响因为ORM框架底层还是用的JDBC技术来访问数据库。在JDBC规范中主要是通过DataSource来获取数据库连接而Zdal也提供了这样一种与以往不同的DataSource。传统项目中可能使用c3p0这种有连接池功能的DataSource类似于这种配置现在Zdal中间件为了对上层尽可能的透明尽量少的修改业务代码把分库分表的逻辑封装在DataSource下面对上层提供ZdalDataSource的实现用户替换掉老的c3p0数据源即可这里的appName即应用项目的名字appDsName是真实数据源的名字dbmode的初衷是为了区分开发和生产环境(其实现在很多maven项目可以通过profile和命令行指定的方式来指定特定环境的文件这种dbmode的方式其实作用不大)configPath是真实数据库配置和规则配置文件的基本地址。原来的zdal代码中configPath不支持从classpath中加载可以在ZdalConfigurationLoader中删除 File configurationFile new File(configPath, MessageFormat.format(Constants.LOCAL_CONFIG_FILENAME_SUFFIX, appName, dbMode)) 这种检验文件是否存在的代码因为用 java.io.File 类就要求配置文件必须是在文件系统中真实存在而实际上配置文件可能在jar包中并没有对应于文件系统中的文件而且Spring加载文件的时候自己会检验文件是否存在修改后的getZdalConfigurationFromLocal方法如下private synchronized Map getZdalConfigurationFromLocal(String appName, String dbMode, String appDsName,String configPath) {List zdalConfigurationFilePathList  new ArrayList();zdalConfigurationFilePathList.add(configPath  /  MessageFormat.format(Constants.LOCAL_CONFIG_FILENAME_SUFFIX, appName, dbMode));zdalConfigurationFilePathList.add(configPath  /  MessageFormat.format(Constants.LOCAL_RULE_CONFIG_FILENAME_SUFFIX, appName, dbMode));return loadZdalConfigurationContext(zdalConfigurationFilePathList.toArray(new String[zdalConfigurationFilePathList.size()]), appName, dbMode);}这样修改后loadZdalConfigurationContext中使用FileSystemXmlApplicationContext就可以支持classpath、file前缀来加载不同协议的XML文件。在配置文件中声明分库分表规则zdal的配置文件主要有两个并且默认使用了一种规则从getZdalConfigurationFromLocal的代码中可以看出来即 appName-dbMode-ds.xml和appName-dbMode-rule.xml 这里的appName和dbMode要和dataSource的设置以及两个配置文件内部bean中的value保持一致。比如笔者在Github中的fantasy项目的配置文件为fantasy-dev-ds.xml主要用来指定物理数据源有哪些是使用group、shard、shardfailover、shardgroup的哪种模式内容如下?xml  version1.0 encodingGBK? xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd另外一个重要的文件是fantasy-dev-rule.xml主要用来描述分库或者分表字段是哪些是SQL语句执行的依据?xml  version1.0 encodingGBK? xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdinit-methodinitreturn com.yuanwhy.fantasy.rule.ShardRuleParser.parserTbIndex(#id#); 这里的示例就是对user表分表以用户的id为分表字段解析的方法在 com.yuanwhy.fantasy.rule.ShardRuleParser.parserTbIndex 中tbSuffix是resetForEachDB方式即每个分库都有user_0、user_1表只不过这里恰好只有一个分库分表规则设计为id % 10的方式获取分表后缀那么对于id为10的用户则被分配到user_0表(关于更多的分表规则的信息可以参考《zdal设计文档》)。将fantasy项目运行之前先执行user-schema.sql初始化语句通过访问 http://localhost:8080?id10 运行起来后可以从Debug信息中观察到原始的语句以及根据分表字段解析后获得的真实可执行的语句[DEBUG][original sql]:SELECT id, name, age FROM userWHERE id  ?[master_0.user_0]:SELECT id, name, age FROM user_0WHERE id  ?至此一个传统的Java Web项目就具有了分库分表的能力(这里只演示了分表分库的道理是一样的)。
http://wiki.neutronadmin.com/news/432159/

相关文章:

  • php做企业网站管理系统七牛镜像存储wordpress
  • 怎样提升网站权重网站关键词指数查询工具
  • 北京网站建设新鸿广告公司宣传册设计
  • 廊坊网站建设佛山厂商百度手机
  • 用织梦系统做的2个网站要把它都上传到服务器上吗千锋教育学费
  • 做结婚视频储存网站制作网页比较方便的软件
  • 网上交易平台网站建设公司企业管理培训课程ppt
  • 学校网站平台建设下载中心官方网站建设银行
  • 网站建设的 几点不良网站浏览窗口
  • h5做网站什么软件百度云虚拟主机上传wordpress
  • 商城网站后续费用做企业网站 签合同要注意什么
  • 门户网站建设工作总结重庆企业网站营销设计
  • 怎么验证网站收录优美图片
  • 长沙 直播网站建设循化县wap网站建设公司
  • 湖州 外贸网站建设oa管理系统报价
  • 各类手机网站建设安丘网站开发
  • 丽江网站建设 莱芜天心区网站建设
  • hs网站推广常德网站建设培训机构
  • 濮阳网站建设 公司名字wordpress文章模板编辑
  • 琼海网站制作北京建网站公司飞沐
  • 湛江优化网站排名跨专业的简历怎么制作
  • 网上商城建网站微信小商店和小程序商城的区别
  • 陇西哪里能学做网站wordpress删除修订版
  • 晋州外贸网站建设浙江做网站
  • 西安网站优化体验驱动开发
  • 服务器iis添加网站污水管网建设
  • seo顾问合同免费seo技术教程视频
  • 外贸自己做网站好不好兖矿东华建设有限公司网站
  • 电子商务网站建设考纲苏州网站建设万户
  • 网站开发产品设计书wordpress 显示微信二维码