關(guān)于我們

質量為(wèi)本、客戶為(wèi)根、勇于拼搏、務(wù)實創新(xīn)

< 返回新(xīn)聞公共列表

基于docker部署surging分(fēn)布式微服務(wù)引擎的案例

發布時(shí)間(jiān):2021-04-01 16:41:27

微子(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部署surging分(fēn)布式微服務(wù)引擎的案例

那麽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à)所示

基于docker部署surging分(fēn)布式微服務(wù)引擎的案例

開始碼頭工人(rén)

查看碼頭工人(rén)信息,如(rú)下(xià)圖所示

systemctlstatusdocker基于docker部署surging分(fēn)布式微服務(wù)引擎的案例

hello-world測試運行

#2.安裝rancher世界

下(xià)載圖像

文件管理(lǐ)器(qì)/服務(wù)器(qì)啓動文件管理(lǐ)器(qì)

dockrrun-d-重啓

t=always-p8080:8080rancher/server

安裝成功後,通過http://ip:8080訪問,如(rú)下(xià)圖所示

基于docker部署surging分(fēn)布式微服務(wù)引擎的案例

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à)圖所示

基于docker部署surging分(fēn)布式微服務(wù)引擎的案例

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)配置文件裏。

  1. datacenter:數據中心名稱(庫名)

  2. data_dir:數據存儲目錄

  3. server:運行在server模式

  4. ui:使用UI界面

  5. bind_addr:内部集群通信綁定的地址。默認是 0.0.0.0 ,如(rú)果有多塊網卡,需要指定,否則啓動報(bào)錯

  6. client_addr:客戶端接口綁定的地址,默認是 127.0.0.1 ;

  7. retry_join:重新(xīn)加入集群

  8. retry_interval:重試時(shí)間(jiān)

  9. rejoin_after_leave:在離開集群之後才重試加入

  10. 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à)圖所示

基于docker部署surging分(fēn)布式微服務(wù)引擎的案例

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ō)明

  1. Mapping_ip:映射的外部IP(環境變量)

  2. Mapping_port :映射的外部端口 (環境變量)

  3. RootPath:業務(wù)模塊存儲的根路(lù)徑 (環境變量)

  4. Register_Conn:注冊中心地址 (環境變量)

  5. EventBusConnection:eventbus 地址 (環境變量)

  6. Surging_Server_IP:容器(qì)内部IP (環境變量)

啓動後在rancher如(rú)下(xià)圖所示

基于docker部署surging分(fēn)布式微服務(wù)引擎的案例

因為(wèi)方便,把宿主機的目錄進行了(le)挂載,microsurging 為(wèi)分(fēn)布式微服務(wù)引擎,Modules 為(wèi)業務(wù)模塊目錄,surgingapi為(wèi)網關(guān)

基于docker部署surging分(fēn)布式微服務(wù)引擎的案例

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à)圖所示

基于docker部署surging分(fēn)布式微服務(wù)引擎的案例

可以通過http://ip:729進行訪問

基于docker部署surging分(fēn)布式微服務(wù)引擎的案例

基于docker部署surging分(fēn)布式微服務(wù)引擎的案例

然後可以通過postman 來(lái)測試網關(guān),如(rú)下(xià)圖

基于docker部署surging分(fēn)布式微服務(wù)引擎的案例

以上(shàng)是“基于docker部署surging分(fēn)布式微服務(wù)引擎的案例”這(zhè)篇文章的所有内容,感謝各位的閱讀!相信大家都有了(le)一(yī)定的了(le)解,希望分(fēn)享的内容對大家有所幫助,如(rú)果還想學習更多知識,歡迎關(guān)注億速雲行業資訊頻道!


/template/Home/Zkeys/PC/Static