一句话总结 Istio
Istio 是运行于分布式应用程序之上的 非侵入式(无代码入侵)服务网格系统,它的主要目的是为了更好更轻松的解决服务治理问题
什么是服务治理问题
首先这是一道思考题,我们是去治理服务而不是去管理服务,随着业务和访问量增大,架构也在慢慢的发生变化,从最早的 单应用 -> 三层架构 -> SOA -> 微服务,架构是根据业务和访问量不断演变的,你会发现在这一过程中各种问题层出不穷(按下葫芦,起了瓢),由此可以看出我们根本就不可能有一种固定的方式去管理我们的服务,所以这么多服务不存在管理问题而是治理问题
服务治理到底在治理什么呢?其最主要的目的是 处理服务与服务之间的调用关系,比如谁是提供者?谁是消费者?出了故障怎么办?如何保证服务质量?如何实现服务熔断和降级?服务如何监控?如何最大化提高机器的利用率?
使用已知工具治理服务
从上面提的问题想必大家心里也都有了一些答案,按照我们现在掌握的工具,可按如下分类做与服务治理相关的工作
- 服务注册与发现: Eurake,Nacos
- 服务外部化配置: Spring Cloud Config,Nacos,Apollo
- 服务熔断降级: Hystrix,Sentinel
- API 网关: Zuul,Spring Cloud Gateway
- 负载均衡: Ribbon,Dubbo
- 链路追踪: Zipkin,Skywalking
- 日志收集: ELK,EFK
- 服务监控: Promethues,Grafna,Spring Boot Admin
这些纷繁复杂的工具都是我们在做微服务时必不可少的组件,而这些组件都有一个问题就是代码侵入性,能不能有一套系统来为我们解决服务治理问题,将这些组件彻底解耦,让我们回归业务本身