共计 1881 个字符,预计需要花费 5 分钟才能阅读完成。
这几年来,微服务这个概念越来越火了,火到什么水平呢?2019 年有一个统计说,两千家企业里,45% 在应用微服务,16% 在试验开发和测试微服务架构,24% 在学习微服务筹备转型,只有剩下的 15% 的企业没有应用微服务。
微服务到底有什么好呢?微服务在 2013 年才被提出,短短几年就有这么疾速的倒退。微服务架构可能实现由小型自主服务组成一个整体利用,各个组成部分之间是松耦合的,复杂性低,各个局部能够独立部署,修复 bug 或者引入新个性更容易,可能独立扩大,不同技术栈之间能够应用不同框架、不同版本库甚至不同的操作系统平台。
对于中大型架构零碎来说,微服务更加便捷,微服务成为很多企业架构重构的方向,同时也对架构师提出更高的挑战。目前有很多罕用于微服务构建的框架,对于构建微服务架构可能带来一些帮忙。
Java 语言相干微服务框架
Spring Boot
Spring Boot 的设计目标是简化新 Spring 利用初始搭建以及开发过程,2017 年有 64.4% 的受访者决定应用 Spring Boot,能够说是最受欢迎的微服务开发框架。利用 Spring Boot 开发的便捷度简化分布式系统基础设施的开发,比方像配置核心、注册、负载平衡等方面都能够做到一键启动和一键部署。
Spring Cloud
Spring Cloud 是一个系列框架的共计,基于 HTTP(s)的 RETS 服务构建服务体系,Spring Cloud 可能帮忙架构师构建一整套残缺的微服务架构技术生态链。
Dubbo
Dubbo 是由阿里巴巴开源的分布式服务化治理框架,通过 RPC 申请形式拜访。Dubbo 是在阿里巴巴的电商平台中逐步摸索演进所造成的,经验过简单业务的高并发挑战,比 Spring Cloud 的开源工夫还要早。目前阿里、京东、当当、携程、去哪等一些企业都在应用 Dubbo。
Dropwizard
Dropwizard 将 Java 生态系统中各个问题域里最好的组建集成于一身,可能疾速打造一个 Rest 格调的后盾,还能够整合 Dropwizard 外围以外的我的项目。国内当初应用 Dropwizard 还很少,资源也不多,然而与 Spring Boot 相比,Dropwizard 在轻量化上更有劣势,同时如果用过 Spring,那么根本也会应用 Spring Boot。
Akka
Akka 是一个用 Scala 编写的库,能够用在有简化编写容错、高可伸缩性的 Java 和 Scala 的 Actor 模型,应用 Akka 可能实现微服务集群。
Vert.x/Lagom/ReactiveX/Spring 5
这四种框架次要用于响应式微服务开发,响应式自身和微服务没有关系,更多用于晋升性能上,然而能够和微服务相结合,也能够晋升性能。
.Net 相干微服务框架
.NET Core
.NET Core 是专门针对模块化微服务架构设计的,是跨平台利用程序开发框架,是微软开发的第一个官网版本。
Service Fabric
Service Fabric 是微软开发的一个微服务框架,基于 Service Fabric 构建的很多云服务被用在了 Azure 上。
Surging
Surging 是基于 RPC 协定的散布式微服务技术框架,基于.NET Core 而来。
Microdot Framework
Microdot Framework 用于编写定义服务逻辑代码,不须要解决开发分布式系统的挑战,可能很不便的进行 MicrosoftOrleans 集成。
Node.js 相干微服务框架
Seneca
Seneca 是 Node.js 的微服务框架开发工具,能够用于编写可用于产品环境的代码。
Hapi/Restify/LoopBack
这三种框架的分工不同,前两种更适宜开发简略的微服务后端系统,第三种更适宜用在大型简单利用开发,还能够用在现有微服务上的构建。
Go 相干微服务框架
Go-Kit/Goa/Dubbogo
Go-Kit 是分布式开发的工具合集,适宜用于大型业务场景下构建微服务;Goa 是用 Go 语言构建的微服务框架;Dubbogo 是和阿里巴巴开源的 Dubbo 可能兼容的 Golang 微服务框架。
Python 相干微服务框架
Python 相干的微服务框架非常少,用的比拟多的是 Nameko。Nameko 让实现微服务变得更简略,同时也提供了很丰盛的性能,比方反对负载平衡、服务发现还反对依赖主动注入等,应用起来很不便,然而有限速、超时和权限机制不欠缺等毛病。
总结
微服务曾经成为很多大型互联网公司的抉择,对于架构师和想要成为架构师的工程师来说,把握微服务不仅要学会应用相干框架来实现,还要把握具体用法,在具体的实际中依然要避开很多坑。
原文链接:http://suo.im/66bi0x