成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

mesos概述

孫吉亮 / 3229人閱讀

摘要:由一個(gè)來(lái)管理在每個(gè)集群節(jié)點(diǎn)上的運(yùn)行也稱為在這些上運(yùn)行。它最優(yōu)的特點(diǎn)是消息在不同的之間傳遞,它抽象了,消息傳遞其實(shí)是一個(gè)事件的庫(kù)。底層實(shí)際上依賴于,為了保證分布式存儲(chǔ)最終一致性。在上運(yùn)行的由兩部分組成一個(gè)是,通過注冊(cè)到來(lái)獲取集群資源。

Mesos Architecture

上圖顯示了 Mesos 的主要組成部分。 Mesos 由一個(gè) master daemon 來(lái)管理 slave daemon 在每個(gè)集群節(jié)點(diǎn)上的運(yùn)行, mesos applications ( 也稱為 frameworks )在這些 slaves 上運(yùn)行 tasks。

Mesos master&slave
首先,Mesos是一個(gè)分布式的架構(gòu),它分Mesos master和Mesos slave,slave和master分別有不同的職責(zé)。從Mesos的源代碼可以看出Mesos實(shí)現(xiàn)得比較優(yōu)雅——它是一個(gè)C++代碼。代碼中有大量的關(guān)鍵詞叫process,它不是傳統(tǒng)意義上的進(jìn)程,而是一種抽象的libprocess,libprocess是它最核心的庫(kù)。如果大家以前使用過Erlang的語(yǔ)言就知道libprocess實(shí)際是對(duì)Erlang的IO和通訊模型的一個(gè)抽象。

libprocess,在Erlang里面也叫進(jìn)程,實(shí)際上是一個(gè)虛擬進(jìn)程,在運(yùn)行Erlang的VM上。它最優(yōu)的特點(diǎn)是消息在不同的process之間傳遞,它抽象了process,消息傳遞其實(shí)是一個(gè)事件的庫(kù)。向process里發(fā)一個(gè)消息,這個(gè)消息不是直接打到process,而是中間有一個(gè)buffer的過程。

這樣做的優(yōu)點(diǎn)是特別適合分布式的系統(tǒng),以前最常用的做法是監(jiān)聽網(wǎng)絡(luò)端口,有包來(lái)了,有一個(gè)模塊專門負(fù)責(zé)解這個(gè)包,解開一個(gè)協(xié)議后把這個(gè)協(xié)議發(fā)到后面一個(gè)處理進(jìn)程,這個(gè)處理的進(jìn)程可能是IO操作,可能去做其它事情,然后里面有很多IO上的Block,最后構(gòu)造出一個(gè)response,通過一個(gè)socket傳給客戶端。這是最常用的一個(gè)寫網(wǎng)絡(luò)程序的辦法,但是這里有一個(gè)大的IO上Block的地方——后面處理的邏輯依賴于解包的邏輯。如果處理邏輯很快,但解包邏輯很慢,后面會(huì)拖慢,都在等解包。

后來(lái)人們想到一種IO處理的方式,讓任何一個(gè)東西都是分離的,比如從某一個(gè)端口收到一個(gè)消息,有一個(gè)多帶帶的進(jìn)程,一個(gè)線程或者其它的東西去處理這個(gè)唯一的請(qǐng)求。這個(gè)線程很重,后來(lái)大家又發(fā)明了一些其它的東西,比如golang里面去搞一個(gè)channel,Erlang里面去搞一個(gè)process。libprocess實(shí)際上做了IO方面的事情, Mesos大量使用這個(gè)模型。

Zookeeper
Mesos底層實(shí)際上依賴于Zookeeper,為了保證分布式存儲(chǔ)最終一致性。在Mesos運(yùn)行過程中產(chǎn)生了一些數(shù)據(jù),最終都會(huì)落在Zookeeper。因?yàn)镸esos是多個(gè)master,為了達(dá)到HA的需求,只要一個(gè)master活的,那么整個(gè)服務(wù)就能得到保證。

