日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微服务技术栈选型

發(fā)布時間:2025/4/5 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微服务技术栈选型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

https://yq.aliyun.com/articles/62569

前言

大家好,我是敖小劍,今天給大家分享的主題是"利用開源社區(qū)打造微服務(wù)生態(tài)體系"。

主要內(nèi)容如下:

內(nèi)容分為三個大的部分:

?

1. 微服務(wù)的核心技術(shù)

2. 目前可選的開源微服務(wù)框架

3. 為微服務(wù)提供支撐的基礎(chǔ)設(shè)施

?

需要說明的是,由于時間有限,而分享的內(nèi)容數(shù)量太多,因此:

?

1. 內(nèi)容都只是羅列,不展開具體介紹

2. 個人知識面有限,列舉過程中范圍覆蓋不足有所遺漏是必然的

3. 部分場景我會給出一些個人建議,但是請注意這些都是我的一家之言,僅供參考

下面列出的是今天將會介紹的內(nèi)容,數(shù)量非常多,可謂繁星璀璨。

?

第一部分:核心技術(shù)

?

現(xiàn)在開始第一個部分:核心技術(shù)。

內(nèi)容主要是第一排的四個技術(shù):

?

- 進程間通訊

- 服務(wù)注冊與發(fā)現(xiàn)

- 負載均衡

- 熔斷

?

第二排的三個內(nèi)容基本都會在類庫或者框架中包含,通常不會單獨放出來,因此我們不詳細展開。

在展開講述進程間通訊之前,額外指出一個對微服務(wù)而言及其重要的概念:

?

在微服務(wù)架構(gòu)中,為了徹底隔絕不同服務(wù),采用了最堅決的方案,強制要求服務(wù)之間:通過 **遠程訪問** 方式進行通訊

?

在這點上,微服務(wù)和以O(shè)SGi、jigsaw為代表的Java模塊化方案形成鮮明對比。

進程間通訊的方式比較多,其多樣性體現(xiàn)在兩個方面:

?

- 有三種風(fēng)格的解決方案:REST,RPC 和 定制

- 交互方式有兩個維度:按照交互對象的數(shù)量分為一對一和一對多,按照應(yīng)答返回的方式分為同步和異步。

兩個維度組合之后的可能性如圖:

目前業(yè)界常見的網(wǎng)絡(luò)類庫:

考慮到 netty 通常會是大多數(shù)人的選擇,這里再展開談一下 netty 的版本選擇問題.

?

需要特別強調(diào)的是: netty 5.* 版本因為 ForkJoinPool 引入了太多復(fù)雜度而又未能帶來明確的性能提升,已經(jīng)被 netty 官方放棄,不再繼續(xù)。使用 netty 5.* alpha 版本的同學(xué)請回退到 4.0 或者 4.1 版本。

Rest 研究不多,只能給出一點簡單的建議。

RPC框架,業(yè)界數(shù)得上數(shù)的大概有十幾種,這里只詳細介紹三種,分別代表老中新三代RPC框架。

以下是個人給出的建議:

提醒一點的是:如果需要支持移動設(shè)備,如果想要用HTTTP 2 的新特性,那么就只能選擇gRPC了。

?

談?wù)劦谌龡l路線:定制。選擇這種方案的同學(xué)也不少。

消息隊列的選擇,同樣很多,這里列出三種常見的加一個特例 NSQ。

首先看服務(wù)注冊和服務(wù)發(fā)現(xiàn),在實現(xiàn)時根據(jù)對一致性要求的不同,分成兩個流派:

?

1. 強一致性

比較常見的分布式一致性協(xié)議是 PAXOS 協(xié)議和 Raft 協(xié)議。相比 PAXOS 而言,Raft 協(xié)議易于理解和實現(xiàn),因此最新的分布式一致性方案大都選擇 Raft 協(xié)議。

zookeeper 采用的是 PAXOS 協(xié)議(實際為改進版本ZAP),而 Raft 協(xié)議那邊主要是 consul 和 etcd。

2. 弱一致性

如果對一致性要求不高,可以選擇以 DNS 為基礎(chǔ)的方案,也可以像新浪微博的 Vintage 一樣基于 Redis 。

常見的強一致性方案如下:

弱一致性方案比較少,一般多用于 REST 或者 HTTP + json / web service 等簡單場合:

負載均衡的方案選擇,注意區(qū)分服務(wù)器端負載均衡和客戶端負載均衡。

熔斷器目前只有一個可選的開源方案,之前有同學(xué)吐糟說 Hystrix 的設(shè)計和實現(xiàn)不好,但是在2016年又改進了很多。

第二部分:微服務(wù)框架

在國內(nèi)討論SOA、服務(wù)化、微服務(wù)時,dubbo 總是一個繞不開的名字。個人對 dubbo 的評價是"國內(nèi)SOA框架集大成之作",基本上一個SOA框架應(yīng)有的功能都有了。

