最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解基于docker 如何部署surging分布式微服務(wù)引擎

 更新時(shí)間:2018年06月18日 11:04:37   作者:fanly11  
這篇文章主要介紹了詳解基于docker 如何部署surging分布式微服務(wù)引擎,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

1、前言

轉(zhuǎn)眼間surging 開(kāi)源已經(jīng)有1年了,經(jīng)過(guò)1年的打磨,surging已從最初在window 部署的分布式微服務(wù)框架,到現(xiàn)在的可以在docker部署利用rancher 進(jìn)行服務(wù)編排的分布式微服務(wù)引擎,再把業(yè)務(wù)進(jìn)行剝離, 通過(guò)配置路徑就能驅(qū)動(dòng)加載業(yè)務(wù)模塊,這樣的細(xì)粒度設(shè)計(jì),能更加靈活從業(yè)務(wù)中針對(duì)于對(duì)象加以細(xì)分,能更加靈活的拆分聚合服務(wù)。而這篇文章我們來(lái)談?wù)劵赿ocker 如何部署

surging源碼下載

2、概述

容器,就是用來(lái)存放鏡像的器皿,而鏡像是構(gòu)建成的一個(gè)輕量的、獨(dú)立的、可執(zhí)行的包,包括了執(zhí)行它所需要的所有東西:代碼、運(yùn)行環(huán)境、系統(tǒng)工具、系統(tǒng)庫(kù)、設(shè)置。

程序被構(gòu)建成鏡像放到容器中,那么它所依賴(lài)的下層環(huán)境就不再重要了。它可以在任何地方運(yùn)行,甚至在混合云環(huán)境下也可以。所以為何容器能流行起來(lái), 而容器技術(shù)興起讓Docke也漸漸的映入大家的眼簾,

那么Docker又是什么呢?

  1. Docker是基于Go語(yǔ)言開(kāi)發(fā)并開(kāi)源的容器引擎
  2. Docker將應(yīng)用軟件運(yùn)行時(shí)所需的一切都打包成互相隔離的容器
  3. Docker可以自動(dòng)執(zhí)行并配置開(kāi)發(fā)/線上環(huán)境,快速構(gòu)建,測(cè)試和運(yùn)行復(fù)雜的多容器應(yīng)用程序
  4. 對(duì)擁有數(shù)千個(gè)節(jié)點(diǎn)或容器的應(yīng)用程序,Docker也能快速的擴(kuò)展和調(diào)配
  5. 可以運(yùn)行在主流的Linux系統(tǒng),Mac以及Windows上,并且保證無(wú)論軟件在哪里部署,都能正常運(yùn)行并得到相同的結(jié)果

相關(guān)概念介紹

Image鏡像和Container容器:你可以把兩者理解為類(lèi)和實(shí)例對(duì)象,或者是ISO系統(tǒng)鏡像和虛擬機(jī)的關(guān)系。不同的Image所包含的軟件或者環(huán)境是不同的,但是你可以使用Dockerfile(docker特有語(yǔ)法規(guī)則所創(chuàng)建的文件)進(jìn)行管理。而Container則是以Image作為模板,可以獨(dú)立運(yùn)行的微型系統(tǒng),一個(gè)Image可以創(chuàng)建出來(lái)多個(gè)Container容器的實(shí)例

Registry:Docker Hub鏡像倉(cāng)庫(kù),為每個(gè)人提供龐大的鏡像資源進(jìn)行拉取和使用

Dockerfile:是一個(gè)將鏡像命令組合在一起的文件,用于Image的自動(dòng)構(gòu)建

3、環(huán)境搭建

系統(tǒng)環(huán)境

宿主機(jī):Windows 10 專(zhuān)業(yè)版

Linux服務(wù)器: CentOS 3.10

1.安裝Docker

Docker 要求 CentOS 系統(tǒng)的內(nèi)核版本高于 3.10 ,查看本頁(yè)面的前提條件來(lái)驗(yàn)證你的CentOS 版本是否支持 Docker 。

通過(guò) uname -r 命令查看你當(dāng)前的內(nèi)核版本

[root@runoob ~]# uname -r 3.10.0-862.E17.X86_64

# yum install docker-engine 安裝docker包

安裝成功后,使用docker version命令查看是否安裝成功,安裝成功后------如下圖

啟動(dòng) Docker

systemctl start docker

查看docker信息,如下圖

systemctl status docker

測(cè)試運(yùn)行 hello-world

#docker run hello-world

2.安裝rancher

下載鏡像

docker pull rancher/server

啟動(dòng) rancher

docker run -d --restart=always -p 8080:8080 rancher/server

