架构设计的一些实践概括(持续完备中)

架构设计大概要考虑的点:

1,分布式选型

2,中间件选型

3,接受返回参数封装

4,同步异步设计(队列,redis使用)

5,swagger集成

6,日志切面--kafka

7,降级处理,定时任务(分布式锁)

8,session的共享无状态

8,gateway的设计思想

9,http等工具类

10,跨域处理

11,枚举类型

12,反射调用(结合数据表的不同渠道不同业务类的配置)---重复性质的类似业务

13,nginx代理

14,分布式事物的处理

15,是否有必要 api<->gateway->service->api(和外部交互的统一经过api转发)

16,在设计架构的时候尽量设计交互系统间数据流转的设计---之一:系统在运行后期80%左右的问题都在系统间数据流转,同步(数据库共享)---分布式系统在设计的时候,处理特殊的数据流转设计,数据库共享是保证数据问题少的基础

之二:分布式系统数据流设计(数据关联系统):

数据库之间高内聚低耦合(一个库一个业务系统)

库之间用一个关联业务字段

库之间不能有标志,状态的耦合----即库之间不需要同步数据(不能A系统库有B系统库的状态,否则A,B哪一方修改状态都需要同步),只需要做到业务一致性即可

 17,表设计的时候表之间最好用统一的关联字段,这样有利于后续数据逻辑(适当冗余一些字段减少关联查询)(用自动生成的订单,或id--外部无法更改的作为关联字段,就不会因为外部的修改二影响其他)

       2,操作日志表(方便生成报表)

 18,系统重构几种方式

         1,框架重构---修改框架

         2,分层重构---一般是dao,service,(bo可以通过dozer工具转化)--合并数据库

         3,业务重构---一般适用于局部业务的改造

 19,灰度发布

20,特殊要求的应用场景,可以联合多个工具中间件完成(没有现成的话),或者多加结合使用的标记key、变量

 ---比如syschnoized指定唤醒,或mq的顺序消费可以用此思路

相关推荐