文档章节

改造工程步骤

猿神出窍
 猿神出窍
发布于 2018/07/17 15:08
字数 894
阅读 1
收藏 0

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

系统业务架构:

步骤: 

     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

© 著作权归作者所有

共有 人打赏支持
猿神出窍
粉丝 17
博文 183
码字总数 67741
作品 0
沙坪坝
项目经理
私信 提问
用分布式事务中间件来保障金融级交易系统的一致性

背景介绍 本篇是北京云栖大会Tech Insight Workshop金融云主题《使用SOFA来快速构建金融级分布式交易系统》中的一个组成部分. 通过前面的篇章,我们已经借助SOFA Boot框架构建了基于微服务架...

chiehchu
2017/12/18
0
0
客户代码功能要升级改造,苦酒一杯

客户代码功能要升级改造,一个大动作,我得要从庞大的表数量中统计出有影响到这次改造的字段。然后再从表去查找后台代码,然后再从后台代码追溯到前台的操作,我不是这个系统的资深开发人员,...

快速开发师
2016/12/20
159
1
Flutter混合工程改造实践

Flutter混合工程改造实践 作者:闲鱼技术-字平 背景 闲鱼技术团队于2018年上半年率先引入了Flutter技术尝试实现客户端开发的统一,并成功改造和上线了复杂的商品详情业务。这一过程中,由于原...

闲鱼技术
2018/07/09
0
0
Dubbo的分布式系统架构

第01节--使用Dubbo对传统工程进行服务化改造的思路介绍 第02节--使用Dubbo对传统工程进行服务化改造 第03节--ZooKeeper注册中心安装 第04节--使用Dubbo对传统工程进行服务化改造后的服务调用...

做牛作码
2016/03/16
44
0
基于 CoreText 的排版引擎

本章前言 使用 CoreText 技术,我们可以对富文本进行复杂的排版。经过一些简单的扩展,我们还可以实现对于图片,链接的点击效果。CoreText 技术相对于 UIWebView,有着更少的内存占用,以及可...

SunGiantor
2015/07/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spark in action on Kubernetes - Playground搭建与架构浅析

前言 Spark是非常流行的大数据处理引擎,数据科学家们使用Spark以及相关生态的大数据套件完成了大量又丰富场景的数据分析与挖掘。Spark目前已经逐渐成为了业界在数据处理领域的行业标准。但是...

阿里云官方博客
13分钟前
1
0
小白大数据学习路线

学习大数据首先了解大数据技术得板块划分: 数据计算(离线计算):Hadoop、spark 数据计算(实时计算):storm、spartstreaming、flink 其他框架:zookeeper 数据采集:flume、Kafka 数据存...

董黎明
25分钟前
0
0
mariadb 内存占用优化

本文由云+社区发表 作者:工程师小熊 摘要:我们在使用mariadb的时候发现有时候不能启动起来,在使用过程中mariadb占用的内存很大,在这里学习下mariadb与内存相关的配置项,对mariadb进行调...

腾讯云加社区
今天
3
0
spring security 自定义登录认证

spring security 自定义认证登录 1.概要 1.1.简介 spring security是一种基于 Spring AOP 和 Servlet 过滤器的安全框架,以此来管理权限认证等。 1.2.spring security 自定义认证流程 1)认证...

EasyProgramming
今天
1
0
Win下Jenkins-2.138源码编译及填坑笔记

源码编译篇 1、 安装JDK1.8-181,操作系统添加JDK环境变量。Java -version验证一下。 注:Jenkins2.138版本,JDK必须jkd1.8.0-101以上,不支持Java9,Maven必须3.5.3以上。 2、 解压Maven3....

编程SHA
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部