小知识:详解基于docker 如何部署surging分布式微服务引擎

1、前言

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

surging源码下载

2、概述

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

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

%小知识:详解基于docker 如何部署surging分布式微服务引擎-猿站网-插图

那么docker又是什么呢?

docker是基于go语言开发并开源的容器引擎 docker将应用软件运行时所需的一切都打包成互相隔离的容器 docker可以自动执行并配置开发/线上环境,快速构建,测试和运行复杂的多容器应用程序 对拥有数千个节点或容器的应用程序,docker也能快速的扩展和调配 可以运行在主流的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 命令查看你当前的内核版本

?
1
[root@runoob ~]# uname -r 3.10.0-862.e17.x86_64

# yum install docker-engine 安装docker包

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

%小知识:详解基于docker 如何部署surging分布式微服务引擎-1猿站网-插图

启动 docker

?
1
systemctl start docker

查看docker信息,如下图

?
1
systemctl status docker

%小知识:详解基于docker 如何部署surging分布式微服务引擎-2猿站网-插图

测试运行 hello-world

?
1
#docker run hello-world

2.安装rancher

下载镜像

?
1
docker pull rancher/server

启动 rancher

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

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

%小知识:详解基于docker 如何部署surging分布式微服务引擎-3猿站网-插图

3.安装rabbitmq

 下载镜像

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

%小知识:详解基于docker 如何部署surging分布式微服务引擎-4猿站网-插图

4.安装consul

下载镜像

?
1
#docker pull docker.io/consul:latest

创建 consul 配置

?
1
#vim /opt/platform/consul/server.json
?
1
2
3
4
5
6
7
8
9
10
11
12
{
“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访问,如下图所示

%小知识:详解基于docker 如何部署surging分布式微服务引擎-5猿站网-插图

5. 安装dotnetcore 2.1 runtime

下载镜像

?
1
#sudo docker pull microsoft/dotnet:2.1-runtime

启动  

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

三、部署程序

 1. 部署surging引擎,无需引用任何业务模块,新建dockerfile文件

?
1
2
3
4
from microsoft/dotnet:2.1-runtime
workdir /app
copy . .
entrypoint [“dotnet”, “surging.services.server.dll”]

发布程序

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

使用dockerfile创建镜像

?
1
#docker build -t surgingserver .

启动

?
1
2
#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

配置说明

mapping_ip:映射的外部ip(环境变量) mapping_port :映射的外部端口 (环境变量) rootpath:业务模块存储的根路径 (环境变量) register_conn:注册中心地址 (环境变量) eventbusconnection:eventbus 地址 (环境变量) surging_server_ip:容器内部ip (环境变量)

启动后在rancher如下图所示

%小知识:详解基于docker 如何部署surging分布式微服务引擎-6猿站网-插图

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

%小知识:详解基于docker 如何部署surging分布式微服务引擎-7猿站网-插图

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

?
1
2
3
4
from microsoft/dotnet:2.1-runtime
workdir /app
copy . .
entrypoint [“dotnet”, “surging.apigateway.dll”]

发布程序

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

使用dockerfile创建镜像

?
1
docker build -t surgingapi .

启动

复制代码 代码如下:
#docker run –name surgingapi -it -p 729:729 –env register_conn=192.168.249.162:8500 surgingapi

启动后在rancher如下图所示

%小知识:详解基于docker 如何部署surging分布式微服务引擎-8猿站网-插图

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

%小知识:详解基于docker 如何部署surging分布式微服务引擎-9猿站网-插图

%小知识:详解基于docker 如何部署surging分布式微服务引擎-10猿站网-插图

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

%小知识:详解基于docker 如何部署surging分布式微服务引擎-11猿站网-插图

四、总结

通过1年的开发,surging 也趋于完善,性能非常不错,平均访问在0.12ms 左右

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/fanliang11/p/9191793.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Nginx代理时header头中带"_"信息丢失问题的解决

2023-4-10 21:51:29

建站知识

小知识:详解Linux下Nginx+Tomcat整合的安装与配置

2023-4-10 21:57:45

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索