为什么大公司一定要使用微服务?
目前主流的开源实现包括: 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、三高系统架构、分布式等后端技术。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |