关于微服务架构是什么,没有一个明确的定义,每个实践者有自己的理解,但是有人给出的一个公式值得思考:
微服务架构 = 80% 的 SOA 服务架构思想 + 100% 的组件化架构思想 + 80% 的领域建模思想
不管怎样,微服务架构现在都很受欢迎,近日,一名博主 h4cd 在其博客中列举了当前最为火热,最常被人提及的开源微服务开发框架,希望对开发者有一定的帮助。
它为开发者提供了分布式系统配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性 Token、全局锁、决策竞选、分布式会话与集群状态等的开发工具。使用 Spring Cloud 开发者可以快速实现上述这些模式。
这是一个 Java 微服务开发的基础编程模型,它致力于定义企业 Java 微服务规范,MicroProfile 提供指标、API 文档、运行状况检查、容错与分布式跟踪等能力,使用它创建的云原生微服务可以自由地部署在任何地方,包括 Service Mesh 架构,如 Istio。
这是阿里开源的一款高性能 RPC 框架,特性包括基于透明接口的 RPC、智能负载均衡、自动服务注册和发现、可扩展性高、运行时流量路由与可视化的服务治理。
这是腾讯将其内部使用的微服务框架 TAF(Total Application Framework)多年的实践成果总结而成的开源项目,在腾讯内部有上百个产品使用,服务内部数千名 C++、Java、Golang、Node.Js 与 PHP 开发者。其包含一整套开发框架与管理平台,兼顾多语言、易用性、高性能与服务治理,理念是让开发更聚焦业务逻辑,让运营更高效。
这是甲骨文开源的一个微服务框架,编写的微服务运行在由 Netty 提供支持的快速 Web 内核上。
这是由蚂蚁金服开源的一套用于快速构建金融级分布式架构的中间件,也是在金融场景里锤炼出来的最佳实践。
这是谷歌开源的高性能通用 RPC 框架。gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩与单 TCP 连接上的多路复用请求等特性,这些特性使得其在移动设备上表现更好,更省电和节省空间占用。
这是一个 RPC 框架,用来开发可扩展且跨语言的服务。它结合了功能强大的软件堆栈和代码生成引擎,以构建可以在 C++、Java、Python、PHP 等多种语言间无缝结合的、高效的服务。
这是百度内部最常使用的工业级 RPC 框架,有 1000 000+ 个实例(不包含 client)和上千种服务,目前只开源了 C++ 版本。
上边列出的主要是一些微服务架构的开发框架或者与微服务架构至关重要的 RPC 框架,而其实微服务又涉及到分布式,这又会涉及到各种各样的中间件。
此外,还有一个方面是一定要在这里指出来的,那就是 Service Mesh。现在提到微服务架构,一般都会涉及到 Service Mesh 的相关内容。通过一个网格,Service Mesh 可以将服务治理的各个部分、微服务架构建设中的各个环节都不断延申,最终成为一套微服务开发完全解决方案。
以下列出几个目前在 Service Mesh 领域稳坐主流地位的开源项目:
这是一个提供弹性云端原生应用 Service Mesh 的开源项目,也是面向微服务的开源 RPC 代理,它的核心是一个透明代理。
这是开源的边缘和服务代理,用于云原生应用,其最初是在 Lyft 构建的,它是为单一服务和应用程序设计的高性能 C++ 分布式代理,以及为大型微服务 Service Mesh 架构设计的通信总线和通用数据平面。
该项目能够为微服务架构提供流量管理机制,同时亦为其它增值功能创造了基础。这款软件利用久经考验的 Lyft Envoy 代理进行构建,可在无需对应用程序代码作出任何发动的前提下实现可视性与控制能力。
这是一个 Kubernetes 的超轻量级 Service Mesh,其目标是成为最快、最轻、最简单并且最安全的 Service Mesh。它使用 Rust 构建了快速、安全的数据平面,用 Go 开发了简单强大的控制平面,总体设计围绕着性能、安全性和可用性进行。它能透明地管理服务之间的通信,提供可测性、可靠性、安全性和弹性的支持。
出处:https://www.cnblogs.com/jackyfei/p/12345538.html
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8