传统的微服务即将过期,这并不是一个唬人的标题。3年前 Kubernetes 刚兴起的时候,我觉得这东西差不多 3 年能够普及,毕竟他是实打实的谷歌十多年容器编排的精华。而今天我想安利的是网格化服务 这东西。 服务架构的演进 微服务初期产生了:springCloud,dubbo 等微服务框架,大部分的服务治理(熔断,限流,服务编排,服务链路跟踪)功能与框架甚至业务代码强依赖。 Kuberneteskubernetes 是一个很杰出的软件产品,在一定程度上解决了微服务所需的应用编排,伸缩等问题,但是在流量治理,日志,监控,指标度量,等场景能力有限。 网格化服务可以理解它是 kubernetes 中期的产物(也许你还没摸过 kubernetes 初期的产物他就即将逝去),网格化服务可以弥补 Kubernetes 的不足,提供更为丰富的服务治理方案。 回首我们曾在微服务那个青葱岁月犯过的傻!
初见 kubernetes ,曾以为它能拯救全世界。 Kubernetes 提供服务发现、配置管理、负载均衡和网关。 既然这样,那么是否就可以不再需要注册中心和服务治理框架,只基于Kubernetes构建微服务系统呢? 很多公司进行了这方面的尝试,尝试后发现从治理功能丰富度、大规模集群效率等方面,还是有不太满意的地方。
目前较为成熟的方案: 使用Kubernetes部署+Spring Cloud(或Dubbo等),该方案在语言和框架依赖比较局限 豪门出身,不但有颜值还是个实力派(扎心了) 以 Istio 为代表的网格化服务横空出世,彻底战胜了传统微服务在服务数量多,多语言的,在安全性、网络流量控制、可观察性等方面的挑战。
官网定义的四大功能 偷偷告诉你:在服务网格化的江湖里,消费者和生产者直接不需要额外引入一个注册中心,服务直接部署通信。这在网格化服务里本是一个不值得一提的点,就是为了让没见过世面的你开开眼,免得其他太深奥没听明白失敬了。 没有繁琐的服务搭建/框架图,直接上部分案例: 案例的服务架构图 这个示例部署了一个用于演示多种 Istio 特性的应用,该应用由四个单独的微服务构成。 这个应用模仿在线书店的一个分类,显示一本书的信息。 页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论。
以下是浏览器效果图
A/B 流量测试案例 1 A/B 流量测试2 同一系统,jackson 登陆的跟没有登陆的看到的界面效果是不同的。这一切的功劳都归于 Istio,而不用你的代码设置。(想想这么香的功能,自己是不是曾经反反复复在自己代码里面插入了很多埋点/配置) 案例2 服务链路跟踪 productpage 访问 detail,review,rating 的链路一目了然 这种链路跟踪不需要你代码或者框架额外植入代码 案例3 监控 虽然很常见,但是你没用过都不知道他有多便利多香 部署脚本演示灵活的流量设置 轻轻松松实现故障植入的功能 安利到这里,具体感兴趣的话还是要靠你自己去尝试,关注 RJ不止于编程 ,后期有具体的环境搭建和安装(具体是文章还是视频再说咯) |
|