目前公司在做新的业务,同事搭建了一套完全独立的架构,可发挥的余地比较多,做了一下整理。
Svn 地址 http://10.6.6.232/svn/reb (这个是公司内部的地址,对外是无法访问的)
采用 jdk8.0+ tomcat7.0+ 各个文件编码UTF-8(preference中更改)
为了规范开发人员的开发,统一编码格式eclipse-format.xml 导入到eclipse java format 中。
整个工程的框架:
1.reb-api:
存entity(不分bo po) bean service接口 utils 等一些每个模块都用到的地方
2.reb-client:
dubbo 客户端 存各个模块通用的bean配置(比如说发送邮件Service 消息发送service 等) 以及缓存service地方
这个工程中 如果和reb-service模块中的service有命名方式冲突请在前面加上Client关键字
如命名方式 ClientUserService(对应reb-service.UserService) 以Client+${etity}+Service 方式
需要使用dubbo 提供的service时 应在 reb-client-dubbo-consumer.xml中新增一条数据
如
<dubbo:application name="reb-client" /> <dubbo:registry address="zookeeper://10.6.104.77:2181" /> <dubbo:reference id="fooService" interface="com.yiwugou.reb.api.service.demo.FooService" /> <dubbo:reference id="barService" interface="com.yiwugou.reb.api.service.demo.BarService" />
缓存 请在service方法中加上 @CacheAnnotation注解
产生的缓存key为 包名.类名.方法名(参数,参数,参数……)
如 "com.yiwugou.reb.client.user.ClientUserService.cacheSelect(50,username)"
清缓存 cacheDeleteService.delete(key);
3.reb-dao:
数据库访问模块 提供分表与非分表方式
分表方式:在sharding-jdbc.xml中增加分表策略
这就是把t_user 表分为 t_user_0 与 t_user_1 两张表
真实数据库中 并不存在t_user 表 只存在 t_user_0 与 t_user_1 两张表
mybatis.xml 中写法 还是select * from t_user; datasource会自动把t_user 分解成两张物理表(t_user_0 与 t_user_1) 分开查询
注意分表时候 xml insert写法 不要包含返回的自动生成的主键 应该用类似oracle的seq自动生成主键
分表时 insert xml如下配置 不要包含selectkey
不分表时候 表id建议还是使用mysql的自增策略(你要使用seq也可以)
不分表情况下Insert时候 如果需要返回id
采用jdbcTemplate的方法 例如
BaseService.insertNoSharding(BaseEntity base); 返回自动生成的主键
如果不需要返回主键 则使用原先的 insert(T t)
其他操作照旧
使用insertNoSharding 时候 entity建议加上对应的数据库表名 @Table(name=”t_bar”) 以及不和数据库对应的列 @Transient如
@Data @Table(name = "t_bar") public class Bar implements BaseEntity { private static final long serialVersionUID = 1L; private Long id; private String productName; private Long userId; private Long createTime; @Transient private String trans; }
如果不加 默认的表名为 类名转下划线 如 WebProduct à web_product
注意 不分表情况下 建议只有insert需要返回主键的时候 采用jdbcTemplate 其他还是采用统一的mybatis
单库分表策略
由于macat不支持单库分表 转为采用 当当的开源项目 sharding-jdbc
单库分表有一些复杂的sql语句不支持 详细的请看sharding-jdbc 官网
https://github.com/dangdangdotcom/sharding-jdbc
例子中 t_user 为逻辑表 对应的物理表为 t_user_0,t_user_1 (数据库中不存在 t_user 这个表)
分表中 主键不能使用自增长的方式 采用类似oracle的seq生成策略
mysql新增一表 REB_SEQ mysql新增方法 fun_next_value
4.reb-service:
Service端已经dubbo 端service
如果要使一个service注册到dobbo上请在 reb-service-dubbo-provider.xml中新增
<dubbo:application name="reb-service" /> <dubbo:registry address="zookeeper://10.6.104.77:2181" /> <dubbo:protocol name="dubbo" port="20880" /> <dubbo:service interface="com.yiwugou.reb.api.service.demo.FooService" ref="fooService" /> <dubbo:service interface="com.yiwugou.reb.api.service.demo.BarService" ref="barService" />
Dubbo 启动入口 DemoProvider (通过zookeeper 请去相关网址下载)
事务采用注解方式 请指定事务bean id 因为xml中配置了多个database事务
例如
/** * 事务测试 一定要指定名称 因为配置了多个Transactional */ @Override @Transactional("transactionManagerSharding") public void transactional() { System.err.println("before:" + this.count(null)); Foo user1 = new Foo(); long id = this.selectNextId("SEQ_T_USER"); user1.setId(id); user1.setUsername("ppp1"); user1.setCreateTime(DateUtils.toDatabaseTime()); System.err.println(this.insert(user1)); Foo user2 = new Foo(); id = this.selectNextId("SEQ_T_USER"); user2.setId(id); user2.setUsername("ppp2"); user2.setCreateTime(DateUtils.toDatabaseTime()); System.err.println(this.insert(user2)); System.err.println(1 / 0); }
相关推荐
义乌跨境电商综试区的发展路径研究是在eWTP(世界电子贸易平台)的背景下,对义乌跨境电商的加速发展阶段进行分析。义乌作为全球知名的小商品集散中心,在电子商务领域的发展尤为引人注目。eWTP是由阿里巴巴集团提出的...
义乌跨境电商企业品牌发展策略.pdf
近年来,随着电子商务的迅猛发展,义乌市的电商企业也迎来了前所未有的增长,尤其是在跨境电商领域。然而,随着业务的不断扩展和市场的日益全球化,义乌市电商企业在转型和升级过程中面临着严重的人才短缺问题。本文...
1. 人才需求规模大:随着跨境电商综合试验区的批准,义乌的跨境电商行业得到了快速发展,企业和市场对跨境电商人才的需求大幅增长。据统计,义乌跨境电商的年交易额和跨境快递数量均呈现出显著上升趋势,表明行业对...
综试区背景下义乌跨境电商发展对策研究.pdf
eWTP视角下义乌跨境电商发展的问题与对策研究.pdf
“义乌商圈”作为中国最著名的商品集散地之一,随着互联网技术的发展和电子商务的兴起,已经从传统的贸易市场演变为一个融合了线上与线下交易的新经济区域。本文主要探讨了电商在义乌商圈集聚的机理以及地理回归的...
在eWTP(电子世界贸易平台)的视角下,探讨义乌跨境电商的发展问题及应对策略是一项...通过不断优化法规环境、提升技术能力、强化品牌建设以及培养专业人才,义乌可以更好地适应eWTP框架,实现跨境电商业务的持续繁荣。
《eWTP背景下义乌跨境电商综试区发展路径研究》这篇文献深入探讨了在全球电子世界贸易平台(eWTP)的框架下,浙江省义乌市作为跨境电商综合试验区如何制定并实施其发展策略。eWTP是由马云提出的全球性倡议,旨在推动...
《义乌跨境电商企业品牌发展策略》 在当今全球化的商业环境中,跨境电商已经成为许多企业发展的重要路径,尤其是对于中国的中小企业,如浙江义乌的企业来说,更是如此。这篇资料深入探讨了义乌跨境电商企业在品牌...
义乌农村电商发展政策及支持体系研究.pdf
综试区背景下义乌跨境电商发展对策研究
综试区背景下义乌跨境电商人才供需矛盾与对策研究
义乌作为中国跨境电商的先行城市,已经通过与阿里巴巴签署协议成为eWTP的第二个试验区。在eWTP的框架下,义乌的中小企业能够通过信息化平台紧密抓住全球商机,进而增强其在国际市场中的竞争力。通过掌握数字化技术,...
义乌作为全球最大的小商品集散中心,其英语电商平台构建对商品营销的影响已成为市场营销领域关注的焦点。本研究基于市场营销的视角,探讨了义乌英语电商平台的构建对商品营销的积极与消极影响。 在研究背景中,我们...
在当前全球化背景下,跨境电商已成为国际贸易的新常态,而作为全球最大的小商品批发市场,浙江省义乌市在这一领域中的地位尤为显著。本研究聚焦于“跨境电商环境下义乌市电商企业人才需求”,旨在深入探讨在这样的...
《义乌农村电商发展政策及支持体系研究》这篇文档聚焦于探讨了中国浙江省义乌市在农村电子商务领域的政策导向、发展策略以及支撑体系。义乌,作为全球最大的小商品集散地,其农村电商的发展对于全国乃至全球都有重要...
义乌电商发展指数解读——基于2020年前三季度数据.pdf
在行业发展的具体举措上,义乌市通过举办电商博览会等活动,成功地打造了一系列行业盛会,这些活动不仅促进了本地电商的集聚效应,还吸引了国内外众多大型电商平台的入驻,例如阿里巴巴、考拉海购、云集等。...