主流的微服务框架

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了主流的微服务框架相关的知识,希望对你有一定的参考价值。

参考技术A

目前比较火的主流微服务框架

1)Spring Cloud , 来自Spring,具有Spring 社区的强大支撑,还有Netflix强大的后盾与技术输出。Netflix作为一家成功实践微服务架构的互联网公司在几年前就把几乎整个微服务框架栈开源贡献给了社区,这些框架开源的整套服务架构套件是Spring Cloud的核心。
- Eureka:服务注册发现框架;
- Zuul:服务网关;
- Karyon:服务端框架;
- Ribbon:客户端框架;
- Hystrix:服务容错组件;
- Archaius:服务配置组件;
- Servo:Metrics组件;
- Blitz4j:日志组件;

2)Dobbo是一个分布式服务框架,是阿里开放的微服务化治理框架,致力于提高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分(官网)
- 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式;
- 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持;
- 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

Dubbo 也是采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载 Dubbo的配置即可,Dubbo 基于 Spring 的 Schema 扩展进行加载。当然也支持官方不推荐的 API 调用方式。

3)lstio 作为用于微服务聚合层管理的新锐项目,是Google、IBM、Lyft(海外共享出行公司、Uber劲敌),首个共同联合开源的项目,提供了统一的连接,安全,管理和监控微服务的方案。

目前首个测试版是针对Kubernetes环境的,社区宣称在未来几个月内会为虚拟机和Cloud Foundry 等其他环境增加支持。lstio将 流量管理添加到微服务中,并为增值功能(如安全性、监控、路由、连接管理和策略)创造了基础。
- HTTP、gRPC 和 TCP 网络流量自动负载均衡;
- 提供了丰富的路由规则,实现细颗粒度的网络流量行为控制;
- 流量加密、服务件认证,以及强身份声明;
- 全范围(Fleet-wide)的策略执行;
- 深度遥测和报告。

开源社区情况:现如今企业在采用云计算首选开源,而选择一个开源框架,社区的活跃度将作为重要参考选项。

查看下在 Github 上的更新时间,截止 2017 年 8 月 31 日:

可见,项目在社区活跃度上,Istio > Spring Cloud > Dubbo,结合稳定性来看,对于使用 Java 系开发业务较多的企业,Spring Cloud 是相对更优的选择,对于更多企业来说,与语言几乎无绑定的 Istio 也是可以好好期待一下其在社区的发展。

同时,随着近几年微服务架构和 Docker 容器概念的火爆,也会让 Spring Cloud 在未来越来越“云”化的软件开发风格中立有一席之地

Go语言十一大主流微服务框架

以下 star数截止2021年12月份

1.istio
项目简介:Istio是由GoogleIBMLyft开源的微服务管理、保护和监控框架。使用istio可以很简单的创建具有负载均衡、服务间认证、监控等功能的服务网络,而不需要对服务的代码进行任何修改。
仓库地址: https://github.com/istio/istio(29K)
官方文档地址: https://istio.io/latest/docs/

2.Go-kit
项目简介:Go-kit 是一个 Go 语言的分布式开发包,用于开发微服务。
仓库地址: https://github.com/go-kit/kit/(21.9K)
官方文档地址: https://gokit.io/

3.Kratos
项目简介:哔哩哔哩开源的一套Go微服务框架,包含大量微服务相关框架及工具。
仓库地址: https://github.com/go-kratos/kratos(15.8K)
官方文档地址: https://go-kratos.dev/docs/

4.Go-zero
项目简介:go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。
仓库地址: https://github.com/tal-tech/go-zero(13.1K)
官方文档地址:https://go-zero.dev/cn/

5.Go-micro
项目简介:Micro是一个专注于简化分布式系统开发的微服务生态系统。可插拔的插件化设计,提供强大的可插拔的架构来保证基础组件可以被灵活替换。
仓库地址: https://github.com/micro/micro(10.8K)
官方文档地址: https://micro.mu/

6.fabio
项目简介:fabio 是 ebay 团队用 golang 开发的一个快速、简单零配置能够让 consul 部署的应用快速支持 http(s) 的负载均衡路由器。
仓库地址: https://github.com/fabiolb/fabio(6.8K)
官方文档地址: https://fabiolb.net/

7.Goa
项目简介:Goa 是一款用 Go 用于构建微服务的框架,采用独特的设计优先的方法
仓库地址: https://github.com/goadesign/goa(4.5K)
官方文档地址: https://goa.design/

8.Dubbo-go
项目简介:阿里系,由Apache 软件基金会官方发布Go 语言加入 Dubbo 生态,架构是基于dubbo的extension模块和分层的代码设计,主要解决 Go 项目与 Java & Dubbo 项目的互通问题,同时也为 Go 项目提供了一种 RPC 与微服务
仓库地址: https://github.com/apache/dubbo-go(3.7K)
官方文档地址: https://dubbogo.github.io/dubbo-go-website/zh-cn/

9.gizmo
项目简介:gizmo是纽约时报开源的go微服务工具,提供如下特性:标准化配置和日志;可配置策略的状态监测端点;用于管理 pprof 端点和日志级别的配置;结构化日志,提供基本请求信息;端点的有用度量;优雅的停止服务; 定义期待和词汇的基本接口。
仓库地址: https://github.com/nytimes/gizmo(3.6K)

10.Jupiter
项目简介:斗鱼开源的一套微服务治理框架,提供丰富的后台功能,管理应用的资源、配置,应用的性能、配置等可视化。
仓库地址: https://github.com/douyu/jupiter
官方文档地址: http://jupiter.douyu.com/(3.4K)

11.Tars-go
项目简介:腾讯系,Tarsgo是基于Golang编程语言使用Tars协议的高性能RPC框架
仓库地址: https://github.com/TarsCloud/TarsGo(2.9K)
官方文档地址: https://tarscloud.github.io/TarsDocs/SUMMARY.html#TarsGo
 

以上是关于主流的微服务框架的主要内容,如果未能解决你的问题,请参考以下文章

主流微服务框架都有哪些

目前比较流程的微服务开发框架是?

什么是微服务架构?主流的微服务如何实现?

主流的微服务API网关性能比较

Go语言十一大主流微服务框架

Go语言十一大主流微服务框架