博客
关于我
基于docker 如何部署surging分布式微服务引擎
阅读量:417 次
发布时间:2019-03-06

本文共 3198 字,大约阅读时间需要 10 分钟。

基于Docker的容器化部署指南

前言

转眼间surging开源已经有1年了,经过1年的打磨,surging从最初在window部署的分布式微服务框架,发展成为可以在docker部署并利用rancher进行服务编排的分布式微服务引擎。通过配置路径驱动加载业务模块,这种细粒度设计使得业务能够更加灵活地从对象层面进行拆分和聚合。以下将重点探讨基于docker的部署方案。

概述

容器是用来存放镜像的器皿,而镜像是构建成一个轻量的、独立的、可执行的包,包含了执行它所需的所有内容:代码、运行环境、系统工具、系统库、设置等。程序被构建成镜像后,所依赖的下层环境就不再重要了。它可以在任何地方运行,甚至在混合云环境下也能正常运行。因此,容器技术兴起让Docker逐渐映入大家的眼帘。

Docker是什么

Docker是基于Go语言开发的开源容器引擎。它将应用软件运行时所需的一切都打包成互相隔离的容器。Docker可以自动执行并配置开发/线上环境,快速构建、测试和运行复杂的多容器应用程序。即使面对数千个节点或容器的应用程序,Docker也能快速扩展和调配。它支持主流的Linux系统、Mac以及Windows,并能保证无论软件在哪里部署,都能正常运行并得到一致的结果。

相关概念

  • Image镜像Container容器:可以类比为类与实例对象或ISO系统镜像与虚拟机的关系。不同的Image包含不同的软件或环境,通过Dockerfile进行管理。而Container则是以Image为模板,可以独立运行的微型系统,一个Image可以创建多个Container实例。
  • Registry镜像仓库:如Docker Hub,为开发者提供庞大的镜像资源进行拉取和使用。
  • Dockerfile:用于将镜像构建命令组合在一起,自动构建Image。

环境搭建

系统环境

  • 宿主机:Windows 10专业版
  • Linux服务器:CentOS 3.10

安装Docker

Docker要求CentOS内核版本高于3.10。通过uname -r命令查看当前内核版本。安装步骤如下:

  • 使用yum install docker-engine安装docker包。
  • 安装成功后,运行docker version命令确认是否安装成功。
  • 启动Docker服务,运行systemctl start docker
  • 查看Docker状态,运行systemctl status docker
  • 测试运行hello-world,运行docker run hello-world
  • 安装Rancher

  • 下载Rancher镜像,运行docker pull rancher/server
  • 启动Rancher,运行docker run -d --restart=always -p 8080:8080 rancher/server
  • 访问http://ip:8080查看Rancher界面。
  • 安装RabbitMQ

  • 下载RabbitMQ镜像,运行docker pull rabbitmq:management
  • 启动RabbitMQ,运行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管理界面。
  • 安装Consul

  • 下载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,运行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界面。
  • 安装dotnetcore 2.1 runtime

  • 下载镜像,运行sudo docker pull microsoft/dotnet:2.1-runtime
  • 启动,运行sudo docker run -it microsoft/dotnet:2.1-runtime
  • 部署程序

    部署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
  • 创建镜像,运行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中查看相关服务。
  • 部署Surging网关

    新建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/

    你可能感兴趣的文章
    oracle 执行一条查询语句,把数据加载到页面或者前台发生的事情
    查看>>
    oracle 批量生成建同义词语句和付权语句
    查看>>
    oracle 抓包工具,shell 安装oracle和pfring(抓包) 及自动环境配置
    查看>>
    Oracle 拆分以逗号分隔的字符串为多行数据
    查看>>
    Oracle 排序中使用nulls first 或者nulls last 语法
    查看>>
    oracle 插入date日期类型的数据、插入从表中查出的数据,使用表中的默认数据
    查看>>
    Oracle 操作笔记
    查看>>
    oracle 数据库 安装 和优化
    查看>>
    oracle 数据库dg搭建规范1
    查看>>
    Oracle 数据库常用SQL语句(1)
    查看>>
    Oracle 数据库特殊查询总结
    查看>>
    Oracle 数据类型
    查看>>
    oracle 数据迁移 怎么保证 和原表的数据顺序一致_一个比传统数据库快 1001000 倍的数据库,来看一看?...
    查看>>
    oracle 时间函数
    查看>>
    oracle 时间转化函数及常见函数 .
    查看>>
    Oracle 权限(grant、revoke)
    查看>>
    oracle 查询clob
    查看>>
    Oracle 比较 B-tree 和 Bitmap 索引
    查看>>
    Oracle 注意点大全
    查看>>
    UML- 组件图(构件图)
    查看>>