微服务架构落地总结

微服务架构思想

微服务架构优点

1
2
3
4
5
6
7
8
9
1、易于开发和维护:一个微服务只会关注一个特定的业务功能,所以它业务清晰,代码量较少。开发和维护单个微服务相对简单,而整个应用是由若干个微服务构建而成的。

2、单个微服务启动较快:单个微服务代码量较少,所以启动比较快。

3、局部修改容易部署:单体应用只要有修改,就得重新部署整个应用。微服务解决了该问题,如果相对某个微服务进行修改,只需要重新部署这个服务即可。

4、技术栈不受限:可以结合项目业务和团队的特点,合理地选择技术。

5、按需伸缩:可根据需求,实现细粒度的扩展。

微服务架构的挑战

  • 运维要求较高

    1
    1、更多的服务意味着更多的运维投入。
  • 分布式固有的复杂性

    1
    2
    3
    4
    5
    6
    使用微服务架构的是分布式系统,对于一个分布式系统来说问题:
    1、分布式日志
    2、分布式事务
    3、分布式session
    4、系统容错
    5、网络延迟

分布式/微服务总结

微服务之自动化部署

1
2
3
4
5
Nexus+jenkins+Git+gitlab+K8s

1、私有化仓库搭建 Nexus
2、持续集成 Jenkins+Maven
3、灰度发布

微服务之日志收集与性能监控

1
2
3
4
5
6
7
8
ELK+SpringCloud+SpringBoot+Sleuth+Zipkin

1、日志收集工作
日志输出 》日志收集 》日志分析 ELK

2、性能监控:Zabbix、Prometheus

3、链路追踪:Sleuth + Zipkin

微服务之自动化测试与质量管理

1
2
Nexus+jenkins+Git+gitlab+K8s
SonarQube

微服务之监控告警

1
2
SpringBoot(MySql+Redis+RabbitMQ+业务功能)
SpringBoot+Prometheus+Grafana监控+AlterManager报警+微信报警
监控对象
  • 基础监控:CPU、内存、硬盘、带宽等
  • 用户端监控:指业务直接对用户提供的功能的监控
  • 接口监控:指业务提供的功能所依赖的具体RPC接口的监控。
  • 资源监控:指接口依赖的资源的监控,如用redis来存储关注列表,对redis的监控就属于资源监控。
监控指标
  • 响应时间:一段时间内调用的平均耗时来反映请求的响应时间。
  • 流量(请求量):实时请求量QPS 每秒查询次数来衡量;统计请求量PV。
  • 失败数(错误率):通常用一段时间内调用失败的次数占调用总次数的比率来衡量,如对接口错误率一般返回错误码为503。
  • 异常请求数
监控端点(EndPoint)分类

Spring Boot提供了所谓的endpoints给外部来应用程序进行访问和交互。

  • 应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等于SpringBoot应用密切相关的配置类信息。
  • 度量指标类:获取应用程序运行中用于监控的度量指标,如内存信息、线程池信息、HTTP请求统计等。
  • 操作控制类:提供了对应用的关闭等操作类功能。
-------------本文结束感谢您的阅读-------------
原创技术分享,感谢您的支持。