2019-07-04微服务

 微服务漫画解析

单体结构便于管理,但所有代码都在同一个项目当中,但是当产品规模较大的时候,单体结构的缺点也明显:

1、项目过于臃肿

2、资源无法隔离:整个单体系统的各个功能模块都依赖于同样的数据库、内存资源,一旦某个功能崩了,整个系统就会崩溃

3、无法灵活扩展:访问量大的时候,单个系统可以水平扩展,部署在多台机器上组成集群,但是非灵活扩展。比如一个模块有性能问题的时候就可以只针对这个做水平扩展。



针对这些问题,把单体系统拆分为【微服务】

微服务是一种架构思想,提倡将单一应用程序划分成一组小的服务,服务之间相互协调、相互配合,为用户提供价值。每个服务运行在独立的进程中,服务和服务之间采用轻量级的通信机制,通常基于HTTP的Restful API)。每个服务围绕具体业务进行。并独立部署到生产环境中。

具体优点:高内聚低耦合

1、独立部署,灵活扩展:传统的单体架构是以整个系统为单位进行部署,微服务以每一个独立组件为单位进行部署。Docker,为微服务提供了有效的容器。

2、资源的有效隔离:微服务设计的原则之一,每一个微服务都有其独立的数据源,如果微服务A要读取微服务B的数据库,只能调用微服务B暴露在外边的接口来完成,避免了服务之间争用数据库和缓存资源来带的问题


调用别的模块接口

3、团队组织架构调整

单体结构是水平的组织架构,而微服务团队是垂直的组织架构。没个业务都含有前后端工程师,DBA和测试工程师。按照业务边界做细粒度的拆分和部署。


缺点:

1、把一个项目拆成多个独立工程,增加了开发和测试的复杂度
2、拆分服务太细,添加删除功能模块的时候需要修改的模块会多

3、需要保证不同服务之间数据的一致性,引入了分布式事务和异步补偿机制。

4、数据隔离带来的报表处理问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容