实现微服务所需要注意的事项
Nameko是一个基于RPC的简单微服务框架,其中还有很多用于微服务的功能没有能够实现。在使用Nameko实现微服务时,需要着重考虑以下问题。
- 组件拆分与系统集成和部署运维之间的平衡。组件拆分的越多,对于业务的耦合就会越低并且可扩展性就会越高,但是系统的集成和部署运维就会更加复杂。
- 事务一致性。在微服务集群中需要进行分布式事务管理,在一项业务需要跨多个RPC服务进行处理时,必须有有效的事务控制手段,例如二阶段提交算法、三阶段提交算法,亦或者Paxos算法等。
- 集群健康度监测。集群中的RPC服务都依赖于AMQP消息队列,如果某个或者某些RPC服务停止响应或者离线,就可能会导致消息队列中的消息积压,从而拖累整个微服务框架的运行。要解决此问题需要对整个集群中的RPC服务有良好的监测和控制措施。
- 是否需要一个统一的服务管理平台。
- Nameko没有实现的服务注册、服务发布、服务路由、安全访问与授权、服务调用消息与日志等如何来实现。
- API网关是微服务架构的中心点和瓶颈,需要仔细选择、考量和实现。