本文共 3198 字,大约阅读时间需要 10 分钟。
转眼间surging开源已经有1年了,经过1年的打磨,surging从最初在window部署的分布式微服务框架,发展成为可以在docker部署并利用rancher进行服务编排的分布式微服务引擎。通过配置路径驱动加载业务模块,这种细粒度设计使得业务能够更加灵活地从对象层面进行拆分和聚合。以下将重点探讨基于docker的部署方案。
容器是用来存放镜像的器皿,而镜像是构建成一个轻量的、独立的、可执行的包,包含了执行它所需的所有内容:代码、运行环境、系统工具、系统库、设置等。程序被构建成镜像后,所依赖的下层环境就不再重要了。它可以在任何地方运行,甚至在混合云环境下也能正常运行。因此,容器技术兴起让Docker逐渐映入大家的眼帘。
Docker是基于Go语言开发的开源容器引擎。它将应用软件运行时所需的一切都打包成互相隔离的容器。Docker可以自动执行并配置开发/线上环境,快速构建、测试和运行复杂的多容器应用程序。即使面对数千个节点或容器的应用程序,Docker也能快速扩展和调配。它支持主流的Linux系统、Mac以及Windows,并能保证无论软件在哪里部署,都能正常运行并得到一致的结果。
Docker要求CentOS内核版本高于3.10。通过uname -r命令查看当前内核版本。安装步骤如下:
yum install docker-engine安装docker包。docker version命令确认是否安装成功。systemctl start docker。systemctl status docker。hello-world,运行docker run hello-world。docker pull rancher/server。docker run -d --restart=always -p 8080:8080 rancher/server。http://ip:8080查看Rancher界面。docker pull rabbitmq:management。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查看RabbitMQ管理界面。docker pull docker.io/consul:latest。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 -d --net=host --name consul -v /opt/platform/consul/config:/consul/config -v /opt/platform/consul/data:/consul/data consul agent。http://ip:8500查看Consul界面。sudo docker pull microsoft/dotnet:2.1-runtime。sudo docker run -it microsoft/dotnet:2.1-runtime。新建Dockerfile文件:
FROM microsoft/dotnet:2.1-runtime WORKDIR /app COPY . . ENTRYPOINT ["dotnet", "Surging.Services.Server.dll"]
dotnet publish -r centos.7-x64 -c release。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。新建Dockerfile文件:
FROM microsoft/dotnet:2.1-runtime WORKDIR /app COPY . . ENTRYPOINT ["dotnet", "Surging.ApiGateway.dll"]
dotnet publish -r centos.7-x64 -c release。docker build -t surgingapi .。docker run --name surgingapi -it -p 729:729 --env Register_Conn=192.168.249.162:8500 surgingapi。http://ip:729进行网关测试。通过1年的开发,Surging已经趋于完善,性能表现优异,平均访问时间仅为0.12ms左右。未来,Surging将在上海微软研发中心与开发者见面,分享更多技术细节,欢迎大家积极参与讨论。
转载地址:http://bscuz.baihongyu.com/