protobuf
Mesos內(nèi)部在通信里面選擇了protobuf協(xié)議。好處是比較流行,各個(gè)語(yǔ)言的庫(kù)都比較多,結(jié)構(gòu)化的語(yǔ)義也比較強(qiáng),所以Mesos內(nèi)部選擇了protobuf。

Master 使用 Resource Offers 實(shí)現(xiàn)跨應(yīng)用細(xì)粒度資源共享,如 cpu、內(nèi)存、磁盤、網(wǎng)絡(luò)等。 master 根據(jù)指定的策略來(lái)決定分配多少資源給 framework ,如公平共享策略,或優(yōu)先級(jí)策略。 為了支持更多樣性的策略,master 采用模塊化結(jié)構(gòu),這樣就可以方便的通過插件形式來(lái)添加新的分配模塊。
在 Mesos 上運(yùn)行的 framework 由兩部分組成:
一個(gè)是 scheduler ,通過注冊(cè)到 master 來(lái)獲取集群資源。
另一個(gè)是在 slave 節(jié)點(diǎn)上運(yùn)行的 executor 進(jìn)程,它可以執(zhí)行 framework 的 task 。 Master 決定為每個(gè) framework 提供多少資源, framework 的 scheduler 來(lái)選擇其中提供的資源。當(dāng) framework 同意了提供的資源,它通過 master 將 task發(fā)送到提供資源的slaves 上運(yùn)行。
資源供給的一個(gè)例子下圖描述了一個(gè) Framework 如何通過調(diào)度來(lái)運(yùn)行一個(gè) Task

事件流程:
Slave1 向 Master 報(bào)告,有4個(gè)CPU和4 GB內(nèi)存可用
Master 發(fā)送一個(gè) Resource Offer 給 Framework1 來(lái)描述 Slave1 有多少可用資源
FrameWork1 中的 FW Scheduler會(huì)答復(fù) Master,我有兩個(gè) Task 需要運(yùn)行在 Slave1,一個(gè) Task 需要<2個(gè)CPU,1 GB內(nèi)存="">,另外一個(gè)Task需要<1個(gè)CPU,2 GB內(nèi)存="">
最后,Master 發(fā)送這些 Tasks 給 Slave1。然后,Slave1還有1個(gè)CPU和1 GB內(nèi)存沒有使用,所以分配模塊可以把這些資源提供給 Framework2
當(dāng) Tasks 完成和有新的空閑資源時(shí),Resource Offer 會(huì)不斷重復(fù)這一個(gè)過程。、
當(dāng) Mesos 提供的瘦接口允許其來(lái)擴(kuò)展和允許 frameworks 相對(duì)獨(dú)立的參與進(jìn)來(lái),一個(gè)問題將會(huì)出現(xiàn): 一個(gè) framwork 的限制如何被滿足在不被 Mesos 對(duì)這些限制所知曉的情況下?
例如, 一個(gè) framework 如何得到數(shù)據(jù)本地化在不被 Mesos所知曉哪個(gè)節(jié)點(diǎn)存儲(chǔ)著被該 framwork 所需要的數(shù)據(jù)?Mesos 通過簡(jiǎn)單的寄予 frameworks 能夠拒絕 offers 的能力來(lái)回答了這個(gè)問題。 一個(gè) framework 將拒絕 不滿足其限制要求的 offers 并接受滿足其限制要求的 offers.

特殊情況下,我們找到一個(gè)簡(jiǎn)單的策略 delay scheduling, 在該 frameworks 等待 一個(gè)限制時(shí)間來(lái)獲取存儲(chǔ)輸入數(shù)據(jù)的節(jié)點(diǎn), 并生成接近的優(yōu)化過得數(shù)據(jù)點(diǎn)。

本篇主要分享了mesos的組成部分和事件流程。下周會(huì)詳細(xì)介紹Mesos的概念解析和工作原理。
敬請(qǐng)期待。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/25178.html

