999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種.Net框架下微服務框架設計研究

2019-05-08 12:59:22鄭衛勝
通信電源技術 2019年4期
關鍵詞:故障服務

方 圓,鄭衛勝

(中國電子科技集團公司第二十七研究所,河南 鄭州 450047)

0 引 言

微服務架構是一種將單個應用程序開發為一組小型服務的方法,每個小服務運行在自己的進程中,并且以輕量級機制通信。這些服務是圍繞業務能力建立的,在最理想的情況下,每個服務都可獨立地開發、測試、發布、部署、擴展、集成和維護。

隨著微服務架構的發展,出現了許多開源的微服務框架。在Java生態環境中出現了Spring Boot、Eclipse MicroPro fi le、Dropwizard等集成開源框架[1],這些開源框架大大促進了微服務架構在Java生態環境中的推廣。

.Net因其生態環境的封閉性,流行的微服務統一開源的框架很少,軟件開發者大部分選擇微軟自身的產品來構建微服務架構的軟件應用,極大地增加了軟件開發的經濟成本,也降低了新開發系統與異構系統集成的能力。因此,提出了一種以集成HAProxy、KeepAlived、MassTransit以及RabbitMQ中間件構建微服務框架的設計方法,以支持.Net框架下微服務架構軟件應用的運行。

1 微服務框架設計

1.1 整體架構

微服務框架整體系統架構圖見圖1。

圖1 微服務框架結構

使用HAProxy和KeepAlived相互組合實現基于微服務訪問的高可用性,負載均衡和故障遷移,通過MassTransit和RabbitMQ集群保障系統的服務可靠通信、服務注冊與發現和數據最終一致性。

1.2 服務通信

微服務框架中中采用MassTransit框架來完成微服務之間的通信。MassTransit框架是一個自由、開源、輕量級的消息總線,實現在.Net框架下創建分布式應用程序。MassTransit框架保證了整個系統消息的可靠傳遞和通信消息數據最終一致性。

1.2.1 通信消息可靠傳遞

MassTransit默認使用RabbitMQ消息中間件作為服務通信的基礎設施[2]。通信消息在分布式系統中傳遞不可靠,為了保證消息的可靠傳遞可采用如下方法。

第一,通過MassTransit框架提供的API接口設置RabbitMQ交換機,隊列和消息為持久化和消息確認機制。解決消息中間件服務器的異常崩潰而導致的消息丟失問題。第二,通過配置RabbitMQ集群,保證不會因為任何一臺RabbitMQ節點故障而造成系統故障的情況。

1.2.2 通信消息數據最終一致性

微服務系統的數據最終一致性是指數據對象在沒有更新前,最終所有獲取數據的請求都將返回最后更新值。本文采用MassTransit提供的Saga組件,可保證分布式系統的數據一致性[3-4]。

MassTransit中提供了Automatonymous狀態機組件定義狀態機Saga實例,并通過 fl uent語法定義對應狀態機實例。Saga實例中通過CorrelationId字段將消息串聯起來,維護消息的狀態,同時MassTransit還可與NHibernate等框架集成,完成Saga實例的持久化工作。

定義狀態機Saga實例的例子見圖2,對應狀態機實例定義見圖3。最后通過IRabbitMqBusFactory Con fi gurator類的LoadStateMachine-Sagas()方法將狀態機實例注冊到ReceiveEndpoint上,完成通信消息數據最終一致性的配置。

1.3 服務注冊與發現

本文采用RabbitMQ作為通信機制,服務的調用者和微服務的實例之間完全進行了解耦,服務的調用者無需知道微服務實例的存在。只要服務調用者能將服務調用消息發送至RabbitMQ節點,RabbitMQ節點就能將服務調用消息轉發到可用的微服務實例上,這一切對服務調用者是完成透明的。

1.4 高可用性

微服務架構軟件中的網絡通信需要多個物理組件和邏輯組件共同協作,這些組件都有可能出現故障。為了最小化局部故障帶來的影響,本文采用了HAProxy和KeepAlived實現整個微服務框架的高可用性訪問。