回顧一下 dubbo 曾經(jīng)輝煌的歷史:

再對比一下現(xiàn)狀,實在令人感嘆:

從時間線上來看 dubbo 的崛起和興盛,猶如流星劃過夜空.

對 dubbo 的總結(jié),有比較多的個人情緒在,僅供參考。

Motan,能否接過 dubbo 的大旗?

發(fā)現(xiàn)每個服務(wù)化框架出來,都要被問一個問題:為啥你們不直接用 dubbo 呢? Motan也未能免俗 :)

補充:這也是我自己不選擇 dubbo,而是新設(shè)計 dolphin 微服務(wù)框架的重要理由之一。改造成本遠不是一句輕巧的"稍微改改"那么簡單。

Motan的技術(shù)棧:

下面介紹業(yè)界大佬 Netflix 出品的重量級開源產(chǎn)品 OSS 套件。

Netflix 比較有意思的一個做法是他的組建拆分的比較細致,每個獨立功能都拆分為單獨的組件,方便按需選擇,贊一個。

個人對 OSS 的一些看法,屬于雞蛋里面挑骨頭性質(zhì),僅供參考。

下面開始介紹另外一位業(yè)界超重量級大佬的一系列作品,所有Java同學(xué)都最熟悉不過的 spring。

在介紹spring為微服務(wù)提供的支持之前,我們先回顧一下過去這十四年spring一路的歷程:

開始大叔式的懷舊環(huán)節(jié),想當年我們看這幾本書的時候,我們還那么年輕 :)

?

嘮叨幾句:Rod Johnson 大叔(現(xiàn)在可能要稱為大爺了) 是我最敬仰最崇拜的業(yè)界大神之一。做技術(shù)能做到他這水準,此生無憾。

在spring從2002年出道開始,這十幾年間出了很多里程碑式版本,增加了很多重量級的功能。但是,個人評價,2014年spring boot的問世,才是最近三五年間spring最大的變革和重新思考。

?

springboot的出現(xiàn),代表著spring已經(jīng)不再沉迷于貪吃蛇游戲,而是開始反省自身和自我改造,對于一個發(fā)展了十多年的老框架來說,認識到這點,遠比加一兩個新功能重要的多。

對 spring boot 總結(jié),這也是我選擇 spring boot 作為新的 dolphin 微服務(wù)框架基石的重要理由。

spring cloud 出場,2015年才出來的新面孔。

承載著spring對微服務(wù)架構(gòu)領(lǐng)域的眾望和抱負。

一出場,就是大量的子項目,這里只列出平時比較常用的一些:

Spring Cloud Netflix 子項目的出現(xiàn),更像是spring之前的做事風(fēng)格,做他最擅長的領(lǐng)域:集成。

以下內(nèi)容是后面補充,沒有在會場直接說,純屬個人吐糟:

對spring cloud的個人評價:想法很好,出發(fā)點正確,市場空缺而切入的時機很合適。但是,spring cloud的實際表現(xiàn),總給人一種束手束腳,瞻前顧后,小富即安的感覺。對比十幾年前 Rod Johnson 大叔意氣風(fēng)發(fā),氣壯山河,談笑間掀翻EJB的王座的表現(xiàn),如今的spring cloud,能力不足,信心不夠,格局太小,難成大器。期待后面能有轉(zhuǎn)變。

下面是對目前微服務(wù)框架的個人看法:

第三部分:基礎(chǔ)設(shè)施

由于演講時間只有一個小時,因此基礎(chǔ)設(shè)施的很多內(nèi)容無法羅列,這次只是介紹了其中小部分的內(nèi)容。

分布式配置管理的目前主流底層存儲的方案,如果自己動手打造那么可選的無非就是下面這些:

也可以選擇現(xiàn)有成型的開源產(chǎn)品:

APM領(lǐng)域的選擇,商業(yè)產(chǎn)品很多,但是開源的選擇實在不多:

在日志分析領(lǐng)域,ELK是王者,但是也有新秀出場:

結(jié)束語

洋洋灑灑的列舉了幾十個名字,但并不是讓大家每個名字都去探索一遍,日常中如果需要做技術(shù)抉擇,我有兩句話:

  • 仰望星空,看弱水三千:眼界要開闊,知識面要廣,哪怕只是精通各種名字,至少,知道在某個地方有個好東西,知道某個領(lǐng)域有其他的選擇

  • 立足當下,吾只取一瓢:最終還是要落地的,能玩的轉(zhuǎn)的東西才是好東西。另外,好東西雖多,找到一個能適合自己,能解決問題的就好了,別貪心,別貪多

  • ?

    轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/articles/9247089.html

    總結(jié)

    以上是生活随笔為你收集整理的微服务技术栈选型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。