安裝成功后,通過(guò)http://ip:8080訪問(wèn),如下圖所示

3.安裝rabbitmq

 下載鏡像

docker run -d --restart=always -p 8080:8080 rancher/server

 

復(fù)制代碼 代碼如下:

 #docker run -d --name rabbitmq --publish 5672:5672 --publish 4369:4369 --publish 25672:25672 --publish 15671:15671 --publish 15672:15672 \rabbitmq:management
 

安裝成功后,通過(guò)http://ip:15672訪問(wèn),如下圖所示

4.安裝Consul

下載鏡像

#docker pull docker.io/consul:latest

創(chuàng)建 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ō)明

官方在啟動(dòng)容器的時(shí)候是將一部分配置作為 docker run 的參數(shù),而我是把參數(shù)寫(xiě)到了配置文件里。

  1. datacenter:數(shù)據(jù)中心名稱(chēng)(庫(kù)名)
  2. data_dir:數(shù)據(jù)存儲(chǔ)目錄
  3. server:運(yùn)行在server模式
  4. ui:使用UI界面
  5. bind_addr:內(nèi)部集群通信綁定的地址。默認(rèn)是 0.0.0.0 ,如果有多塊網(wǎng)卡,需要指定,否則啟動(dòng)報(bào)錯(cuò)
  6. client_addr:客戶(hù)端接口綁定的地址,默認(rèn)是 127.0.0.1 ;
  7. retry_join:重新加入集群
  8. retry_interval:重試時(shí)間
  9. rejoin_after_leave:在離開(kāi)集群之后才重試加入
  10. skip_leave_on_interrupt:在啟動(dòng)后,是否 Ctrl+C 優(yōu)雅退出,我們是容器模式,所以不用管,直接 true 就好了。

啟動(dòng) consul-server

復(fù)制代碼 代碼如下:
docker run -d --net=host --name consul -v /opt/platform/consul/config:/consul/config -v /opt/platform/consul/data:/consul/data consul agent

安裝成功后,通過(guò)http://ip:8500訪問(wèn),如下圖所示

5. 安裝dotnetcore 2.1 runtime

下載鏡像

#sudo docker pull microsoft/dotnet:2.1-runtime

啟動(dòng)  

#sudo docker run -it microsoft/dotnet:2.1-runtime

三、部署程序

 1. 部署surging引擎,無(wú)需引用任何業(yè)務(wù)模塊,新建Dockerfile文件

FROM microsoft/dotnet:2.1-runtime
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "Surging.Services.Server.dll"]

發(fā)布程序

dotnet publish -r centos.7-x64 -c release

使用Dockerfile創(chuàng)建鏡像

#docker build -t surgingserver .

啟動(dòng)

#docker run --name surgingserver --env Mapping_ip=192.168.249.162 --env Mapping_Port=198 --env RootPath=/home/fanly --env 
Register_Conn=192.168.249.162:8500 --env EventBusConnection=172.17.0.4 --env Surging_Server_IP=0.0.0.0 -v /home/fanly:/home/fanly -it -p 198:198 surgingserver

配置說(shuō)明

  1. Mapping_ip:映射的外部IP(環(huán)境變量)
  2. Mapping_port :映射的外部端口 (環(huán)境變量)
  3. RootPath:業(yè)務(wù)模塊存儲(chǔ)的根路徑 (環(huán)境變量)
  4. Register_Conn:注冊(cè)中心地址 (環(huán)境變量)
  5. EventBusConnection:eventbus 地址 (環(huán)境變量)
  6. Surging_Server_IP:容器內(nèi)部IP (環(huán)境變量)

啟動(dòng)后在rancher如下圖所示

因?yàn)榉奖悖阉拗鳈C(jī)的目錄進(jìn)行了掛載,microsurging 為分布式微服務(wù)引擎,Modules 為業(yè)務(wù)模塊目錄,surgingapi為網(wǎng)關(guān)

2. 部署surging網(wǎng)關(guān), 新建Dockerfile文件

FROM microsoft/dotnet:2.1-runtime
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "Surging.ApiGateway.dll"]

發(fā)布程序

dotnet publish -r centos.7-x64 -c release

使用Dockerfile創(chuàng)建鏡像

docker build -t surgingapi .

啟動(dòng)

復(fù)制代碼 代碼如下:
#docker run --name surgingapi -it -p 729:729 --env Register_Conn=192.168.249.162:8500 surgingapi

啟動(dòng)后在rancher如下圖所示

可以通過(guò)http://ip:729進(jìn)行訪問(wèn)

