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故障燈異常點亮
故障一點通
故障一點通
主站蜘蛛池模板: 国产理论精品| 国产无套粉嫩白浆| 人妻夜夜爽天天爽| 99热这里只有成人精品国产| 亚洲欧美另类日本| 精品国产三级在线观看| 亚洲第一成人在线| 日本三级欧美三级| 思思热在线视频精品| 日韩国产综合精选| 国产精品久久久久久久久kt| 日本三级欧美三级| 亚洲精品日产精品乱码不卡| 91精品久久久久久无码人妻| 日韩a级毛片| 欧美一区二区三区不卡免费| 久久黄色小视频| 久久熟女AV| 四虎在线观看视频高清无码| 欧美a级完整在线观看| 国产高清色视频免费看的网址| 国产在线精品美女观看| 国产福利影院在线观看| 在线观看国产黄色| 人妻丰满熟妇啪啪| 欧美亚洲中文精品三区| 亚洲黄色高清| 国产精品一区二区国产主播| 国产性生交xxxxx免费| 日韩无码黄色网站| 亚洲视频影院| 香蕉久人久人青草青草| 久久亚洲中文字幕精品一区| 国产拍在线| 国产精品女同一区三区五区| 亚洲国产看片基地久久1024| 国产亚洲精久久久久久久91| 日本91在线| 欧美中文字幕在线二区| 大陆国产精品视频| 国产成人久久777777| 91视频国产高清| 玖玖精品视频在线观看| 无码av免费不卡在线观看| 久久免费精品琪琪| 免费看av在线网站网址| 亚洲大尺度在线| 国产人妖视频一区在线观看| 亚洲欧美成人网| 无码aⅴ精品一区二区三区| 国产99热| 国模私拍一区二区| 国产系列在线| 日本三级精品| 国产99视频在线| 精品少妇人妻一区二区| 一本综合久久| 国产欧美专区在线观看| 成人综合网址| 亚洲综合日韩精品| 国产激情影院| 人妻丝袜无码视频| 久久精品这里只有国产中文精品| 欧美一级99在线观看国产| 国产18页| 亚洲人成影院午夜网站| 天天婬欲婬香婬色婬视频播放| 久久精品国产在热久久2019| 欧美不卡二区| 亚洲成人网在线观看| 亚洲欧美极品| lhav亚洲精品| 日韩成人午夜| 999在线免费视频| 中文字幕 91| 亚洲人成影视在线观看| 久久精品人妻中文视频| 无码 在线 在线| 久久香蕉国产线看观看式| 国产日韩av在线播放| 国产亚洲欧美在线专区| 国产女人喷水视频|