您现在的位置是:亿华云 > IT科技
再见,微服务!
亿华云2025-10-08 23:24:12【IT科技】0人已围观
简介传统的微服务即将过时,这并不是一个唬人的标题。3 年前 Kubernetes 刚兴起的时候,我觉得这东西差不多 3 年能够普及,毕竟他是实打实的谷歌十多年容器编排的精华。图片来自 Pexels而今天我
传统的微服务微服务即将过时,这并不是再见一个唬人的标题。3 年前 Kubernetes 刚兴起的微服务时候,我觉得这东西差不多 3 年能够普及,再见毕竟他是微服务实打实的谷歌十多年容器编排的精华。
图片来自 Pexels
而今天我想安利的再见是网格化服务这东西,如下图:
服务架构的微服务演进
微服务初期
产生了:Spring Cloud,Dubbo 等微服务框架,再见大部分的微服务服务治理(熔断,限流,再见服务编排,微服务服务链路跟踪)功能与框架甚至业务代码强依赖。再见
Kubernetes
Kubernetes 是微服务一个很杰出的软件产品,在一定程度上解决了微服务所需的再见应用编排,伸缩等问题,微服务但是在流量治理,日志,监控,指标度量,亿华云计算等场景能力有限。
网格化服务
可以理解它是 Kubernetes 中期的产物(也许你还没摸过 Kubernetes 初期的产物他就即将逝去),网格化服务可以弥补 Kubernetes 的不足,提供更为丰富的服务治理方案。
回首我们曾在微服务那个青葱岁月犯过的傻!
①项目开始
老板:说我们要跟上时代,要用微服务。
开发:没啥问题。服务开始拆分,引入 Spring Cloud 或者 Dubbo 等框架,完工。(就是这么简单,没有谁比我更懂微服务了!)
②上线运行
老板:微服务上了,我们现在是不是可以像大公司那样无停机发布了?
开发:我们只是拆分了服务,并没有做其他的,这块目前做不了。
开发:微服务太难搞了,日志,监控,异常排查,服务部署,成本是之前的站群服务器好几倍。
③填坑之路
引入大量中间件,代码配合植入辅助功能,来实现日志采集,服务链路监控,智能网关,熔断。
多语言异构系统:中间件难以兼容,Spring Cloud 支持的大部分微服务功能都只适用 Java 而已。and so on (等等,太痛苦了)
初见 Kubernetes ,曾以为它能拯救全世界。
Kubernetes 提供服务发现、配置管理、负载均衡和网关。既然这样,那么是否就可以不再需要注册中心和服务治理框架,只基于 Kubernetes 构建微服务系统呢?
很多公司进行了这方面的尝试,尝试后发现从治理功能丰富度、大规模集群效率等方面,还是有不太满意的地方:
流量治理能力不足:缺乏熔断能力,没有灰度控制能力; 大规模使用时的性能问题:基于 Kubernetes Service 的服务发现过程需要经过 Iptables 或 IPVS 的查找过程,集群规模大时性能影响会比较明显。 日志,链路监控,高防服务器指标度量等,依旧需要额外的组件以及业务代码中需要加入辅助的代码。目前较为成熟的方案:使用 Kubernetes 部署+Spring Cloud(或 Dubbo 等),该方案在语言和框架依赖比较局限。
豪门出身,不但有颜值还是个实力派(扎心了)。
以 Istio 为代表的网格化服务横空出世,彻底战胜了传统微服务在服务数量多,多语言的,在安全性、网络流量控制、可观察性等方面的挑战:
彻底把业务和服务治理逻辑切分开(没有语言和框架依赖)。 更灵活,更细粒度的流量管理。 监控,日志,链路跟踪提供编辑、统一的规范。
官网定义的四大功能
偷偷告诉你:在服务网格化的江湖里,消费者和生产者直接不需要额外引入一个注册中心,服务直接部署通信。
这在网格化服务里本是一个不值得一提的点,就是为了让没见过世面的你开开眼,免得其他太深奥没听明白失敬了。
没有繁琐的服务搭建/框架图,直接上部分案例:
案例的服务架构图
这个示例部署了一个用于演示多种 Istio 特性的应用,该应用由四个单独的微服务构成。这个应用模仿在线书店的一个分类,显示一本书的信息。
页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论:
productpage:这个微服务会调用 details 和 reviews 两个微服务,用来生成页面。 details:这个微服务中包含了书籍的信息。 reviews:这个微服务中包含了书籍相关的评论。它还会调用 ratings 微服务。(有 3 个版本) ratings:这个微服务中包含了由书籍评价组成的评级信息。以下是浏览器效果图。
案例 1:流量 A/B 测试
A/B 流量测试案例 1
A/B 流量测试 2
同一系统,jackson 登陆的跟没有登陆的看到的界面效果是不同的。这一切的功劳都归于 Istio,而不用你的代码设置。(想想这么香的功能,自己是不是曾经反反复复在自己代码里面插入了很多埋点/配置)。
案例 2:服务链路跟踪
productpage 访问 detail,review,rating 的链路一目了然。
这种链路跟踪不需要你代码或者框架额外植入代码。
案例 3:监控
虽然很常见,但是你没用过都不知道他有多便利,多香。
部署脚本演示
灵活的流量设置
轻轻松松实现故障植入的功能
作者:RJ不止于编程
编辑:陶家龙
出处:toutiao.com/i6903536074665034243/
很赞哦!(39356)
相关文章
- 比较短的域名方便用户记忆和传播,它带来的好处往往会超过其他类型的域名,如果你非要域名短而且还要包含关键词,那么往往会事与愿违,现在这种域名基本上是可遇而不可求的。
- 4个你从未听说过的强大的 JavaScript 运算符
- 写yml,写的腿疼
- 用基于 Python 的开发框架 Brownie 部署以太坊智能合约
- 众所周知,com域名拥有最大的流通市场和流通历史。最好选择com域名,特别是在购买域名时处理域名。其次可以是cn域名、net域名、org域名等主流域名,现在比较流行的王域名和顶级域名,都是值得注册和投资的。
- Go1.17这个新特性竟然是6年前提出来的
- 云数据仓库的未来趋势:计算存储分离
- 如何用 Python + Scrapy 爬取视频?
- 5、使用企业名称的英文名称作为域名也是国内许多企业选择域名的一种方式,特别适合一些与计算机、网络和通信相关的行业。
- HarmonyOS官方模板学习 之 About Feature Ability(Java)