然后可以通過(guò)postman 來(lái)測(cè)試網(wǎng)關(guān),如下圖

四、總結(jié)

通過(guò)1年的開(kāi)發(fā),surging 也趨于完善,性能非常不錯(cuò),平均訪問(wèn)在0.12ms 左右

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • docker-compose啟動(dòng)redis多機(jī)集群的實(shí)現(xiàn)(6臺(tái)服務(wù)器3主3從)

    docker-compose啟動(dòng)redis多機(jī)集群的實(shí)現(xiàn)(6臺(tái)服務(wù)器3主3從)

    本文主要介紹了docker-compose啟動(dòng)redis多機(jī)集群的實(shí)現(xiàn)(6臺(tái)服務(wù)器3主3從),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • docker容器通過(guò)ping直接運(yùn)行獲取公網(wǎng)IP操作

    docker容器通過(guò)ping直接運(yùn)行獲取公網(wǎng)IP操作

    這篇文章主要介紹了docker容器通過(guò)ping直接運(yùn)行獲取公網(wǎng)IP操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Docker部署Node.js的實(shí)現(xiàn)示例

    Docker部署Node.js的實(shí)現(xiàn)示例

    本文介紹了在服務(wù)器上使用Docker部署Node.js項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • 在docker-compose.yml文件中配置容器的環(huán)境變量方式

    在docker-compose.yml文件中配置容器的環(huán)境變量方式

    本文介紹了在docker-compose.yml文件中設(shè)置和使用環(huán)境變量的方法,包括直接設(shè)置環(huán)境變量、從文件讀取環(huán)境變量以及使用多個(gè)環(huán)境文件進(jìn)行不同部署環(huán)境的配置
    2024-11-11
  • docker安裝Jenkins執(zhí)行構(gòu)建jar運(yùn)行方式

    docker安裝Jenkins執(zhí)行構(gòu)建jar運(yùn)行方式

    這篇文章主要介紹了docker安裝Jenkins執(zhí)行構(gòu)建jar運(yùn)行方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Docker報(bào)錯(cuò):OCI?runtime?exec?failed:?exec?failed:?container_linux.go:380:?starting?container?process的解決方法

    Docker報(bào)錯(cuò):OCI?runtime?exec?failed:?exec?failed:?contain

    這篇文章主要給大家介紹了關(guān)于Docker報(bào)錯(cuò):OCI?runtime?exec?failed:?exec?failed:?container_linux.go:380:?starting?container?process的解決方法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • docker cmd 執(zhí)行多個(gè)帶參數(shù)命令

    docker cmd 執(zhí)行多個(gè)帶參數(shù)命令

    Docker提供了CMD指令來(lái)指定容器啟動(dòng)后要執(zhí)行的命令,本文主要介紹了docker cmd 執(zhí)行多個(gè)帶參數(shù)命令,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • docker基本使用方法入門(mén)示例

    docker基本使用方法入門(mén)示例

    這篇文章主要介紹了docker基本使用方法入門(mén)示例,包含docker命令查詢(xún)方法,查詢(xún)鏡像和下拉鏡像,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • Docker部署FastDFS的實(shí)現(xiàn)方法

    Docker部署FastDFS的實(shí)現(xiàn)方法

    這篇文章主要介紹了Docker部署FastDFS的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Docker使用Calico網(wǎng)絡(luò)模式配置及問(wèn)題處理方法

    Docker使用Calico網(wǎng)絡(luò)模式配置及問(wèn)題處理方法

    這篇文章主要介紹了Docker使用Calico網(wǎng)絡(luò)模式配置及問(wèn)題處理,設(shè)計(jì)思想是Calico不使用隧道或者NAT來(lái)實(shí)現(xiàn)轉(zhuǎn)發(fā),而是巧妙的把所有二三層流量轉(zhuǎn)換成三層流量,并通過(guò)host上路由配置完成跨host轉(zhuǎn)發(fā),需要的朋友可以參考下
    2022-11-11

最新評(píng)論

长顺县| 娄底市| 额济纳旗| 同江市| 镶黄旗| 米林县| 渭源县| 镶黄旗| 饶平县| 宁阳县| 武山县| 阳东县| 龙州县| 宜昌市| 惠东县| 永兴县| 乌恰县| 齐齐哈尔市| 鸡泽县| 招远市| 仪征市| 宿州市| 咸阳市| 邵阳市| 峡江县| 沛县| 平谷区| 花莲市| 砀山县| 济阳县| 葫芦岛市| 三都| 灯塔市| 公主岭市| 灯塔市| 高州市| 齐齐哈尔市| 泉州市| 百色市| 西和县| 白沙|