微子(zǐ)網絡與大家分(fēn)享了(le)部署基于docker的澎湃分(fēn)布式微服務(wù)引擎的案例。相信大部分(fēn)人(rén)還不是很了(le)解,所以分(fēn)享這(zhè)篇文章,供大家參考。希望你看完這(zhè)篇文章後收獲很大。我們一(yī)起來(lái)看看。
1、前言
一(yī)下(xià)子(zǐ),澎湃開源一(yī)年了(le)。經過一(yī)年的打磨,澎湃已經從最初部署在window的分(fēn)布式微服務(wù)框架,發展到部署在docker的分(fēn)布式微服務(wù)引擎,進行服務(wù)編排,然後剝離業務(wù),通過配置路(lù)徑驅動和加載業務(wù)模塊。這(zhè)種細粒度的設計可以更靈活地從業務(wù)中細分(fēn)對象,并分(fēn)割聚合的服務(wù)。基于docker 如(rú)何部署
2、概述
容器(qì)是存儲圖像的容器(qì),圖像是一(yī)個(gè)輕量級的、獨立的、可執行的包,包括執行它所需的所有東西(xī):代碼、運行環境、系統工具、系統庫和設置。
當一(yī)個(gè)程序被構建為(wèi)一(yī)個(gè)映像并放(fàng)在一(yī)個(gè)容器(qì)中時(shí),它所依賴的底層環境就(jiù)不再重要了(le)。它可以在任何地方運行,即使是在混合雲環境中。所以為(wèi)什(shén)麽集裝箱能(néng)流行起來(lái),集裝箱技術的興起讓Docke逐漸進入大家的視(shì)野,
那麽Docker是什(shén)麽?
Docker是基于Go語言和開源開發的容器(qì)引擎
Docker将應用程序運行所需的一(yī)切打包到獨立的容器(qì)中
Docker可以自動執行和配置開發/在線環境,并快(kuài)速構建、測試和運行複雜的多容器(qì)應用程序
Docker還可以快(kuài)速擴展和調配具有數千個(gè)節點或容器(qì)的應用程序
可以在主流Linux系統、Mac、Windows上(shàng)運行,保證無論軟件部署在哪裏都能(néng)正常運行,得到同樣的結果
相關(guān)概念介紹
映像映像和容器(qì)容器(qì):可以理(lǐ)解為(wèi)類和實例對象,或者ISO系統映像和虛拟機之間(jiān)的關(guān)系。不同的映像包含不同的軟件或環境,但(dàn)您可以使用dockerfile(docker由Docker的特殊語法規則創建)進行管理(lǐ)。另一(yī)方面,容器(qì)是一(yī)個(gè)可以以圖像為(wèi)模闆獨立運行的微系統。一(yī)個(gè)圖像可以創建多個(gè)容器(qì)實例。
注冊表:Dockerhub鏡像倉庫,為(wèi)大家提供了(le)巨大的鏡像資源來(lái)拉取和使用
它是一(yī)個(gè)結合了(le)鏡像命令的文件,用于自動圖像構建
3、環境搭建
系統環境
主機:Windows 10專業版
Linux服務(wù)器(qì):CentOS 3.10
1.安裝Docker
Docker要求CentOS系統的内核版本高于3.10。檢查此頁面上(shàng)的先決條件,以驗證您的CentOS版本是否支持Docker。
通過-r命令檢查你當前的内核版本
[root @ runoob ~]# uname-r 3 . 10 . 0-862 . e 17 . x86 _ 64 # yum install docker-engine安裝docker包
安裝成功後,使用docker version命令檢查安裝是否成功。安裝成功後,如(rú)下(xià)所示
開始碼頭工人(rén)
查看碼頭工人(rén)信息,如(rú)下(xià)圖所示
systemctlstatusdocker
hello-world測試運行
#2.安裝rancher世界
下(xià)載圖像
文件管理(lǐ)器(qì)/服務(wù)器(qì)啓動文件管理(lǐ)器(qì)
dockrrun-d-重啓
t=always-p8080:8080rancher/server安裝成功後,通過http://ip:8080訪問,如(rú)下(xià)圖所示
3.安裝rabbitmq
下(xià)載鏡像
dockerrun-d--restart=always-p8080:8080rancher/server
複制代碼 代碼如(rú)下(xià):
#docker run -d --name rabbitmq --publish 5672:5672 --publish 4369:4369 --publish 25672:25672 --publish 15671:15671 --publish 15672:15672 \rabbitmq:management
安裝成功後,通過http://ip:15672訪問,如(rú)下(xià)圖所示
4.安裝Consul
下(xià)載鏡像
#dockerpulldocker.io/consul:latest
創建 Consul 配置
#vim/opt/platform/consul/server.json
{ "datacenter":"quark-consul", "data_dir":"/consul/data", "server":true, "ui":true, "bind_addr":"192.168.249.162", "client_addr":"192.168.249.162", "bootstrap_expect":1, "retry_interval":"10s", "rejoin_after_leave":false, "skip_leave_on_interrupt":true }
配置說(shuō)明
官方在啓動容器(qì)的時(shí)候是将一(yī)部分(fēn)配置作(zuò)為(wèi) docker run
的參數,而我是把參數寫到了(le)配置文件裏。
datacenter:數據中心名稱(庫名)
data_dir:數據存儲目錄
server:運行在server模式
ui:使用UI界面
bind_addr:内部集群通信綁定的地址。默認是 0.0.0.0 ,如(rú)果有多塊網卡,需要指定,否則啓動報(bào)錯
client_addr:客戶端接口綁定的地址,默認是 127.0.0.1 ;
retry_join:重新(xīn)加入集群
retry_interval:重試時(shí)間(jiān)
rejoin_after_leave:在離開集群之後才重試加入
skip_leave_on_interrupt:在啓動後,是否 Ctrl+C 優雅退出,我們是容器(qì)模式,所以不用管,直接 true 就(jiù)好(hǎo)(hǎo)了(le)。
啓動 consul-server
複制代碼 代碼如(rú)下(xià):
docker run -d --net=host --name consul -v /opt/platform/consul/config:/consul/config -v /opt/platform/consul/data:/consul/data consul agent
安裝成功後,通過http://ip:8500訪問,如(rú)下(xià)圖所示
5. 安裝dotnetcore 2.1 runtime
下(xià)載鏡像
#sudodockerpullmicrosoft/dotnet:2.1-runtime
啓動
#sudodockerrun-itmicrosoft/dotnet:2.1-runtime
三、部署程序
1. 部署surging引擎,無需引用任何業務(wù)模塊,新(xīn)建Dockerfile文件
FROMmicrosoft/dotnet:2.1-runtime WORKDIR/app COPY.. ENTRYPOINT["dotnet","Surging.Services.Server.dll"]
發布程序
dotnetpublish-rcentos.7-x64-crelease
使用Dockerfile創建鏡像
#dockerbuild-tsurgingserver.
啓動
#dockerrun--namesurgingserver--envMapping_ip=192.168.249.162--envMapping_Port=198--envRootPath=/home/fanly--env Register_Conn=192.168.249.162:8500--envEventBusConnection=172.17.0.4--envSurging_Server_IP=0.0.0.0-v/home/fanly:/home/fanly-it-p198:198surgingserver
配置說(shuō)明
Mapping_ip:映射的外部IP(環境變量)
Mapping_port :映射的外部端口 (環境變量)
RootPath:業務(wù)模塊存儲的根路(lù)徑 (環境變量)
Register_Conn:注冊中心地址 (環境變量)
EventBusConnection:eventbus 地址 (環境變量)
Surging_Server_IP:容器(qì)内部IP (環境變量)
啓動後在rancher如(rú)下(xià)圖所示
因為(wèi)方便,把宿主機的目錄進行了(le)挂載,microsurging 為(wèi)分(fēn)布式微服務(wù)引擎,Modules 為(wèi)業務(wù)模塊目錄,surgingapi為(wèi)網關(guān)
2. 部署surging網關(guān), 新(xīn)建Dockerfile文件
FROMmicrosoft/dotnet:2.1-runtime WORKDIR/app COPY.. ENTRYPOINT["dotnet","Surging.ApiGateway.dll"]
發布程序
dotnetpublish-rcentos.7-x64-crelease
使用Dockerfile創建鏡像
dockerbuild-tsurgingapi.
啓動
複制代碼 代碼如(rú)下(xià):
#docker run --name surgingapi -it -p 729:729 --env Register_Conn=192.168.249.162:8500 surgingapi
啓動後在rancher如(rú)下(xià)圖所示
可以通過http://ip:729進行訪問
然後可以通過postman 來(lái)測試網關(guān),如(rú)下(xià)圖
以上(shàng)是“基于docker部署surging分(fēn)布式微服務(wù)引擎的案例”這(zhè)篇文章的所有内容,感謝各位的閱讀!相信大家都有了(le)一(yī)定的了(le)解,希望分(fēn)享的内容對大家有所幫助,如(rú)果還想學習更多知識,歡迎關(guān)注億速雲行業資訊頻道!
Copyright © 2013-2016 WWW.VZIDC.COM . All Rights Reserved. 微子(zǐ)網絡 版權所有 江蘇微子(zǐ)網絡科技有限公司