基于docker部署surging分布式微服务引擎的案例

2021-02-23 07:36:47 182 0
tangjin

小编给大家分享一下基于docker部署surging分布式微服务引擎的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1、前言

转眼间surging 开源已经有1年了,经过1年的打磨,surging已从最初在window 部署的分布式微服务框架,到现在的可以在docker部署利用rancher 进行服务编排的分布式微服务引擎,再把业务进行剥离, 通过配置路径就能驱动加载业务模块,这样的细粒度设计,能更加灵活从业务中针对于对象加以细分,能更加灵活的拆分聚合服务。基于docker 如何部署

2、概述

容器,就是用来存放镜像的器皿,而镜像是构建成的一个轻量的、独立的、可执行的包,包括了执行它所需要的所有东西:代码、运行环境、系统工具、系统库、设置。

程序被构建成镜像放到容器中,那么它所依赖的下层环境就不再重要了。它可以在任何地方运行,甚至在混合云环境下也可以。所以为何容器能流行起来, 而容器技术兴起让Docke也渐渐的映入大家的眼帘,

基于docker部署surging分布式微服务引擎的案例

那么Docker又是什么呢?

  1. Docker是基于Go语言开发并开源的容器引擎

  2. Docker将应用软件运行时所需的一切都打包成互相隔离的容器

  3. Docker可以自动执行并配置开发/线上环境,快速构建,测试和运行复杂的多容器应用程序

  4. 对拥有数千个节点或容器的应用程序,Docker也能快速的扩展和调配

  5. 可以运行在主流的Linux系统,Mac以及Windows上,并且保证无论软件在哪里部署,都能正常运行并得到相同的结果

相关概念介绍

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-r3.10.0-862.E17.X86_64

# yum install docker-engine 安装docker包

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

基于docker部署surging分布式微服务引擎的案例

启动 Docker

systemctlstartdocker

查看docker信息,如下图

systemctlstatusdocker

基于docker部署surging分布式微服务引擎的案例

测试运行 hello-world

#dockerrunhello-world

2.安装rancher

下载镜像

dockerpullrancher/server

启动 rancher

dockerrun-d--restart=always-p8080:8080rancher/server

安装成功后,通过http://ip:8080访问,如下图所示

基于docker部署surging分布式微服务引擎的案例

3.安装rabbitmq

下载镜像

dockerrun-d--restart=always-p8080:8080rancher/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访问,如下图所示

基于docker部署surging分布式微服务引擎的案例

4.安装Consul

下载镜像

#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
}

配置说明

官方在启动容器的时候是将一部分配置作为 docker run 的参数,而我是把参数写到了配置文件里。

  1. datacenter:数据中心名称(库名)

  2. data_dir:数据存储目录

  3. server:运行在server模式

  4. ui:使用UI界面

  5. bind_addr:内部集群通信绑定的地址。默认是 0.0.0.0 ,如果有多块网卡,需要指定,否则启动报错

  6. client_addr:客户端接口绑定的地址,默认是 127.0.0.1 ;

  7. retry_join:重新加入集群

  8. retry_interval:重试时间

  9. rejoin_after_leave:在离开集群之后才重试加入

  10. 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访问,如下图所示

基于docker部署surging分布式微服务引擎的案例

5. 安装dotnetcore 2.1 runtime

下载镜像

#sudodockerpullmicrosoft/dotnet:2.1-runtime

启动

#sudodockerrun-itmicrosoft/dotnet:2.1-runtime

三、部署程序

1. 部署surging引擎,无需引用任何业务模块,新建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

配置说明

  1. Mapping_ip:映射的外部IP(环境变量)

  2. Mapping_port :映射的外部端口 (环境变量)

  3. RootPath:业务模块存储的根路径 (环境变量)

  4. Register_Conn:注册中心地址 (环境变量)

  5. EventBusConnection:eventbus 地址 (环境变量)

  6. Surging_Server_IP:容器内部IP (环境变量)

启动后在rancher如下图所示

基于docker部署surging分布式微服务引擎的案例

因为方便,把宿主机的目录进行了挂载,microsurging 为分布式微服务引擎,Modules 为业务模块目录,surgingapi为网关

基于docker部署surging分布式微服务引擎的案例

2. 部署surging网关, 新建Dockerfile文件

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

发布程序

dotnetpublish-rcentos.7-x64-crelease

使用Dockerfile创建镜像

dockerbuild-tsurgingapi.

启动

复制代码 代码如下:

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

启动后在rancher如下图所示

基于docker部署surging分布式微服务引擎的案例

可以通过http://ip:729进行访问

基于docker部署surging分布式微服务引擎的案例

基于docker部署surging分布式微服务引擎的案例

然后可以通过postman 来测试网关,如下图

基于docker部署surging分布式微服务引擎的案例

以上是“基于docker部署surging分布式微服务引擎的案例”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!

收藏
分享
海报
0 条评论
182
上一篇:查看docker容器使用资源的方法 下一篇:如何使用手机访问本地电脑下的wordpress网页

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码