主流的微服务框架
主流的微服务框架
目前比较火的主流微服务框架
- Spring CLoud
- Dubbo
- Istio
一、背景介绍
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 日:
Spring Cloud :Spring Cloud · GitHub → 所有项目均更新于『1 小时』内。 Dubbo :Dubbo · GitHub → 核心项目最近更新于『一个月乃至数月』前。 Istio:Istio · GitHub → 所有项目均更新于『30 分钟』内。
可见,项目在社区活跃度上,Istio > Spring Cloud > Dubbo,结合稳定性来看,对于使用 Java 系开发业务较多的企业,Spring Cloud 是相对更优的选择,对于更多企业来说,与语言几乎无绑定的 Istio 也是可以好好期待一下其在社区的发展。
同时,随着近几年微服务架构和 Docker 容器概念的火爆,也会让 Spring Cloud 在未来越来越“云”化的软件开发风格中立有一席之地
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
通俗易懂的方式理解 IaaS、PaaS、SaaS
通俗易懂的方式理解 IaaS、PaaS、SaaS 你一定听说过云计算中的三个“高大上”的概念:IaaS、PaaS和SaaS,但是这几个术语并不好理解 IaaS(基础设施即服务Infrastructure as a Servic) PaaS(平台即服务Platform-as-a-Service) SaaS(软件即服务Software-as-a-Service) 光看名字,会觉得很难理解,下面我来简单的举几个栗子:今天我想吃牛排,那么有几种方式呢? 1、自己养一头牛,等他长大,剁掉吃。 2、买牛肉,自己做,腌制一段时间,然后准备一点喝的。 3、点个外卖或者去超市买个研制完成的牛肉,回家直接煎一下,配上红酒饮料。 4、直接去牛排店,全部都有。 我想做一个博客网站,有几种方式? 1、买一台服务器,放在家里,或者租一个工作室,自己开发。 2、购买阿里云、百度云、腾讯云,然后再上面自己开发,负载均衡、灾备自己做。 3、购买云服务器,并且在购买他们的中间件(负载均衡、灾备等),只需要开发即可。 4、购买一个已经搭建完的博客网站,什么都弄好了,直接写博客就行。 上面的这两个例子,对应: 1、本地部署,...
- 下一篇
微服务设计我们需要考虑哪些要点?
微服务生态 微服务有哪些要点呢?先看下图是 SpringCloud 的整个生态。 设计要点一:API 网关 在实施微服务的过程中,不免要面临服务的聚合与拆分,当后端服务的拆分相对比较频繁的时候,作为手机 App 来讲,往往需要一个统一的入口,将不同的请求路由到不同的服务,无论后面如何拆分与聚合,对于手机端来讲都是透明的。 有了 API 网关以后,简单的数据聚合可以在网关层完成,这样就不用在手机 App 端完成,从而手机 App 耗电量较小,用户体验较好。 有了统一的 API 网关,还可以进行统一的认证和鉴权,尽管服务之间的相互调用比较复杂,接口也会比较多,API 网关往往只暴露必须的对外接口,并且对接口进行统一的认证和鉴权,使得内部的服务相互访问的时候,不用再进行认证和鉴权,效率会比较高。 有了统一的 API 网关,可以在这一层设定一定的策略,进行 A/B 测试,蓝绿发布,预发环境导流等等。API 网关往往是无状态的,可以横向扩展,从而不会成为性能瓶颈。 设计要点二:无状态化,区分有状态的和无状态的应用 影响应用迁移和横向扩展的重要因素就是应用的状态,无状态服务,是要把这个状态往外移,...
相关文章
文章评论
共有0条评论来说两句吧...