微服務(wù)是一種架構(gòu)風(fēng)格,一個大型復(fù)雜軟件應(yīng)用由一個或多個微服務(wù)組成射窒。系統(tǒng)中的各個微服務(wù)可被獨立部署藏杖,各個微服務(wù)之間是松耦合的。每個微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)轮洋。在所有情況下制市,每個任務(wù)代表著一個小的業(yè)務(wù)能力。
市面上常用的微服務(wù)框架有如下這些:
Dubbo
Dubbo是阿里多年構(gòu)建生產(chǎn)級分布式微服務(wù)的技術(shù)結(jié)晶弊予,服務(wù)治理能力非常豐富祥楣,在國內(nèi)技術(shù)社區(qū)具有很大影響力,目前github上有超過16k星汉柒。Dubbo本質(zhì)上是一套基于Java的RPC框架误褪,當(dāng)當(dāng)Dubbox擴展了Dubbo支持RESTful接口暴露能力。
RESTful
基于Spring的框架本質(zhì)上可以認為是一種RESTful框架(不是RPC框架)碾褂,序列化協(xié)議主要采用基于文本的JSON兽间,通訊協(xié)議一般基于HTTP。RESTful框架天然支持跨語言正塌,任何語言只要有HTTP客戶端都可以接入調(diào)用嘀略,但是客戶端一般需要自己解析payload。目前Spring框架也支持Swagger契約編程模型乓诽,能夠基于契約生成各種語言的強類型客戶端帜羊,極大方便不同語言棧的應(yīng)用接入,但是因為RESTful框架和Swagger規(guī)范的弱契約特性鸠天,生成的各種語言客戶端的互操作性還是有不少坑的讼育。
gRPC
gRPC是谷歌近年新推的一套RPC框架,基于protobuf的強契約編程模型稠集,能自動生成各種語言客戶端奶段,且保證互操作。支持HTTP2是gRPC的一大亮點剥纷,通訊層性能比HTTP有很大改進痹籍。Protobuf是在社區(qū)具有悠久歷史和良好口碑的高性能序列化協(xié)議,加上Google公司的背書和社區(qū)影響力晦鞋,傳播效果杠杠滴词裤。
RestCloud
RestCloud定位是一款輕量級面向企業(yè)應(yīng)用層的微服務(wù)治理及低代碼開發(fā)平臺刺洒,通過本平臺可以快速的開發(fā)企業(yè)級前后端分離的業(yè)務(wù)系統(tǒng)以及基于微服務(wù)架構(gòu)的微應(yīng)用系統(tǒng),本平臺通過建立數(shù)據(jù)模型和業(yè)務(wù)模型能夠無代碼快速的發(fā)布服務(wù)并對服務(wù)的運行狀況進行監(jiān)控吼砂,同時也能基于數(shù)據(jù)模型快速生成Java代碼并快速發(fā)布為Rest服務(wù)逆航,同時也提供基于注解式的開發(fā)模式,系統(tǒng)能自動通過注解掃描自動發(fā)布Rest服務(wù)并生成國際標準的OpenAPI3.0接口文檔渔肩,在本平臺開發(fā)的Rest服務(wù)自動支持MongoDB和RDBS關(guān)系數(shù)據(jù)庫因俐,同時針對關(guān)系數(shù)據(jù)庫可以很好的支持跨數(shù)據(jù)庫事務(wù)功能。