微服务架构思想
微服务架构优点
1 | 1、易于开发和维护:一个微服务只会关注一个特定的业务功能,所以它业务清晰,代码量较少。开发和维护单个微服务相对简单,而整个应用是由若干个微服务构建而成的。 |
微服务架构的挑战
运维要求较高
1
1、更多的服务意味着更多的运维投入。
分布式固有的复杂性
1
2
3
4
5
6使用微服务架构的是分布式系统,对于一个分布式系统来说问题:
1、分布式日志
2、分布式事务
3、分布式session
4、系统容错
5、网络延迟
分布式/微服务总结
微服务之自动化部署
1 | Nexus+jenkins+Git+gitlab+K8s |
微服务之日志收集与性能监控
1 | ELK+SpringCloud+SpringBoot+Sleuth+Zipkin |
微服务之自动化测试与质量管理
1 | Nexus+jenkins+Git+gitlab+K8s |
微服务之监控告警
1 | SpringBoot(MySql+Redis+RabbitMQ+业务功能) |
监控对象
- 基础监控:CPU、内存、硬盘、带宽等
- 用户端监控:指业务直接对用户提供的功能的监控
- 接口监控:指业务提供的功能所依赖的具体RPC接口的监控。
- 资源监控:指接口依赖的资源的监控,如用redis来存储关注列表,对redis的监控就属于资源监控。
监控指标
- 响应时间:一段时间内调用的平均耗时来反映请求的响应时间。
- 流量(请求量):实时请求量QPS 每秒查询次数来衡量;统计请求量PV。
- 失败数(错误率):通常用一段时间内调用失败的次数占调用总次数的比率来衡量,如对接口错误率一般返回错误码为503。
- 异常请求数
监控端点(EndPoint)分类
Spring Boot提供了所谓的endpoints给外部来应用程序进行访问和交互。
- 应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等于SpringBoot应用密切相关的配置类信息。
- 度量指标类:获取应用程序运行中用于监控的度量指标,如内存信息、线程池信息、HTTP请求统计等。
- 操作控制类:提供了对应用的关闭等操作类功能。