哈喽各位同学们大家好呀,小编今天带着开发者学院中课程“微服务架构的经典开发框架”干货总结来了~一起学习新课程吧!
课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇
课程名称:微服务架构的经典开发框架
课程地址:https://developer.aliyun.com/learning/course/60/detail/1110
图谱名称:Alibaba Java 技术图谱
图谱地址:https://developer.aliyun.com/graph/java
微服务架构的经典开发框架
各位同学大家好,我们继续来学习微服务架构设计课程,咱们今这一节课来讲一下微服务架构,经典的开发框架,咱们这个系列课程是以Java Spring Cloud的为主导的重点的开发框架,目前微服务生态经过5年以上的这种发展历程,其中也出现了其他语言,包括Java本身Spring Cloud也在不断迭代,也出现新的贡献微服务架构的框架。
Spring Cloud是出现的时间比较早框架,并且它的生态也是最完善的,咱们选择了Spring Cloud作为目前我们课程的主要的实践案例的练习的框架。
下面一起来看下微服务架构有哪些经典的开发框架,以及他们有什么差异,做实际的项目选择的时,大家应该怎么来进行选择。如果技术选型的话,可能直接会影响后面一个架构的落地,因为有些架构并非完善,需要话很大精力去处理相同的问题。
- 微服务架构的开发框架
1. Spring Cloud:最早最成熟,Java开源微服务框架方案
2. Dubbo : 阿里巴巴开源Java服务治理框架
3. Spring Cloud Alibaba 阿里开源Java微服务框架方案
4. SOFA:蚂蚁金服开源Java金融微服务框架方案
5. Go Micro:Go语言开源微服务框架
6. Seneca Microservices ,Node.js微服务框架
7. KumuluzEE:Java的微服务框架
8. Enduro/X: C/C++/Go
目前Spring Cloud是最早的开源的版本,主要几个核心框架是谁贡献的呢?是叫麦飞美国的视频网站公司,他们把自己公司内部实践的开发的微服务的解决方案框架贡献给了社区。它主要也是想体现云计算的这样的时代的特征,这个核心框架基本上都是用 Java来进行编写的,而且也现经过这么多年的发展,目前在全球范围内来看的,它是最成熟的一套生态。像国内的阿里巴巴、蚂蚁金服、京东、微博、拼多多、美团等新崛起的互联网公司都在使用 Spring Cloud微服务框架体系。
像淘宝、阿里的发展实际代表、Java或者来讲分布式架构,不断发展历程。淘宝做双十一在商业上非常成功运营模式,但是它在另外一个技术层次来说是倒逼着阿里的技术团队去不断的迎接各种技术挑战,并解决这些问题。
除了Dubbo以外,内部还有hsf框架,早期是解决大规模服务治理的问题,后面进行在内部不断优化协议、性能。Dubbo在开源以后,国内有很多互联网公司都在用,影响也比较大。作为微服务架构设计的选型的话,Dubbo不会作为首选,但是Dubbo是一个有效的补充。它的优点:经过阿里巴巴集团大规模验证、在不断的迭代、支持高频发,成为响应式框响应式框架、Java在不断的升级演化,Dubbo也不例外,协议支持的更多。
并不是所有的场景,用HTTP协议是最优秀的,后续Spring Cloud的版本或者其他的微服务框架,会在协议,通讯协议,数据格式类型尝试做一些优化,因为阿里打包开源一些列的微服务给Spring Cloud作为贡献的一部分。外国就是麦飞,国内就是阿里巴巴作为最大的贡献者。像蚂蚁金服的SOFA、GO语言的Go Micro都是仿制Spring Cloud。生态都不是很完善,没办法和Spring Cloud一样的流行,成熟。Java并不是强在语法,开发工具都不是最好的,强在框架和生态,升级模式。新的设计模式的书都是率先在Java实践出来的。
- 微服务开发框架对比
服务框架本身也有存在各种差异,Spring Cloud是出现最早的,最成熟最完善的一套微服务架构综合解决方案。它协议上HTTP为主,国内外公司大部分都在使用。阿里的Dubbo也开源了,并向微服务进发,开始也支持其他的框架的集成。虽然Go语言和C++都有微服务框架,但是出现的比较晚,生态并不是太完善。作为微服务架构师来说,Spring Cloud和Dubbo体系最完善。
- Spring Cloud微服务架构生态最完善、最成熟
另外Spring Cloud本身成长于Java Spring整个平台体系中来,之前Java Spring积累的所有生态工具都可以拿过使用。可快速开发、集成、安全设计模块工具、容器的工具可直接使用。加上国内互联网公带头扩展实践落地。Spring Cloud是架构选型风险成本最低的。如需单独开发新的框架或者新的协议,费时费力。所有的技术发展一定是和公司的业务发展紧密结合,工程师本身是帮别人去开发系统解决问题的。做架构师的话选型一定要选成熟的、完善的、风险最小的、资料多的,遇到问题的时候更容易解决问题。
Java Spring开发平台
Spring Boot、Spring Data 都在协助Spring Cloud维护开发,拥有一套很大,并完善生态。
- Spring Cloud微服务架构
框架它是在不断迭代不断发展的,微服务开发的话不仅仅是 Spring VC或者Spring Boot,还有各种工具 ,也可以来开发这种微服务,实现各种需求:网关、熔断、注射、包括数据库交互、前端对应APP、小程序。微服务拆分好处在于走小块零的路线,也可以单独进行部署。比如:有的系统订单服务支付服务用的比较多,比如淘宝单独做大规模集群,客服投诉服务使用就比较少,拆分之后占用的服务器少。拆分的原因取决业务需求,存在差异之后,可以分开处理问题。
每个环节解决不同的问题,无论是注册、发现、部署、网关都有自己的对应解决方案框架。
目前的话就是选型的话,首推是Spring Cloud,因为是一个成熟完善的生态。在技术选型的时候还要尊重业务需求、技术落地、风险问题、考虑公司研发成本等综合考虑,单单是自己语言的喜好的问题。
目前来讲,这里面给大家介绍了系统各个不同语言的微服务开发方向,但是目前Spring Cloud还是最成熟最完善的。下节课的话咱们也看看微服务架构里面经典的设计模式,包括我们整个的拆分的微服的一些原则。