送给你。在过去的几年里,微服务的概念越来越流行。它流行到什么程度?根据2019年的统计,在2000家企业中,45%在使用微服务,16%在尝试开发和测试微服务架构,24%在学习微服务和准备转型,剩下的只有15%没有使用微服务。服务。微服务有什么好处?微服务是2013年才提出来的,短短几年发展得如此之快。微服务架构可以实现一个由小型自治服务组成的整体应用。各种组件松散耦合,复杂度低。每个部分都可以独立部署。更容易修复错误或引入新功能。可以独立扩展,不同的技术栈之间可以使用不同的框架,不同的版本库甚至不同的操作系统平台。对于中大型架构系统,微服务更方便。微服务成为很多企业架构重构的方向,同时也对架构师提出了更高的挑战。目前微服务构建常用的框架有很多,可以为微服务架构的构建带来一些帮助。Java语言相关的微服务框架SpringBootSpringBoot旨在简化新的Spring应用的初始构建和开发过程。2017年,64.4%的受访者决定使用SpringBoot,可以说是最流行的微服务开发框架。利用SpringBoot开发的便捷性,简化分布式系统基础设施的开发,如配置中心、注册、负载均衡等,可以实现一键启动,一键部署。SpringCloudSpringCloud是一系列框架的总和,构建了一个基于HTTP(s)RETS服务的服务体系,SpringCloud可以帮助架构师构建一套完整的微服务架构技术生态链。DubboDubbo是阿里巴巴开源的分布式面向服务的治理框架,通过RPC请求访问。Dubbo是在阿里巴巴电商平台的逐步探索和演进中形成的。经历过复杂业务的高并发挑战,早于SpringCloud的开源时间。目前,阿里巴巴、京东、当当、携程、去哪儿等公司都在使用Dubbo。DropwizardDropwizard集成了Java生态中各个问题领域的最佳组件,可以快速创建Rest风格的后台,也可以集成除Dropwizard核心以外的项目。在国内,Dropwizard还很少有人用,资源也不多,但是和SpringBoot相比,Dropwizard在轻量方面更有优势。同时,如果你用过Spring,基本上都会用SpringBoot。AkkaAkka是一个用Scala编写的库,可用于Java和ScalaActor模型,具有简化的编程、容错性和高可扩展性。Akka可以用来实现微服务集群。Vert.x/Lagom/ReactiveX/Spring5这四个框架主要用于响应式微服务的开发。Reactive本身和微服务无关,更多的是用来提升性能,但是可以和微服务结合,也可以提升性能。.Net相关的微服务框架.NETCore.NETCore是专门为模块化微服务架构而设计的。它是一个跨平台的应用程序开发框架,也是微软开发的第一个正式版本。ServiceFabricServiceFabric是微软开发的微服务框架。Azure上使用了很多基于ServiceFabric的云服务。SurgingSurging是一个基于RPC协议的分布式微服务技术框架,基于.NETCore。MicrodotFrameworkMicrodotFramework用于编写和定义服务逻辑代码。它不需要解决开发分布式系统的挑战,并且可以轻松集成MicrosoftOrleans。Node.js相关微服务框架SenecaSeneca是一个Node.js微服务框架开发工具,可以用来编写可以在产品环境中使用的代码。Hapi/Restify/LoopBack这三个框架的分工不同。前两者更适合开发简单的微服务后端系统,第三种更适合大型复杂的应用开发,也可以用于在已有的微服务上构建。Go相关的微服务框架Go-Kit/Goa/DubbogoGo-Kit是分布式开发的工具集合,适合在大规模业务场景下构建微服务;Goa是一个用Go语言构建的微服务框架;Dubbogo与阿里巴巴开源Dubbo兼容Golang微服务框架。Python相关的微服务框架Python相关的微服务框架很少,使用较多的是Nameko。Nameko让微服务的实现变得更加简单,同时也提供了丰富的功能,比如支持负载均衡、服务发现、自动依赖注入等。使用起来非常方便,但存在速度受限、超时、权限机制不完善等缺点。.综上所述,微服务已经成为很多大型互联网公司的选择。对于想要成为架构师的架构师和工程师来说,掌握微服务不仅需要学习使用相关框架,还需要掌握具体的用法。有很多坑要避免。
