国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關于Subscribe Rancher Events的思考

yuxue / 3447人閱讀

摘要:年月日社區技術支持計劃全面啟動,本文是研發人員在社區答疑過程中關于的一些心得和思考。初識基于的消息總線可以很好的與前端兼容,讓消息的傳遞不再是后端的專利。

2016年2月14日「Rancher社區技術支持計劃」全面啟動,本文是Rancher研發人員在社區答疑過程中關于Subscribe Rancher Events的一些心得和思考。

引言

幾乎每個大型的分布式的集群軟件,都離不開一樣東西,就是所謂的message bus(消息總線), 它就如同人體的血管一樣,連通著各個組件,相互協調,一起工作。 與很多同類軟件不同的是,Rancher使用的基于websocket協議實現的消息總線, Rancher不會依賴任何MQ,基于websocket的實現十分輕量級, 同時在各種語言庫的支持上,也毫無壓力,畢竟websocket是HTTP的標準規范之一。

初識Rancher Events

基于websocket的消息總線可以很好的與前端兼容,讓消息的傳遞不再是后端的專利。 在Rancher UI上,很容易就能捕獲到rancher events,比如:

這里面監聽的事件名稱是resource.change,這個resource.change在前端UI上有很大的用處, 其實我們都知道,很多POST形式的create請求并不是同步返回結果的,因為調度引擎需要處理, 這個等待的過程中,當然不能前端一直wait,所以做法都是發起create后直接返回HTTP 202, 轉入后臺執行后,Rancher的后端會把創建的執行過程中間狀態不斷發送給消息總線, 那么前端通過監聽resource.change就會獲得這些中間狀態,這樣在UI上就可以給用戶一個很好的反饋體驗。

當然Rancher Events并不是只有resource.change,比如在Iaas Events集合中就有如下這些:

除了Events的事件定義,當然還有如何去subscribe 這些events,這部分內容在之前的文章Rancher event機制及其實踐指南中有所涉獵,便不贅言。

Subscribe Rancher Events的架構模式

Rancher的體系內,很多微服務的組件都是基于Subscribe Rancher Events這種架構,舉個例子來看, 以rancher-metadata組件為例:

metadata服務可以提供當前host的元數據查詢,我們可以很容器的知道env內的stack/service/container的情況, 這些數據其實由rancher-server也就是cattle引擎生成的,那么生成之后怎么發送給各個agent呢? 其實就是metadata進行了subscribe rancher events,當然它只監聽了config.update事件, 只要這個事件有通知,metadata服務便會下載新的元數據,這樣就達到了不斷更新元數據的目的。

隨著深入的使用Rancher,肯定會有一些伙伴需要對Rancher進行擴展,那就需要自行研發了, 畢竟常見的方式就是監聽一些事件做一些內部處理邏輯,并在DB中存入一些數據, 同時暴露API服務,架構如下:

如果需要做HA,可能需要scale多個這樣的服務,那么架構就變成這樣:

這里其實會有一個問題,如果你監聽了一些廣播事件,那么實際上每個實例都會收到同樣的事件, 那么你的處理邏輯就要注意了,尤其是在處理向DB中寫數據時,一定要考慮到這樣的情況。

比如,可以只有其中一個實例來監聽廣播事件,這樣不會導致事件重復收取:

Event Handler要考慮一定failover機制,這樣事件收取不會長時間中斷。

Rancher Events有一些非廣播事件,那么就需要在subscribe的時候指定一些特殊參數, 這樣事件就會只發送給注冊方,不會發送給每個節點,比如:

總結

此文算是這段時間做Rancher服務擴展的心得,深度參與一個開源軟件最終肯定會希望去改動它擴展它。 這也是客觀需求所致,開源軟件可以拿來即用,但是真正可用實用,必須加以改造,適應自身需求。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26804.html

相關文章

  • Rancher event機制及其實踐指南

    摘要:本次分享就介紹一下的機制,由于相關內容文檔極其欠缺,本人也只是通過實踐和代碼閱讀分析其原理,如有謬誤歡迎指正。能夠管理多的同時又拆分出各種服務組件,機制是必不可少的。為實現機制,通常我們會采用等中間件來實現。 我們的Rancher官方技術社區已經創立些許時日了,相信通過我們的線下meetup和線上布道工作,很多朋友對Rancher的使用已經掌握得很純熟了。一些高級用戶開始真正把自己的業...

    hightopo 評論0 收藏0
  • Rancher v1.2基礎設施引擎整體架構分析

    摘要:官方于月日發布了其容器部署與管理平臺的最新版本,。架構總覽在版本的整體架構圖如下圖所示上,引擎向下深入演化成了基礎設施引擎,這一點上在時代也早有體現。基礎設施引擎初次安裝版本,會發現多了如下圖所示的明顯標識,默認的引擎需要安裝等服務。 Rancher Labs官方于12月1日發布了其容器部署與管理平臺Rancher的最新版本,Rancher v1.2。Rancher v1.2可以說是一...

    Sike 評論0 收藏0
  • Rancher v1.2基礎設施引擎整體架構分析

    摘要:官方于月日發布了其容器部署與管理平臺的最新版本,。架構總覽在版本的整體架構圖如下圖所示上,引擎向下深入演化成了基礎設施引擎,這一點上在時代也早有體現。基礎設施引擎初次安裝版本,會發現多了如下圖所示的明顯標識,默認的引擎需要安裝等服務。 Rancher Labs官方于12月1日發布了其容器部署與管理平臺Rancher的最新版本,Rancher v1.2。Rancher v1.2可以說是一...

    tianhang 評論0 收藏0
  • k8s in Rancher架構分析

    摘要:組件會給每個分配一個,則替代了的來實現服務發現,在的容器內部依然可以訪問服務來獲取元數據信息。的需要在中實現一個,目前只有,而則維護了自己的版本在其中提供了。 在Rancher 1.0版本開始,Rancher逐步增加了Kubernetes、Swarm、Mesos等多編排引擎的支持,很多朋友就此產生了疑惑,諸如Cattle引擎和這幾個之間到底什么關系?每種引擎是如何支持的?自家的業務環境...

    kid143 評論0 收藏0
  • k8s in Rancher架構分析

    摘要:組件會給每個分配一個,則替代了的來實現服務發現,在的容器內部依然可以訪問服務來獲取元數據信息。的需要在中實現一個,目前只有,而則維護了自己的版本在其中提供了。 在Rancher 1.0版本開始,Rancher逐步增加了Kubernetes、Swarm、Mesos等多編排引擎的支持,很多朋友就此產生了疑惑,諸如Cattle引擎和這幾個之間到底什么關系?每種引擎是如何支持的?自家的業務環境...

    Sourcelink 評論0 收藏0

發表評論

0條評論

yuxue

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<