一、什么是微服务
使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程中,一般采用轻量级通讯机制互联,并且可以通过自动化方式部署。
微服务的特征
- 单一职责:紧密相关的业务内聚在一起。比如登录和注册可以作为一个微服务;
- 轻量级通讯:与平台无关,与语言无关;
- 隔离性:每个微服务运行在自己的进程中;
- 有自己的数据:每个微服务都有自己独立的数据存储;
- 技术多样性:不论采用什么语言开发,只要能提供相应的API即可。
微服务诞生的背景
- 互联网行业快速发展;
- 敏捷开发,精益方法深入人心;
- 容器技术的发展。
二、微服务部署架构
三、微服务的高可用机制
四、微服务的治理
系统降级-->数据层降级-->柔性可用。
- 系统降级
- 拒绝部分请求,策略:
- 拒绝老请求,确保新请求可用
- RPC队列方式:在队列中请求超时一定时间直接丢弃
- 非核心请求直接丢地
- 关闭部分服务
- 拒绝部分请求,策略:
- 数据层降级
- 更新请求Update
- 持久到消息队列
- 只更新缓存
- 都请求Read
- 只读缓存,如果没读到,也不会再去数据库读取
- 数据补齐
- 消息队列-->数据库
- 更新请求Update
微服务的监控手段
- 进程监控-->alive
- 语义监控:模拟用户登录-->正常工作
- 日志监控:查看错误日志-->正常工作
- 数据波动监控:流量的突增突降
- 数据资源监控:服务器资源不足
- 其他
- 请求平均耗时的实时监控
- 请求异常数量的实时监控