加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

为什么大公司一定要使用微服务?

发布时间:2020-01-08 12:35:15 所属栏目:Unix 来源:站长网
导读:副标题#e# 这几年在 Java 工程师招聘时,会看到很多人的简历都写着使用了 Spring Cloud 做微服务实现,使用 Docker 做自动化部署,并且也会把这些做为自己的亮点。 图片来自 Pexels 而比较有趣的这其中以小公司出来的人为绝大多数,大的公司出来的人简历上

为什么大公司一定要使用微服务?

目前主流的开源实现包括:

Linkerd 和 Envoy:以 Sidecar 为核心,关注如何做好 Proxy,并完成一些通用控制平面的功能。缺乏对这些 Sidecar 的管理和控制。

Istio 和 Conduit:目前最为流行的 Service Mesh 实现方案,集中在更加强大的控制平面(Sidecar 被称为数据平面)功能。

前者由 Google 和 IBM 合作,并使用了 Envoy 作为 Sidecar 部分的实现;后者则是 Linkerd 作者的作品。

相比起来,Istio 有巨头背景,功能强大,但可用性和易用性一直不高,Conduit 则相对简单、功能聚焦。

限于 Service Mesh 带来的性能延迟的开销以及 Sidecar 对分布复杂性的增加,其对大规模部署(微服务数目多)、异构复杂(交互协议/开发语言类型多)的微服务架构带来的收益会更大。

Sofastack

蚂蚁金服开源的构建金融级分布式架构的一套中间件。包括微服务开发框架、RPC 框架、服务注册中心、全链路追踪、服务监控、Service Mesh 等一整套分布式应用开发工具。

特别值得一提的是 SOFAMesh。其实对下一代微服务架构 Service Mesh 的大规模落地方案实践,基于 Istio 改进和扩展而来,应该是国内最为成熟的开源 Service Mesh 方案。

此外,需要提到 Kubernetes(K8s),其本身提供了部分的微服务特性支持(通过域名做服务发现),对代码无侵入。但服务调用、熔断这些都需要自己实现。

为什么大公司一定要使用微服务?

综上,目前公司技术团队技术栈是 Spring,并且已有服务的实现都是基于 Dubbo。

因此选择 Spring Cloud Netflix 做为基础的微服务框架,对其中不成熟或者缺乏的组件,选择业界更为成熟的组件替代即可:

API 网关:Zuul。

服务注册中心:Dubbo。

配置中心:Disconf。

服务监控&全链路追踪:CAT。

服务开发框架:Spring Boot。

日志监控、告警:ELK+Elasalert。

流量控制:Sentinel。

消息队列:Kafka。

参考资料:

What’s so bad about monoliths anyway…?!

Microservice

MicroservicePremium

Microservice Trade-Offs

MicroservicePrerequisites

MonolithFirst

服务怎么拆?

BFF@SoundCloud

Service Mesh 及其主流开源实现解析

作者:飒然Hang

简介:《Java 工程师修炼之道》作者。重度 Java 使用者,专注于 JavaEE、三高系统架构、分布式等后端技术。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读