相關(guān)文章

  • mesos概述

    摘要:由一個(gè)來(lái)管理在每個(gè)集群節(jié)點(diǎn)上的運(yùn)行也稱為在這些上運(yùn)行。它最優(yōu)的特點(diǎn)是消息在不同的之間傳遞,它抽象了,消息傳遞其實(shí)是一個(gè)事件的庫(kù)。底層實(shí)際上依賴于,為了保證分布式存儲(chǔ)最終一致性。在上運(yùn)行的由兩部分組成一個(gè)是,通過注冊(cè)到來(lái)獲取集群資源。 Mesos ArchitectureshowImg(https://segmentfault.com/img/bVOvTu?w=1088&h=724);上...

    宋華 評(píng)論0 收藏0
  • 使用 Docker, 7 個(gè)命令部署一個(gè) Mesos 集群

    本文原文是 Deploy a Mesos Cluster with 7 Commands Using Docker 這個(gè)教程將給你展示怎樣使用 Docker 容器提供一個(gè)單節(jié)點(diǎn)的 Mesos 集群(未來(lái)的一篇文章將展示怎樣很容易的擴(kuò)展這個(gè)到多個(gè)節(jié)點(diǎn)或者是見底部更新)。這意味著你可以使用 7 個(gè)命令啟動(dòng)整個(gè)集群!不需要安裝任何東西除了一個(gè)正在運(yùn)行的 Docker 服務(wù)器。 將啟動(dòng) 4 個(gè)容器:...

    dadong 評(píng)論0 收藏0
  • 當(dāng)當(dāng)彈性化中間件及云化之路(據(jù)說讀完可以少踩坑)

    摘要:第二部分介紹當(dāng)當(dāng)?shù)膹椥曰虚g件。第三部分當(dāng)當(dāng)?shù)脑苹?。下面部分是為?dāng)當(dāng)運(yùn)營(yíng)人員與合作伙伴提供的系統(tǒng),如商品價(jià)格庫(kù)存等。下圖是當(dāng)當(dāng)?shù)谋O(jiān)控系統(tǒng)以及限流系統(tǒng)的。當(dāng)當(dāng)采用的作業(yè)中間件是自研的,它可以將一個(gè)完整的作業(yè)拆分為多個(gè)相互獨(dú)立的任務(wù)。 showImg(https://segmentfault.com/img/remote/1460000009999152); 6月24日,雙態(tài)運(yùn)維·烏鎮(zhèn)...

    王陸寬 評(píng)論0 收藏0
  • 技術(shù)實(shí)踐 | Mesos 全方位“烹飪”指南

    摘要:之前提到的文件即可利用以下模板生成請(qǐng)注意,其中的與就是占位符。如將某一特定部署至生產(chǎn)環(huán)境并運(yùn)行個(gè)實(shí)例。而另一種方式則是使用等負(fù)載均衡器即服務(wù)器端發(fā)現(xiàn)??芍嘏渲们夷軌蛟谧兏l(fā)生后立即將請(qǐng)求路由至新實(shí)例。 如今與Mesos相關(guān)的文章可謂層出不窮,不過展示能夠直接用于生產(chǎn)的完整基礎(chǔ)設(shè)施的資料卻相當(dāng)少見。在今天的文章中,我將介紹各組件的配置與使用方式,旨在幫助大家利用Mesos構(gòu)建起持續(xù)交付且...

    archieyang 評(píng)論0 收藏0
  • 容器監(jiān)控實(shí)踐—Dockbix

    摘要:一概述意為,即使用來(lái)監(jiān)控容器的插件或者模塊,既然有專業(yè)的等容器監(jiān)控方案,為什么還要用傳統(tǒng)的呢在剛出現(xiàn)時(shí),還沒有專業(yè)的容器監(jiān)控方案公司已有的成熟實(shí)踐,想直接集成到中雖然不太優(yōu)雅使用來(lái)監(jiān)控有幾種方案,比如自己寫,利用的獲取信息,暴露接口給采集使 一.概述 Dockbix意為docker+zabbix,即使用zabbix來(lái)監(jiān)控docker容器的插件或者模塊,既然有專業(yè)的cadvisor、pr...

    sunnyxd 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<