Docker精华问答 | Consul是什么?
在計算機技術日新月異的今天, Docker 在國內發展的如火如荼。特別是在一線互聯網公司 Docker 的使用是十分普遍的,甚至成為了一些企業面試的加分項,那么今天我們繼續關于Docker 的精華問答。
1
Q:Consul是什么?
A:Consul是一個分布式、高可用的系統,是一個為了解決在生產環境中服務注冊,服務發現,服務配置的一個工具,它有多個組件,提供如下幾個關鍵功能:
服務發現:Consul的某些客戶端可以提供一個服務,例如api或者mysql,其它客戶端可以使用Consul去發現這個服務的提供者。使用DNS或者HTTP,應用可以很容易的找到他們所依賴的服務。
健康檢查:Consul客戶端可以提供一些健康檢查,這些健康檢查可以關聯到一個指定的服務(服務是否返回200 OK),也可以關聯到本地節點(內存使用率是否在90%以下)。這些信息可以被一個操作員用來監控集群的健康狀態,被服務發現組件路由時用來遠離不健康的主機。
鍵值存儲:應用可以使用Consul提供的分層鍵值存儲用于一些目的,包括動態配置、特征標記、協作、leader選舉等等。通過一個簡單的HTTP API可以很容易的使用這個組件。
多數據中心:Consul對多數據中心有非常好的支持,這意味著Consul用戶不必擔心由于創建更多抽象層而產生的多個區域。
2
Q:為什么要用它?
A:現在企業應用都向微服務化方向發展,當把我們的系統功能拆分成一個一個的微服務后,存在以下問題
需要配置N個服務的網絡位置,加大配置的復雜性
服務的網絡位置變化,都需要改變每個調用者的配置
集群的情況下,難以做負載(反向代理的方式除外)
3
Q:Docker構架
A:Docker使用C/S架構,Client 通過接口與Server進程通信實現容器的構建,運行和發布。client和server可以運行在同一臺集群,也可以通過跨主機實現遠程通信。
4
Q:Docker vs VM
A:VM是一個運行在宿主機之上的完整的操作系統,VM運行自身操作系統會占用較多的CPU、內存、硬盤資源。Docker不同于VM,只包含應用程序以及依賴庫,基于libcontainer運行在宿主機上,并處于一個隔離的環境中,這使得Docker更加輕量高效,啟動容器只需幾秒鐘之內完成。由于Docker輕量、資源占用少,使得Docker可以輕易的應用到構建標準化的應用中。但Docker目前還不夠完善,比如隔離效果不如VM,共享宿主機操作系統的一些基礎庫等;網絡配置功能相對簡單,主要以橋接方式為主;查看日志也不夠方便靈活。
Docker 在容器的基礎上,進行了進一步的封裝,從文件系統、網絡互聯到進程隔離等等,極大的簡化了容器的創建和維護。使得 Docker 技術比虛擬機技術更為輕便、快捷。
作為一種新興的虛擬化方式,Docker 跟傳統的虛擬化方式相比具有眾多的優勢。Docker 容器的啟動可以在秒級實現,這相比傳統的虛擬機方式要快得多;Docker 對系統資源的利用率很高,一臺主機上可以同時運行數千個 Docker 容器。
5
Q:多個 Docker 容器之間共享數據怎么辦??
A:如果是同一個宿主,那么可以綁定同一個數據卷,當然,程序上要處理好并發問題。如果是不同宿主,則可以使用分布式數據卷驅動,讓分布在不同宿主的容器都可以訪問到的分布式存儲的位置。如S3之類。
小伙伴們沖鴨,后臺留言區等著你!
關于Docker?,今天你學到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家搜集更多問題,投稿給我們!風里雨里留言區里等你~
福利
1、掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
2、公眾號后臺回復:白皮書,獲取IDC最新數據白皮書整理資料!
推薦閱讀:
10 種最流行的 Web 挖掘工具 | 程序員硬核評測
《復聯4》| 生活需要漫威這塊糖
如何向 6 歲的孩子解釋編程?這個解釋厲害了
“踏實工作 7 年,辭職時老板頭都不抬”
60倍回報! AI工程師用OpenAI創建了一個比特幣自動交易工具! 這里是詳細做法 | 技術頭條
賭5毛錢,你解不出這道Google面試題
真香,朕在看了!
總結
以上是生活随笔為你收集整理的Docker精华问答 | Consul是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快报:Python 被爆重大“黑料”!程
- 下一篇: Boost:递归容器的测试程序