首页 > 编程知识 正文

java微服务开源框架,Java微服务架构

时间:2023-05-03 16:56:12 阅读:33246 作者:3405

2014年诞生的“微服务架构”,在通过Martin Fowler讲述思想后,近年来持续受到重视,理论和相关实践不断发展,成为当今主流的软件架构模式。

对于什么是微服务体系结构,没有明确的定义,每个实践者都有自己的理解,但有人给出的公式值得思考:

微服务架构=80%的SOA服务架构思想100%的组件化架构思想80%的区域建模思想

微服务体系结构有很多优点。 例如,您可以解除绑定业务以提供更高的灵活性,并在服务频繁发布时保持系统其他部分的可用性和稳定性。 可以解除编程语言的结合,针对不同业务用更合适的语言开发; 解除开发团队结合,不同团队各自负责一个微服务,互不影响,加快交付。

关于微服务体系结构,由于网络资料相当多(现在很受欢迎,各家都有实践案例分享),读者可以另行参考,但这里不做说明。

这里列举了目前最热、最常提到的开源微服务开发框架。 我希望对开发者有帮助。 (点击项目名,可以直接跳转介绍页

Spring Cloud

Spring Cloud为开发者提供分布式系统配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性Token、全局锁定、决策选举、分布式会话和集群状态等开发工具。 使用Spring Cloud开发人员可以快速实现这些模式。

Eclipse MicroProfile

Eclipse微服务文件是Java微服务开发的基础编程模型,致力于定义企业的Java微服务规范。 MicroProfile提供指标、API文档、运行状况检查、容错和分布式跟踪等功能,使用它创建的云本机微服务位于何处,包括服务消息体系结构

Dubbo

Dubbo是阿里开源的高性能RPC框架,基于透明接口的RPC、智能负载平衡、自动服务注册和检测、可扩展、运行时流量路由和可视化服务器

Tars

Tars是一个开源项目,总结了腾讯在其内部使用的微服务框架(taf )多年的实践成果,腾讯内部使用了数百个产品,在服务内部它包含一套兼顾多语言、易用性、性能和服务管理的开发框架和管理平台,理念是侧重于业务逻辑,使操作更加高效。

Helidon

Helidon是一个Oracle开源微服务框架,创建的微服务运行在Netty支持的高速Web内核上。

SOFAStack

可扩展金融体系结构(sofastack )是蚂蚁金服为快速构建金融级分布式体系结构而开源开发的中间件,是在金融场景中锻造的最佳实践

gRPC

gRPC是谷歌开源的高性能通用RPC框架。 gRPC基于HTTP/2标准设计,提供双向流传输、流控制、头部压缩、单TCP连接复用请求等特性,这些特性提高了移动设备的性能,并节省了能源和空间

ThriftThrift是一个RPC框架,用于开发可扩展性和跨语言服务。 将强大的软件堆栈与代码生成引擎相结合,实现c、Java、Python、PHP、Ruby、Erlang、Perl、Haskell、C#、Cocoa、JavaScript、Node.js

brpc

brpc是百度内部最常用的工业级RPC框架,有1000,000个实例(不包括客户端)和上千种服务,百度内被称为“百度- RPC”,目前只有c版本是开源的

上面列举的主要是微服务架构的开发框架或微服务架构和重要的RPC 框架,但实际上微服务是http://www.ssw

但是,这里有必须指出的一面。 它涉及分布式现在说到微服务架构,一般涉及有关服务消息的内容。 服务消息被称为“各种各样的中间件”,源于早期服务代理模式Sidecar的扩展,其理念由来已久,但近两年来微服务的兴起和Buoyant

rd 并将其重新演绎,才逐渐以崭新的姿态呈现给世人。

Service Mesh 重点在 Mesh,它在 Sidecar 的基础上,强调了各个代理之间形成的有机网络。以通用组件的形式管控系统中所有服务通信流量,同时下沉了微服务开发的技术栈,可以做到语言无关、功能可扩展。

通过一个网格,Service Mesh 可以将服务治理的各个部分、微服务架构建设中的各个环节都不断延申,最终成为一套微服务开发完全解决方案。

这里也列出几个目前在 Service Mesh 领域稳坐主流地位的开源项目:

Linkerd

Linkerd 是一个提供弹性云端原生应用 Service Mesh 的开源项目,也是面向微服务的开源 RPC 代理,它的核心是一个透明代理。

Envoy

Envoy 是开源的边缘和服务代理,用于云原生应用,其最初是在 Lyft 构建的,它是为单一服务和应用程序设计的高性能 C++ 分布式代理,以及为大型微服务 Service Mesh 架构设计的通信总线和通用数据平面。

Istio

Istio 项目能够为微服务架构提供流量管理机制,同时亦为其它增值功能(包括安全性、监控、路由、连接管理与策略等)创造了基础。这款软件利用久经考验的 Lyft Envoy 代理进行构建,可在无需对应用程序代码作出任何发动的前提下实现可视性与控制能力。

Conduit

Conduit  是一个 Kubernetes 的超轻量级 Service Mesh,其目标是成为最快、最轻、最简单并且最安全的 Service Mesh。它使用 Rust 构建了快速、安全的数据平面,用 Go 开发了简单强大的控制平面,总体设计围绕着性能、安全性和可用性进行。它能透明地管理服务之间的通信,提供可测性、可靠性、安全性和弹性的支持。虽然与 Linkerd 相仿,数据平面是在应用代码之外运行的轻量级代理,控制平面是一个高可用的控制器,然而与 Linkerd 不同的是,Conduit 的设计更加倾向于 Kubernetes 中的低资源部署。

注:在发布 0.5 版本后,后续 Conduit 已经整合到了 Linkerd 2,详情查看:

Conduit 0.5 成为终曲,后续并入 Linkerd 2.0

 

对 Service Mesh 的建设其实已经成为当前的业内共识,从下边这些项目都在往这个方向上演进就可以大致有所体会:

WeiboMesh

Motan 是新浪微博开源的是一套高性能、易于使用的分布式 RPC 框架,后来在 Motan Agent 的基础上演化出了 WeiboMesh。WeiboMesh 偏向服务治理方向,同时提供服务的动态管理能力,如服务降级、动态配置、权限管理、数据采集与服务指令处理等。

Dubbo Mesh

Dubbo 在 v3 中发展 Service Mesh,官方希望 Dubbo Mesh 进入 Envoy 社区,目前 Dubbo 协议已经被 Envoy 支持,数据层选址、负载均衡和服务治理方面的工作还在继续,控制层目前在丰富 Istio/Pilot-discovery。

SOFAMOSN

MOSN 是 SOFAStack 的组件,它一款采用 Go 语言开发的 Service Mesh 数据平面代理,功能和定位类似 Envoy ,旨在提供分布式,模块化,可观察,智能化的代理能力。MOSN 支持 Envoy 和 Istio 的 API ,可以和 Istio 集成。

nginMesh

nginMesh 是 NGINX 开源的 Service Mesh 方案,它提供基于 NGINX 的 Service Mesh 实现。nginMesh 与 Istio 兼容,利用 NGINX 实现 Sidecar 代理,集成在 Istio 中,可以标准、可靠和安全的方式促进服务之间的通信。

注:nginMesh 项目目前已经不再积极开发。

MicroProfile Service Mesh

MicroProfile Service Mesh 是 MicroProfile 的 Service Mesh 规范。MicroProfile 定义了用于开发云原生微服务的一系列规范,本质上它也是为 Istio 而生的微服务编程模型,而 Istio 本身就是 Service Mesh 的代名词。此规范关注 Service Mesh,并且更多地聚焦于 Istio。

Ambassador

Ambassador 是一个基于 Envoy 构建的 Kubernetes 原生 API 网关,专为微服务而设计,它本质上是一个 Envoy 入口控制器,但具有更多功能,包括支持 gRPC、HTTP/2 与 WebSockets,支持 CORS、超时、加权轮询调度、粘性会话与速率限制等。

Gloo

Gloo 是一个基于 Envoy 的 Kubernetes 原生入口控制器和下一代 API 网关。Gloo 在函数级路由方面表现卓越,它支持传统应用程序、微服务与 Serverless。Gloo 设计独特,可支持混合应用,其中的多种技术、架构、协议和云可以共存。

Kong

Kong 在 1.0 GA 的时候带来了 Service Mesh 能力,用户不仅可以将 Kong 部署为 API 网关,还可以将其部署为独立的 Service Mesh 代理。Kong 插件能为 Service Mesh 提供开箱即用的关键功能,并能与其它云原生技术集成,包括 Prometheus、Zipkin、健康检查、canary 测试与蓝绿测试等。

Consul Connect

Connect 是 Consul 中的 Service Mesh 方案,它可以自动将任何现有的 Consul 群集转换为 Service Mesh 解决方案。Connect 通过自动 TLS 加密和基于身份的认证实现安全的服务到服务通信。

 

借此机会特别感谢以 ServiceMesher 为代表的社区在国内普及与发展 Service Mesh 上的贡献。

当然,除了列出的这些框架值得期待,还可以在下边这几个分类中搜索、查看更多相关项目:

分布式:https://www.oschina.net/project/tag/191/distributed-and-grid微服务:https://www.oschina.net/project/tag/461/microservice容器/云原生:https://www.oschina.net/project/tag/406/paasRPC:https://www.oschina.net/project/tag/347/xmlrpc中间件:https://www.oschina.net/project/tags

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。