For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了微服务架构技术应用等基础知识,而本文我们就继续来学习一下,常见的微服务架构框架类型都有哪些。
SpringBoot
SpringBoot是用来简化新Spring应用的初始搭建以及开发过程的。其虽然不是微服务框架,但其设计的初衷本质就是微应用的底层框架,因此非常适合用于微服务基础设施的开发以及微服务的应用开发。
尤其对于Spring技术栈的团队来说,基于SpringBoot开发微服务框架和应用是自然而然的一个选择。关注微信公众号:Java技术栈,在后台回复:boot,可以获取我整理的N篇新SpringBoot教程,都是干货。
Dubbo&Motan
Dubbo是阿里开源的服务治理框架。其出现在微服务理念兴起之前,可以看做是SOA框架的集大成之作。
但其仅仅包含了微服务基础设施的部分功能,诸如熔断、服务跟踪、网关等都没有实现:
服务发现:服务发布、订阅、通知。
高可用策略:失败重试(Failover)、快速失败(Failfast)、资源隔离-负载均衡:少活跃连接、一致性Hash、随机请求、轮询等。
扩展性:支持SPI扩展(serviceproviderinterface)。
其他:调用统计、访问日志等。
Motan则是微博开源的类似Dubbo的RPC框架,与Dubbo相比更轻量级。
SpringCloud
SpringCloud是基于SpringBoot实现的微服务框架,也可以看做一套微服务实现规范。关注微信公众号:Java技术栈,在后台回复:cloud,可以获取我整理的N篇新SpringCloud教程,都是干货。
基本涵盖了微服务基础设施的方方面面,包括配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等。
其基于Spring生态,社区支持非常好。但其很多组件都没有经过生产环境验证,需要慎重选择。
SpringCloudNetflix是SpringCloud的一个子项目,是Spring对NetflixOSS的集成实现。
基于Netflix的大规模使用,其中的已经被广泛使用的组件包括:
Eureka:服务注册和服务发现
Ribbon:弹性而智能的进程间和服务通讯机制,客户端负载均衡
Hystrix:熔断器,在运行时提供延迟和容错的隔离
ServiceMesh
上述的微服务框架都是侵入式的,服务化的过程都需要进行代码改造。ServiceMesh则是下一代微服务架构,明显的特征就是无入侵。采用Sidecar模式来解决系统架构微服务化后的服务间通信和治理问题。
目前主流的开源实现包括:
Linkerd和Envoy:以Sidecar为核心,关注如何做好Proxy,并完成一些通用控制平面的功能。缺乏对这些Sidecar的管理和控制。
Istio和Conduit:目前为流行的ServiceMesh实现方案,集中在更加强大的控制平面(Sidecar被称为数据平面)功能。
前者由Google和IBM合作,并使用了Envoy作为Sidecar部分的实现;后者则是Linkerd作者的作品。
相比起来,Istio有巨头背景,功能强大,但可用性和易用性一直不高,Conduit则相对简单、功能聚焦。
限于ServiceMesh带来的性能延迟的开销以及Sidecar对分布复杂性的增加,其对大规模部署(微服务数目多)、异构复杂(交互协议/开发语言类型多)的微服务架构带来的收益会更大。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。