微服务的个人分析


一  什么是微服务 

背景

随着科技的发展使用网络的人越来越多,自身业务发展越来越快,多,高。单体系统会过于臃肿,复杂,很难扩展,性能随之越来越差,效率越来越低。

1 目标 

让每个单独的功能或者独立的业务做成单独的服务,这样的优点增加系统可扩展性,实现应用之间的解藕。

2 优缺点

二  微服务的优缺点

1 优点 

解决单体服务复杂,臃肿,扩展性差,实现高耦合低内聚的系统特点。

开发难度降低,开发效率变高,开发成本变低。

2 缺点 

进入微服务之后 , 解决了集中式架构的单体应用很多问题, 但是新的问题应运而生 , 微服务的粒度应该多大 ?微服务如何设计呢?微服务如何拆分 ?微服务边界在哪里 ?有人认为微服务很简单,就是将之前的单体应用拆分成多个部署包, 或者将原来的单体应用架构替换为一套支持微服务的技术架构,就算是微服务了。还有人认为微服务应该拆分得越小越好。导致很多项目因为前期拆分过度, 导致复杂度过高, 导致后期难以运维甚至难以上线。或者上线后很难再改动。

三  微服务的矛盾

1 微服务的问题点

微服务最大的问题点就是边界很难划分。微服务拆分困境产生的根本原因就是不知道业务或者微服务的边界到底在什么地方。换句话说,确定了业务边界和应用边界,这个困境也就迎刃而解了。

2 解决问题的方式

划分边界是个很复杂的是,我的建议是根据业务场景,系统目前状态,包括架构状态和应用状态来,具体划分。举个例子例如登录和注册这两个功能,本质上都是对用户账户信息的操作,如果系统并不复杂可以放在一个应用中,但是如果系统过于复杂,例如注册关联外部第三方的信息传送,还有一些非用户本人信息创建例如家庭信息,登录亦是如此,这时候就要考虑是否拆分成两个功能。

此外目前正在兴起被大家接受的DDD模式也是解决问题的办法,DDD的思路进行业务梳理可以很好规划服务边界。

三 DDD

什么是DDD呢?我也在学习当中,之后我会更新自己学习的心得,欢迎大家多交流。

2 优缺点