什么是微服务
微服务的两个核心:
- 微:服务粒度更细,即服务要细到API
- 服务:提供好服务,让服务好用
总结以上两点,来看这张图:
从图可以看出,微服务很简单,好的架构就应该简单,我们将服务拆API,每个服务服务于一个完整的功能。
我们将所有API扔到“云上”,用户通过连接“云”获取所有服务,“云”保证了更好的服务。
所以做好微服务,“云”是关键。
微服务的实现
由图可知,微服务的关键是服务网关。
微服务特点
服务需要细化成API:
- 每个服务由一组API组成
- 以API形式对外提供统一格式的服务
- 使用者可直接使用HTTP
- API服务需要保证安全可靠
微服务解决的问题:
- 统一入口
- 安全控制:放刷限流
- 统一鉴权:应用鉴权,用户鉴权,OAuth鉴权,ACL
- 协议转换:http,dubbo,protobuf
- API配置管理
- API上线,下线
- API与服务接口映射
- 监控与报警
- 整体架构可扩展,高并发,分布式
- 服务容器自动收缩,扩容
方案
- 负载均衡:nginx/lvs/f5
- 微服务层:高性能服务网关,统一入口,API配置管理,分流鉴权,服务监控,协议转换
- 服务治理层:成熟的服务治理框架dubbo,MQ服务之间解耦
- 弹性云:服务docker化,基于访问压力的实时集群调度与管理
弹性云
弹性云可以保证提供更好的服务,这对运维有很高的要求。这里的弹性云是自动化运维解决方案,对访问压力进行监控,根据监控解决调度应用和发布回收。