在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、前言 转眼间surging 开源已经有1年了,经过1年的打磨,surging已从最初在window 部署的分布式微服务框架,到现在的可以在docker部署利用rancher 进行服务编排的分布式微服务引擎,再把业务进行剥离, 通过配置路径就能驱动加载业务模块,这样的细粒度设计,能更加灵活从业务中针对于对象加以细分,能更加灵活的拆分聚合服务。而这篇文章我们来谈谈基于docker 如何部署 2、概述 容器,就是用来存放镜像的器皿,而镜像是构建成的一个轻量的、独立的、可执行的包,包括了执行它所需要的所有东西:代码、运行环境、系统工具、系统库、设置。 程序被构建成镜像放到容器中,那么它所依赖的下层环境就不再重要了。它可以在任何地方运行,甚至在混合云环境下也可以。所以为何容器能流行起来, 而容器技术兴起让Docke也渐渐的映入大家的眼帘, 那么Docker又是什么呢?
相关概念介绍 Image镜像和Container容器:你可以把两者理解为类和实例对象,或者是ISO系统镜像和虚拟机的关系。不同的Image所包含的软件或者环境是不同的,但是你可以使用Dockerfile(docker特有语法规则所创建的文件)进行管理。而Container则是以Image作为模板,可以独立运行的微型系统,一个Image可以创建出来多个Container容器的实例 Registry:Docker Hub镜像仓库,为每个人提供庞大的镜像资源进行拉取和使用 Dockerfile:是一个将镜像命令组合在一起的文件,用于Image的自动构建 3、环境搭建 系统环境 宿主机:Windows 10 专业版 Linux服务器: CentOS 3.10 1.安装Docker Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。 通过 uname -r 命令查看你当前的内核版本 [root@runoob ~]# uname -r 3.10.0-862.E17.X86_64 # yum install docker-engine 安装docker包 安装成功后,使用docker version命令查看是否安装成功,安装成功后------如下图 启动 Docker systemctl start docker 查看docker信息,如下图 systemctl status docker 测试运行 hello-world #docker run hello-world 2.安装rancher 下载镜像 docker pull rancher/server 启动 rancher docker run -d --restart=always -p 8080:8080 rancher/server 安装成功后,通过http://ip:8080访问,如下图所示 3.安装rabbitmq 下载镜像 docker run -d --restart=always -p 8080:8080 rancher/server
复制代码 代码如下: #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 下载镜像 #docker pull docker.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 } 配置说明 官方在启动容器的时候是将一部分配置作为
启动 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 启动 #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"] 发布程序 dotnet publish -r centos.7-x64 -c release 使用Dockerfile创建镜像 #docker build -t surgingserver . 启动 #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 配置说明
启动后在rancher如下图所示 因为方便,把宿主机的目录进行了挂载,microsurging 为分布式微服务引擎,Modules 为业务模块目录,surgingapi为网关 2. 部署surging网关, 新建Dockerfile文件 FROM microsoft/dotnet:2.1-runtime WORKDIR /app COPY . . ENTRYPOINT ["dotnet", "Surging.ApiGateway.dll"] 发布程序 dotnet publish -r centos.7-x64 -c release 使用Dockerfile创建镜像 docker build -t surgingapi . 启动 复制代码 代码如下: #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 左右 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持极客世界。 |
2022-08-17
2022-11-06
2022-07-18
2022-08-17
2022-07-29
请发表评论