如圖1所示,HAProxy服務器1和HAProxy服務器2提供對RabbitMQ集群訪問,通過設置KeepAlived,在兩臺服務器上不斷進行故障檢測,保證RabbitMQ集群能被正常訪問。在接入交換機后配置兩臺HAProxy服務器用于實現對RabbitMQ集群的負載均衡,當用戶訪問量急劇增長時,能有效解決RabbitMQ集群中的單臺服務器成為訪問瓶頸的問題。KeepAlived不斷檢測兩臺HAProxy服務器的狀態,若其中一臺宕機或工作出現故障,自動完成故障遷移另一臺為用戶提供訪問服務,待故障服務器恢復正常,KeepAlived自動將其重新加入到檢測集群中,保證整體系統的高可用性。

圖2 Saga實例定義

圖3 狀態機定義

2 結 論

文本給出了一種.Net框架下微服務框架設計,重點分析了服務通信、高可用性等問題,并給出了關鍵程序和中間件配置代碼。使用該框架開發降低了開發難度,提高了開發效率。目前本方案已在多個實際工程項目中成功應用,第三方評價和用戶驗收效果良好。

猜你喜歡
故障服務
故障一點通
服務在身邊 健康每一天
今日農業(2019年14期)2019-09-18 01:21:54
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年15期)2019-01-03 12:11:33
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
奔馳R320車ABS、ESP故障燈異常點亮
故障一點通
故障一點通
主站蜘蛛池模板: 亚洲日本一本dvd高清| 日本福利视频网站| 欧美日韩导航| 免费又黄又爽又猛大片午夜| 香蕉eeww99国产在线观看| 中文字幕永久在线看| 亚洲国产成人麻豆精品| 欧美日韩北条麻妃一区二区| 欧美日韩精品在线播放| 丁香婷婷激情网| 999国产精品永久免费视频精品久久 | 精品免费在线视频| 久久成人免费| 中文字幕欧美日韩| 国产在线拍偷自揄拍精品| 在线观看国产小视频| 久久精品国产精品一区二区| 亚洲综合天堂网| 日韩成人在线视频| 日韩在线网址| 67194亚洲无码| 免费一极毛片| 爱色欧美亚洲综合图区| 丝袜国产一区| 国产欧美视频在线观看| 青青青国产免费线在| 全部免费特黄特色大片视频| 欧美成人午夜在线全部免费| 日韩精品免费一线在线观看| 欧美一级黄片一区2区| 免费av一区二区三区在线| 成年看免费观看视频拍拍| 成人国产精品网站在线看| 91无码视频在线观看| 国产综合精品一区二区| a级免费视频| 2020精品极品国产色在线观看| 白浆免费视频国产精品视频| 色婷婷综合激情视频免费看| 精品久久蜜桃| 欧美黄网站免费观看| 国产精品自在在线午夜区app| 国产精品任我爽爆在线播放6080| 欧美激情第一欧美在线| 久热re国产手机在线观看| 国产成人精品日本亚洲| 中文无码精品A∨在线观看不卡 | 四虎永久在线视频| 欧美一区日韩一区中文字幕页| 在线观看精品自拍视频| 日韩国产精品无码一区二区三区| 超碰色了色| 国产白浆一区二区三区视频在线| 天天做天天爱夜夜爽毛片毛片| 任我操在线视频| 午夜精品久久久久久久无码软件| 99视频精品在线观看| 在线亚洲精品福利网址导航| 99九九成人免费视频精品| 欧美A级V片在线观看| 熟妇无码人妻| 欧美激情综合一区二区| 91久久偷偷做嫩草影院精品| 欧美日韩亚洲综合在线观看| 欧美精品亚洲精品日韩专区| 亚洲日韩高清在线亚洲专区| 黄色免费在线网址| 免费一级大毛片a一观看不卡| jizz国产视频| 伊人激情综合网| 欧美人人干| 国产乱人免费视频| 亚洲乱码在线播放| 尤物成AV人片在线观看| 欧美一区二区三区不卡免费| 精品無碼一區在線觀看 | 无码高潮喷水在线观看| 欧美69视频在线| 永久毛片在线播| 色国产视频| 亚洲免费毛片| 黄色网站不卡无码|