1、将“巨石”服务,解耦成简单独立服务
2、独立进程
3、服务间通信简单
微服务访问流程:
如何访问服务:使用API gateway ,服务访问入口统一。
服务发现:使用zookeeper等技术实现服务的注册。
服务间调用:使用同步请求或者异步请求,同步请求包括restful、RPC(remote procedure call)。异步请求包括kafka、notify和metaQ
服务部署:实现分布式自动化部署
服务容错:对服务产生的问题,能自身解决处理,可以使用重试(之前压力过大,没有连接上)、
流控(控制访问流量可以存在对哪些业务层实现流控)、熔断(访问量过大,远大于服务承受能力,返回指定页面)、
负载均衡(增加服务节点,保证服务可以正常运行)、降级。
数据调用
优点:
复杂度可控、都连续扩展、技术选型灵活(一个流程可以使用不同语言服务)和容错性高(使用一些技术手段)
缺点:
运维成本提高、通信难度增加、数据一致性、系统部署依赖、系统集成测试和性能监控