开发者社区> 问答> 正文

为什么会出现服务网格?

为什么会出现服务网格?

展开
收起
令人无语的八阿哥 2021-10-29 16:55:15 456 0
来自:华章出版社
1 条回答
写回答
取消 提交回答
  • 服务网格出现的大环境如下:

    • 容器技术的广泛应用由于Docker的出现,容器技术得到更广泛的认可和应用,各种服务于容器的工具如雨后春笋般涌现,出现了众多容器部署、容器集群、容器编排等平台,例如Swarm、Mesos、Kubernetes。由于容器具备轻量级、启动速度快、性能损失小、扩容缩容快、开发与生产环境统一等特性,越来越多的公司开始尝试使用容器来部署服务,容器技术的飞速发展也大大加速了微服务的应用。

    • 微服务的快速流行随着近几年云计算的飞速发展,公有云也越来越成熟,微服务架构模式在大公司的兴起,特别是在Netflix、亚马逊等公司的大规模实践,使得越来越多的公司开始尝试使用微服务架构来重构应用。当微服务的服务数量越来越大时,微服务间的服务通信也越来越重要,我们所看到的一个应用,有可能背后需要协调成百上千个微服务来处理用户的请求。随着服务数和服务实例数的不断增长,服务可能上线下线,服务实例也可能出现上线下线和宕机的情况,服务之间的通信变得异常复杂,每个服务都需要自己处理复杂的服务间通信。

    • 目前微服务架构中的痛点面对复杂的服务间通信问题,一般的解决方案是为服务开发统一的服务框架,所有服务依赖于服务框架开发,所有服务间通信、服务注册、服务路由等功能都由底层服务框架来实现,这样做固然可以在某种程度上解决服务间通信的问题,但是由于底层服务框架的限制,业务人员可能无法基于实际情况选择合适的技术栈;由于所有服务都依赖于底层的服务框架代码库,当框架代码需要更新时,业务开发人员可能并不能立即更新服务框架,导致服务框架整体升级困难。后来Netflix开源了自己的微服务间通信组件,之后被Spring Cloud集成到了一起,组成了Java语言的通用微服务技术栈,而其他编程语言可能并没有如此强大功能的开源组件,只能继续饱受微服务间通信的各种痛。

    基于以上服务间通信出现的问题,有人开始思考:能不能把服务间的复杂通信分层并下沉到基础设施层,让应用无感知呢?答案是肯定的。于是服务网格开始渐渐浮出水面,越来越多的人看到了服务网格的价值,尝试把服务网格应用于微服务实践中。

    资料来源:《Istio入门与实战》,文章链接:https://developer.aliyun.com/article/725525

    2021-10-29 17:18:41
    赞同 展开评论 打赏
问答分类:
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载