微服务——服务的拆分

文章探讨了采用微服务的原因,指出业务复杂时,拆分业务功能可使模块设计更简单,便于需求变更。但微服务也带来新问题,如通信成本增加、命名需可扩展方案、存在一致性与副本问题、要具备容错能力、需规范API风格以及保障数据传输安全等。

我在思考一个问题:我们为什么要搞微服务,整体式服务就不能满足吗?为什么一定要用微服务呢?

服务的粒度拆的约来越细呢?当我们的业务复杂之后,设计一个系统难度会加大,还要适应快速迭代,就更难了。

将业务的功能拆分之后,会让每个模块的设计变得简单。对于需求的变更,采用增加、修改模块的方式来实现也比较方便。

 

但是,微服务同样带来了新的问题。

1、通信。模块间的数据交流,增加了通信成本,我们采用rpc的方式来处理模块间的通信。在选用协议的时候,

要考虑通信效率,扩展性,目前比较常用的是json和Protocol Buffers

2、命名。模块变多,迭代更新快,这就需要一个可扩展、方便理解的方案来命名、分配标识符、地址。

3、一致性与副本。为了避免出现访问瓶颈,对数据对象进行复制是有必要的。这会带来副本/缓存的一致性问题。

这又涉及到如何取舍访问的粒度。

4、容错。任何下游连接、节点、进程错误的情况下保持操作正确、高效。因此需要具备自稳定性、检查故障、故障恢复还原的能力。

5、API和透明性。模块和接口太多,除了用接口文档说明以外,最好定义一套通用的风格,比如REST api,方便调用方。

6、安全。涉及到用户隐私的数据,以密文的形式进行传输。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值