改造工程步骤

 背景: 对于存在有问题的项目(包括 代码不规范 数据库表命名不规范 )需要改造

系统业务架构:

步骤: 

     1 新建工程 : 将需要改造的项目拷贝一份 修改项目名称

     2 将相应的表结构拷贝到新的数据库中 修改不直观的表名 字段的备注等

     3 修改对应的代码 和数据库表字段对应 熟悉接口对应的相关类 找到与之相关的

   

注意:

   1 并发幂等性(重试引起)控制

   2 方法设置开关

   3 金额存整数(元化为分)

   4 解耦 (rocketMQ消息异步解耦)

     加入状态机【待完成】

  5 分库【垂直拆分 基本的思路就是按照业务模块来划分出不同的数据库】

    分表【垂直拆分某个表中的字段比较多,可以新建立一张“扩展表”,将不经常使用或者长度较大的字段拆分出去放到“扩展表”中】

    好处: 便于 管理、维护、监控、扩展 ,在高并发场景下,垂直分库一定程度上能够突破IO、连接数及单机硬件资源的瓶颈,是大型分布式系统中优化数据库架构的重要手段。

   注意:需要改写以前的查询语句【跨库join,分布式事务等】

   跨库Join的几种解决思路

 1 全局表【很少发生编号 像数据字典】
   系统中所有模块都可能会依赖到的一些表,将这类表在其他每个数据库中均保存一份

 2 字段冗余 【最复杂的还是数据一致性问题,这点很难保证】

 3 数据同步 
   定时A库中的tab_a表和B库中tbl_b有关联,可以定时将指定的表做同步,通过ETL工具来实施

 4 系统层组装
   在系统层面,通过调用不同模块的组件或者服务,获取到数据并进行字段拼装
   注意:把循环调用改成一次调用【通常我们都会通过缓存来避免频繁RPC通信和数据库查询的开销】

   join 查询带条件过滤的情况
     查询出state字段符合/不符合的UserId,在查询问答数据的时候使用in/not in进行过滤,排序,分页等。过滤出有效的问答
     数据后,再调用用户服务获取数据进行组装

   6 考虑问题转换思路 : 记得两方面着手 1 数据库层面【善于利用伪列】  2 代码层面

   水平分表,能够降低单表的数据量,一定程度上可以缓解查询性能瓶颈。但本质上这些表还保存在同一个库中,所以库级别还是会有IO瓶颈。  所以,一般不建议采用这种做法

忽略配置文件被跟踪的另一种方法:

$ git update-index --assume-unchanged /path/to/file       #忽略跟踪

$ git update-index --no-assume-unchanged /path/to/file  #恢复跟踪

模型: 领域模型  仓储模型  

7 记录好追踪日志

 

eclipse里groovy 插件地址:http://dist.springsource.org/release/GRECLIPSE/e4.7

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章