日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于docker 如何部署surging分布式微服务引擎

發布時間:2023/12/4 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于docker 如何部署surging分布式微服务引擎 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、前言

????? 轉眼間surging 開源已經有1年了,經過1年的打磨,surging已從最初在window 部署的分布式微服務框架,到現在的可以在docker部署利用rancher 進行服務編排的分布式微服務引擎,再把業務進行剝離, 通過配置路徑就能驅動加載業務模塊,這樣的細粒度設計,能更加靈活從業務中針對于對象加以細分,能更加靈活的拆分聚合服務。而這篇文章我們來談談基于docker 如何部署

surging源碼下載:?https://github.com/fanliang11/surging

2、概述

容器,就是用來存放鏡像的器皿,而鏡像是構建成的一個輕量的、獨立的、可執行的包,包括了執行它所需要的所有東西:代碼、運行環境、系統工具、系統庫、設置。

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

?

?

那么Docker又是什么呢?

  • Docker是基于Go語言開發并開源的容器引擎

  • Docker將應用軟件運行時所需的一切都打包成互相隔離的容器

  • Docker可以自動執行并配置開發/線上環境,快速構建,測試和運行復雜的多容器應用程序

  • 對擁有數千個節點或容器的應用程序,Docker也能快速的擴展和調配

  • 可以運行在主流的Linux系統,Mac以及Windows上,并且保證無論軟件在哪里部署,都能正常運行并得到相同的結果

相關概念介紹

  • Image鏡像和Container容器:你可以把兩者理解為類和實例對象,或者是ISO系統鏡像和虛擬機的關系。不同的Image所包含的軟件或者環境是不同的,但是你可以使用Dockerfile(docker特有語法規則所創建的文件)進行管理。而Container則是以Image作為模板,可以獨立運行的微型系統,一個Image可以創建出來多個Container容器的實例

  • Registry:Docker Hub鏡像倉庫,為每個人提供龐大的鏡像資源進行拉取和使用

  • Dockerfile:是一個將鏡像命令組合在一起的文件,用于Image的自動構建

ASP.NET Core應用開發

作者:[美] James Chambers,David Paquette,Simon Timms著 杜偉 涂曙光 柴曉偉 譯

當當 廣告 購買

?3、環境搭建

系統環境

宿主機:Windows 10 專業版

Linux服務器: CentOS 3.10?

1.安裝Docker

?

Docker 要求 CentOS 系統的內核版本高于 3.10 ,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 。

通過 uname?-r?命令查看你當前的內核版本

?

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

?

?# yum install docker-engine 安裝docker包

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

?

?啟動 Docker

1systemctl? start? docker

?查看docker信息,如下圖

1systemctl? status? docker

?

?

測試運行 hello-world

1#docker run hello-world

?2.安裝rancher

下載鏡像

?

1docker pull rancher/server

啟動rancher

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

?安裝成功后,通過http://ip:8080訪問,如下圖所示

?3.安裝rabbitmq

?下載鏡像

1#docker pull rabbitmq:management

啟動rabbitmq

1#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訪問,如下圖所示

4.安裝Consul

下載鏡像

?

1#docker pull docker.io/consul:latest

?

?創建 Consul 配置

1#vim /opt/platform/consul/server.json

?

123456789101112{????"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}

?配置說明

官方在啟動容器的時候是將一部分配置作為?docker run?的參數,而我是把參數寫到了配置文件里。

  • datacenter:數據中心名稱(庫名)

  • data_dir:數據存儲目錄

  • server:運行在server模式

  • ui:使用UI界面

  • bind_addr:內部集群通信綁定的地址。默認是0.0.0.0,如果有多塊網卡,需要指定,否則啟動報錯

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

  • retry_join:重新加入集群

  • retry_interval:重試時間

  • rejoin_after_leave:在離開集群之后才重試加入

  • skip_leave_on_interrupt:在啟動后,是否 Ctrl+C 優雅退出,我們是容器模式,所以不用管,直接 true 就好了。

啟動 consul-server


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訪問,如下圖所示

?

5. 安裝dotnetcore 2.1 runtime

下載鏡像

#sudo docker pull microsoft/dotnet:2.1-runtime

啟動?

?

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

?三、部署程序

1. 部署surging引擎,無需引用任何業務模塊,新建Dockerfile文件

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

發布程序

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

?使用Dockerfile創建鏡像

1#docker build -t surgingserver .

?啟動


#docker run --name surgingserver --env Mapping_ip=192.168.249.162 --env Mapping_Port=198 --env RootPath=/home/fanly --envRegister_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

?

?配置說明

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

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

  • RootPath:業務模塊存儲的根路徑(環境變量)

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

  • EventBusConnection:eventbus 地址(環境變量)

  • Surging_Server_IP:容器內部IP(環境變量)

啟動后在rancher如下圖所示

因為方便,把宿主機的目錄進行了掛載,microsurging 為分布式微服務引擎,Modules 為業務模塊目錄,surgingapi為網關

2. 部署surging網關,新建Dockerfile文件

?

1234FROM microsoft/dotnet:2.1-runtimeWORKDIR /appCOPY . .ENTRYPOINT ["dotnet",?"Surging.ApiGateway.dll"]

?

?發布程序

?

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

?

?使用Dockerfile創建鏡像

?

1docker build -t surgingapi .

?

??啟動

1#docker run --name surgingapi -it -p 729:729 --env Register_Conn=192.168.249.162:8500 surgingapi

?啟動后在rancher如下圖所示

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

?

?

然后可以通過postman 來測試網關,如下圖

四、總結

通過1年的開發,surging 也趨于完善,性能非常不錯,平均訪問在0.12ms 左右,而且6月30日會在上海微軟研發中心和大家見面講解下surging 微服務引擎,也請大家多多關注

原文地址: https://www.cnblogs.com/fanliang11/p/9191793.html


.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

總結

以上是生活随笔為你收集整理的基于docker 如何部署surging分布式微服务引擎的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。