文档章节

改造工程步骤

猿神出窍
 猿神出窍
发布于 07/17 15:08
字数 886
阅读 0
收藏 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

© 著作权归作者所有

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

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

chiehchu
2017/12/18
0
0
Flutter混合工程改造实践

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

闲鱼技术
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
史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)

在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。...

方宏春
04/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

区块链100讲:盘点那些常用的加密算法原理

在开发过程中,常常用到各种加密方法和算法,本文总结了几种常用加密方法的原理。 1 对称加密 原理:加密和解密数据使用同一个密钥,适合对大量数据进行加解密 安全性:关键是密钥的保存方式...

HiBlock
28分钟前
0
0
zookeeper基本常识

一、Zookeeper基础知识 1 zookeeper是一个类似hdfs的树形文件结构,zookeeper可以用来保证数据在(zk)集群之间的数据的事务性一致。2 zookeeper有watch事件,是一次性触发的,当watch监视的数...

啃不动地大坚果
33分钟前
0
0
Forrester企业级容器平台权威排行出炉,小初创Rancher缘何成为领导者?

全球著名的调研机构Forrester Research近日发布了《The Forrester New Wave: Enterprise Container Platform Software Suites, Q4 2018》报告,对企业级容器平台(ECP)市场进行全面评估,希...

RancherLabs
36分钟前
0
0
【三 异步HTTP编程】 2. 流式HTTP响应

标准响应及Content-Length头 自HTTP1.1以来,服务器为了在一个链接中处理多个HTTP请求及响应,必须随response一起返回合适的Content-Length值。 默认情况下,对于简单请求你无需返回 Conten...

Landas
今天
0
0
Java后端技术栈,到底如何深入学习?

Java,是现阶段中国互联网公司中,覆盖度最广的研发语言。有不少朋友问,如何深入学习Java后端技术栈,今天分享一个,互联网牛人整理出来的Java深入学习路线图,以及免费学习资料。 一 。性能...

别打我会飞
今天
2
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部