服务化
1.缓存:
旁路型: redis/memcache/zcache,存在一致性问题,后端不可用时,容灾cache可以保证一定的可用性。降低后端压力。
2.服务的理解:
- 微服务是通过分布式系统来实现的,
- 引入更多的中间件比如消息中间件以及各种代理中间件来屏蔽后端的具体实现。
- 每个服务独立研发和测试部署,能实现系统的敏捷开发和快速迭代。
- 系统组件解耦,单个组件的功能被一个服务取代,本地调用改为使用rpc或者http的方式来进行远程调用,使系统整体复杂性提升,系统的稳定性更容易受网络波动的影响。
- 服务拆分到分布式系统的不同实例上,带来了事务一致性的问题,需要通过业务层来保证事务的最终一致性。
- 相比于单体应用,服务化后可以更有针对性地对系统瓶颈将进行扩容,提高机器资源利用率。
- 服务间的发现是通过服务注册来实现:
集中式注册和发现:新服务上线,去ETCD注册服务,消费向ETCD询问生产者地址,然后与生产者建立链接,获取服务。存在单机可用性问题。
广播式注册和发现:生产者上线,向固定内网网段广播,消费者自行维护生产者列表并选取生产者建立链接,监控困难,生产者容易负载不均衡。
- 系统监控和维护困难,需要一些机制来处理各种请求异常和请求超时,避免服务雪崩。比如超时后放弃请求或者更换生产者重试。

浙公网安备 33010602011771号