一、微服务如何拆分
1、先明白起点和终点
2、需要考虑的因素和坚持的原则
二、起点和终点
1、起点
既有架构的形态
2、终点
好的架构不是设计出来的,而是进化而来的。
一直在演进
三、不适合上微服务的
1、系统中包含很多很多强事务场景的
2、业务相对稳定,迭代周期长
3、访问压力不大,可用性要求不高
四、如何拆功能
1、单一职责,松耦合,高内聚
2、关注点分离
按职责
按通用性
按粒度级别
六、服务拆分方法
服务和数据的关系
先考虑业务功能,再考虑数据
无状态服务(一个数据被多个服务共享)
七、如何拆分“数据”
1、每个微服务都有单独的数据存储
2、依据服务特点选择不同结构的数据库类型
依据服务的功能特点,选择合适的数据库。
1)有些前置服务使用node开发,主要是展示类型的数据,对事务要求不高。那这个服务可以考虑NoSql的MongoDB
2)比如服务是做搜索类型的,我们可以优先考虑elasticsearch。
3) 对事务要求高的,优先考虑支持事务的关系型数据库,如MySql
3、难点在确定边界。
4、针对边界设计API
5、依据边界权衡数据冗余
作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!