简述SQL2008部署多实例集群(学习)

by admin on 2019年9月3日

数据库集群

      集群的存在意义是为了保证高可用、数据安全、扩展性以及负载均衡。

一、前言
线上的
RabbitMQ用的是单节点,前段时间由于机器内存不足,发生了OOM,业务受到了影响,故打算换成
RabbitMQ集群。RabbitMQ模式有三种,分别是:单一模式、普通模式、镜像模式,镜像模式才是RabbitMQ真正的HA方案,关于更详细的简绍,请移步到官网:
,下面是关于RabbitMQ集群的部署过程:

一、docker简介

Docker是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本!
使用Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松!

由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。

传统的虚拟机技术启动应用服务往往需要数分钟,而Docker容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。

生产环境:

什么是集群?

    
由二台或更多物理上独立的服务器共同组成的”虚拟”服务器称之为集群服务器。一项称做MicroSoft集群服务(MSCS)的微软服务可对集群服务器进
行管理。一个SQL Server集群是由二台或更多运行SQL
Server的服务器(节点)组成的虚拟服务器。如果集群中的一个节点发生故障,集群中的另一个节点就承担这个故障节点的责任。认为一个
SQL
Server集群能够给集群中的两个节点带来负载平衡,这是一种常见的误解。虽然这似乎很有用,但却是不正确的。这也意味着SQL
Server集群不能真正提高性能,只能提供故障转移功能。故障转移就是当系统中的一台机器发生故障失去其功能时,另一台机器将接手运行它的SQL
Server实例。这种功能失效可能是由于硬件故障、服务故障、人工故障或各种其它原因。

     对于在SQL Server 2008\2008R2下安装SQLServer
实例的集群似乎有越来越多的问题。与2005相比安装方法要求每个节点都被独立执行。下面我我们一起看一下如何实现集群的部署。

二、环境
erlang版本:
erlang-19.0.4-1.el7.CentOS.x86_64

二、应用思路

文本服务,搜索服务,推荐服务,数据采集服务是达观数据的四个主要的服务方向,其中包括的小模块非常多,像基础的数据库群,缓存群,消息队列集群等,我们把业务模块也拆分到不同的容器中,这样方便各个模块之间灵活的配合。

主要的集群配置思路如下:

1.容器层:部署起来保证各个模块的稳定性,而且保持逻辑隔离,这样便于并发和复用。

2.网络层:建立集群独立网络层,经过指定的端口与外部网络通讯,保持网络层的隔离。

3.负载均衡:负载这边,使用docker自带的集群负载均衡策略。

4.服务守护:使用docker自带的服务守护与分发策略。

5.全局配置分发:采用docker 的secret作为加密策略。

下面我们用例子讲讲具体操作。

CentOS 6.3 x86_64

部署

   
本篇针对Share-Disk架构的集群进行介绍,为了更好展现,我们假定一下几个场景(–配置步骤):

    有3台计算机作为节点,分别叫做NodeA, NodeB 和NodeC ,IP地址如下。

  • NodeA – IP Address 10.10.10.10
  • NodeB – IP Address 10.10.10.11
  • NodeC – IP Address 10.10.10.12.

    三个节点是Windows集群SQLFAILSET01
(虚拟IP地址是10.10.10.20)的成员。在安装集群应用程序之前需要安装和配置这个基于Windows
集群的平台包括虚拟网络和IP。三个节点有独立的硬件(处理器,内存,NIC等等)和软件(操作系统)。安装两个新的SQLServer集群实例,使用唯
一的虚拟网络名称和实例名称。两个虚拟网络名称和虚拟IP地址如下:

  • SQLCLUST01 – Virtual IP Address 10.10.10.21
  • SQLCLUST02 – Virtual IP Address 10.10.10.22.

实例名:

  • INST1 (SQLCLUST01)
  • INST2 (SQLCLUST02)

图片 1

为了实现集群按照以下文档部署(配置步骤请参考连接或者其他文献):

  • 虚拟网络名称:
    与你的计算机在Windows域中的名称一样。它一定是唯一并且命名遵循常规的名称命名限制如字符长度和特殊字符的使用,
  • 虚拟IP地址:
    与分配客户\公共网络IP一样。这是一种共享的IP节点,用来接收跟指定实例通信的IP。
  • 共享驱动器:
    这些共享存储是典型的通过光纤通道或者iSCSI连接的逻辑单元。这些逻辑单元对所有的集群几点公开并且分配唯一的逻辑驱动字符。不要与本地驱动器(通常由物理磁盘直接附加到服务器上)混淆。
  • NIC: 网络接口卡。

   
如果你没有这样做,则需要将集群磁盘资源R、S和T故障转移部署到NodeA,同样也会安装软件组件和数据库到这些驱动器上。从在NodeA开启
SQLServer2008的安装开始,选择”New SQL Server failover cluster
installation”。然后安装相关的基础选项配置以及许可。来到实例配置启动的安装部分。

   
从功能列表中选择你想去安装的项目。下一个屏幕就是你说提供的实例配置,由实例名称和虚拟网络名称组成。对于NodeA使用如下配置:

network name – SQLCLUST01

instance name – INST1

 

在下一个屏幕详细展示集群资源组和共享磁盘资源(分配给新实例的)。对于NodeA如下配置:

SQL Server data – R:

SQL Server logs – S:

SQL Server backups – T:

   
一旦这些信息被提交,系统将提示网络配置将使用之前选择的虚拟IP地址。剩下的安装明细包括了集群的安全策略,服务配置(服务账户明细)和数据库引擎配置
(包括账户配置、文件流设置和数据目录)。在数据目录的标签下,展示你选择的之前提供的驱动盘符–“驱动\目录”
结构。继续安装,只要安装成功你就会拥有第一个集群实例在NodeA上。

    
接下来是NodeB,需要将故障转移集群磁盘资源L,M和N部署到NodeB上准备安装。

    现在在NodeB上开启SQLServer2008的安装并且再次点击”New SQL Server
failover cluster
installation”。根据之前的步骤安装,用网络名SQLCLUST02替换之前的,实例名称为INST2,逻辑磁盘驱动器为L(数据),M(日
志)和N(备份)。

   
此刻,我们已经有了两个故障转移实例,分别部署到了NodeA和NodeB上。两个实例使用完全不同的磁盘驱动器和盘符,不同的Windows2008程序组和独立的虚拟网络名称,实例名称和虚拟IP地址。激活节点的信息如下:

  • SQLCLUST01\INST1 active on NodeA.
  • SQLCLUST02\INST2 active on NodeB.

 

   
但是,目前对于每个实例都没有可以利用的故障转移服务器,现在来解决这个问题。为了让NodeC作为每个实例的转移节点,需要在NodeC上多次安装SQLServer实例。

    首先在C上开启2008的安装,并且选择”Add node to a SQL Server failover
cluster”。安装程序将完成多个选择和提示等关键信息。之后,安装将提示集群节点配置。在这里选择你希望加入的SQLServer实例
(SQLCLUST01\INST1)。继续完成安装,就有了NodeC作为SQLCLUST01\INST1的故障转移“搭档”。

    接下来,第二次安装SQLServer 2008在NodeC上,选择”Add node to a SQL
Server failover
cluster”。再一次按照如上步骤,再一次按提示配置集群节点。选择(SQLCLUST02\INST2)
作为集群实例并且按照安装步骤完成。这是NodeC就成为了SQLCLUST02\INST2的故障转移“搭档”。

下面就是安装中心的截图以及选择的选项:

图片 2

下面的截图展示的是安装定义加入实例的地方:

图片 3

 

   
如上所示,安装已经完毕,整个流程更加易于管理。当然利用新的气流特性和集成服务包或累积更新来减少可以减少部署新SQL服务器实例的时间。这里就不展开讲了。

 

rabbitmq版本:
rabbitmq-server-3.6.6

三、工具及前期准备

由于我们的目标是建立分布式的集群环境,所以要使用多机部署,并考虑水平扩展性。

我们此处使用20台阿里云的ecs来进行部署,centos
7.2镜像作为基础os环境来讲解。

服务器主机名与IP列表:

总结

   
本篇只是简单介绍了最简单的故障转移集群如何搭建。集群有很多种形式如本篇这种共享磁盘模式的数据库集群,以及实现负载均衡的集群等等,但是正如文章一开
始我提到的SQL
Server集群不能真正提高性能。业务的应用场景各有不同还是需要不断地配置升级来完成匹配适应的集群。

服务器主机名:
ip-172-31-13-114  磁盘节点
ip-172-31-15-124 内存节点
ip-172-31-11-216 内存节点

(1)docker 安装

docker官网下载docker的centos7版本的docker安装文件,本文使用版本为docker-ce-17.03,docker的详细介绍见官网文档,此处不做赘述,https://docs.docker.com/engine/docker-overview/

文件存放位置:/tmp

文件名称:

<1>docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch.rpm

<2>docker-ce-17.03.1.ce-1.el7.centos.x86_64.rpm

mq136      172.28.2.136
mq137      172.28.2.137
mq164      172.28.2.164
mq165      172.28.2.165

三、安装
1、erlang安装
a、wget

rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
b、rpm –import

c、Add the following lines to some file in /etc/yum.repos.d/:
[erlang-solutions]
name=Centos $releasever – $basearch – Erlang Solutions
baseurl=
gpgcheck=1
gpgkey=
enabled=1
d、yum install erlang esl-erlang

(2)Docker-machine 安装

此处选用docker-machine进行docker集群的命令调试

官网下载docker-mashine,本文使用v0.10.0,版本,

Docker-machine
详细介绍见官网文档,此处不做赘述,https://docs.docker.com/machine/overview/

文件存放位置:/tmp

文件名称:docker-machine-Linux-x86_64

在各节点服务器上作好hosts解析

2、RabbitMQ 安装
a、 wget

b、tar -xvf rabbitmq-server-generic-unix-3.6.6.tar.xz
c、 mv rabbitmq_server-3.6.6 /data/rabbitmq
d、cd /data/rabbitmq/;./sbin/rabbitmq-server -detached

(3)ssh 秘钥

选取集群主机,生成ssh秘钥对,方便对各个机器进行操作,如对ssh不了解,请查看百度百科

  1. cat >>/etc/hosts/<<EOF 
  2. mq136      172.28.2.136 
  3. mq137      172.28.2.137 
  4. mq164      172.28.2.164 
  5. mq165      172.28.2.165 
  6. EOF 

四、配置
1、需要配置host,不然集群没用办法创建,我这里用的aws的ec2,用的默认主机名,这里就不修改了
2、拷贝.erlang.cookie,RabbitMQ集群依赖erlang集群才能工作,所以需要先构建erlang集群,.erlang.cookie文件在启动用户的家目录下,我这里是用work用户启动的RabbitMQ,拷贝一台服务器的/home/work/.erlang.cookie到其他机器并设置权限
chown work:work  /home/work/.erlang.cookie
chmod 400 /home/work/.erlang.cookie

(4)fabric 镜像制作

由于机器数量较多并考虑水平扩展性,需选用一款集群命令、文件的分发工具,本文选用python的fabric进行多机控制、文件分发,如对fabric不了解,请查看官方文档http://www.fabfile.org

一、简介
RabbitMQ是流行的开源消息队列系统,用erlang语言开发。Erlang的分布式通讯安全策略,可以归结为
All or
None。。RabbitMQ是AMQP(高级消息队列协议)的标准实现。RabbitMQ的结构图如下:

3、设置集群的模式:镜像
rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:”all”}’

四、集群os配置及步骤

图片 4

PS:
在任意一个节点操作即可,这里在ip-172-31-13-114上操作
4、加入集群(ip-172-31-15-124 、ip-172-31-11-216 )
rabbitmqctl stop_app
rabbitmqctl join_cluster –ram rabbit@ip-172-31-13-114
rabbitmqctl start_app

(1)主机安装docker,及docker-machine

cd /tmp

$ yum install ./docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch.rpm

$ yum install ./docker-ce-17.03.1.ce-1.el7.centos.x86_64.rpm

$ chmod +x/tmp/docker-machine-Linux-x86_64

$ cp/tmp/docker-machine-Linux-x86_64 /usr/local/bin/docker-machine

几个概念说明:

PS:
–ram 指定内存节点类型,–disc指定磁盘节点类型

(2)校验docker,docker-machine安装情况

$ docker version

$ docker-machine version

Broker:简单来说就是消息队列服务器实体。
Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
producer:消息生产者,就是投递消息的程序。
consumer:消息消费者,就是接受消息的程序。
channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。

5、查看集群
rabbitmqctl cluster_status

(3)制作docker的fabric镜像

这一步制作fabric镜像,来在容器中启动fabric,目的是命令和文件的分发,具体命令与文件规则见官方文档。(张弸中达观数据)

消息队列的使用过程大概如下:

6、启用管理和监控模块
rabbitmq-plugins enable rabbitmq_management

<1>制作Dockerfile,文件内容如下:

FROMcentos:7.2.1511

LABEL maintainer”zhangpengzhong@datagrand.com”

ENV ENVIRONMENTproduction

RUN cd / && ln -sf/usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN yum update -y \

&& yum install -y wget gccgcc-c++ python-develbzip2 \

&& yum install -y epel-release\

&& yum install -y python-pip \

&& yum clean all \

&& pip install –upgrade pip -i
–trusted-host pypi.douban.com \

&& pip installsetuptools==33.1.1 -i
–trusted-hostpypi.douban.com \

&& pip install fabric -i
–trusted-hostpypi.douban.com

(1)客户端连接到消息队列服务器,打开一个channel。
(2)客户端声明一个exchange,并设置相关属性。
(3)客户端声明一个queue,并设置相关属性。
(4)客户端使用routing key,在exchange和queue之间建立好绑定关系。
(5)客户端投递消息到exchange。

7、设置集群的名字
rabbitmqctl set_cluster_name my_mq

<2>制作镜像:

docker build -t fabric:v1 .

exchange接收到消息后,就根据消息的key和已经设置的binding,进行消息路由,将消息投递到一个或多个队列里。

8、添加用户:
rabbitmqctl add_user spider spider

<3>启动fabric容器:

启动并将所需分发的文件即上文提到的/tmp 目录中的文件加入到容器中

docker run -itd -v /tmp:/tmpfabric:v1

查看容器:

docker ps

复制查询到的CONTAINER ID(上图第一列):

2f1dc61db184

进入容器:

docker exec -it 2f1dc61db184/bin/bash

exchange也有几个类型,完全根据key进行投递的叫做Direct交换机,例如,绑定时设置了routing
key为”abc”,那么客户端提交的消息,只有设置了key为”abc”的才会投递到队列。对key进行模式匹配后进行投递的叫做Topic交换机,符号”#”匹配一个或多个词,符号”*”匹配正好一个词。例如”abc.#”匹配”abc.def.ghi”,”abc.*”只匹配”abc.def”。还有一种不需要key的,叫做Fanout交换机,它采取广播模式,一个消息进来时,投递到与该交换机绑定的所有队列。

9、设置用户权限策略
rabbitmqctl set_user_tags spider administrator

(4)容器内使用fabric分发sshkey

vi fabric.py

fabric.py 如下:

#!/usr/bin/env python

# — encoding: utf-8 —

from fabric.api import run, env

env.hosts=[’10.0.0.2’,’10.0.0.3’,’xxx.xxx.xxx.xxx’]

env.user=’root’

env.password = ‘111’

def sshkey():

sk =
‘ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQCfgSSubEyt39eouUNvGDpFlo/OwdIgIHsB0h9xDdX9cB6mqcmnC8f2EYheBgC0GPeZfAeRGAWmrQPGh7BzYmk93TBPM8L9SM8ewcFAlG9vKnA7myfjmg6HBfokkZ0vfDAQlApUbANtOZenjIhdrCNnk9MHI2DG8LuC9TPGwzOgMMETY28LRGTjEWwUGnf2kFPHNC4OUUltyEsRLC9IQV2+p8phPwLot8rbVPcOj9j07OVV5bwpkXjrMCut/xnVmz/p1J5hrfPaVyQy633R9Xr47hjT7UYs7RyC8gk/j9fHbbLIvxdXfAsHBcQZ4+2I6kZhOs/JQ54VBbiP4Froot@jcloud-daguan-mysql1’

run(‘cd’)

run(‘mkdir .ssh’)

run(‘ echo “‘ + sk + ‘” > .ssh/authorized_keys’)

run(‘chmod 600 .ssh/authorized_keys’)

run(‘chmod 700 -R .ssh’)

def putfile(path1=”,path2=”):

put(path1,path2,mode=0755)

def docker_install():

with cd (‘/tmp’):

run(‘yum install
-ydocker-ce-selinux-17.03.1.ce-1.el7.centos.noarch.rpm’)

run(‘yum install -ydocker-ce-17.03.1.ce-1.el7.centos.x86_64.rpm’)

启动fabric:

fab -f fabric.py sshkey

RabbitMQ支持消息的持久化,也就是数据写在磁盘上,为了数据安全考虑,我想大多数用户都会选择持久化。消息队列持久化包括3个部分:
(1)exchange持久化,在声明时指定durable => 1
(2)queue持久化,在声明时指定durable => 1
(3)消息持久化,在投递时指定delivery_mode => 2(1是非持久化)

10、vhost授权
rabbitmqctl set_permissions -p / spider ‘.*’ ‘.*’ ‘.*’

(5)分发docker相关安装文件

启动fabric:

fab -f fabric.py putfile
/tmp/docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch.rpm/tmp/docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch.rpm

如果exchange和queue都是持久化的,那么它们之间的binding也是持久化的。如果exchange和queue两者之间有一个持久化,一个非持久化,就不允许建立绑定。

11、改变节点类型为磁盘节点
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc
rabbitmqctl start_app

(6)为集群每台机器安装docker

fab -f fabric.py docker_install

下面我们再了解下消息队列RabbitMQ集群,由于RabbitMQ是用erlang开发的,RabbitMQ
完全依赖 Erlang 的
Cluster,而Erlang集群非常方便,因此配置RabbitMQ集群变得非常简单。

12、将节点移出集群
将节点ip-172-31-11-216 移出集群前,先要stop_app,然后reset节点
[root@ip-172-31-11-216 ~]# rabbitmqctl stop_app
Stopping node rabbit@ip-172-31-11-216 …
[root@ip-172-31-11-216 ~]# rabbitmqctl reset
Resetting node rabbit@ip-172-31-11-216 …

(7)退出容器

exit

RabbitMQ的集群节点包括内存节点、磁盘节点。顾名思义内存节点就是将所有数据放在内存,磁盘节点将数据放在磁盘。不过,如前文所述,如果在投递消息时,打开了消息的持久化,那么即使是内存节点,数据还是安全的放在磁盘。

CentOS7下安装RabbitMQ 
http://www.linuxidc.com/Linux/2016-11/136812.htm

(8)在外部校验sshkey是否设置成功

ssh root@10.0.0.2

良好的设计架构可以如下:在一个集群里,有3台以上机器,其中1台使用磁盘模式,其它使用内存模式。其它几台为内存模式的节点,无疑速度更快,因此客户端(consumer、producer)连接访问它们。而磁盘模式的节点,由于磁盘IO相对较慢,因此仅作数据备份使用。

高可用RabbitMQ集群安装配置
http://www.linuxidc.com/Linux/2016-10/136492.htm

(9)使用docker-machine配置集群:

docker-machine create -d generic–generic-ip-address=10.0.0.2
–generic-ssh-user=rootworker1

docker-machine create -d generic–generic-ip-address=10.0.0.3
–generic-ssh-user=rootworker2

依此类推:

docker-machine create -d generic–generic-ip-address=10.0.0.xxx
–generic-ssh-user=rootworkerxxx

图片 5

CentOS 7.2 下 RabbitMQ 集群搭建 
http://www.linuxidc.com/Linux/2016-12/137812.htm

五、建立docker集群

RabbitMQ 学习初入门 
http://www.linuxidc.com/Linux/2016-11/136813.htm

(1)建立docker主机

docker swarm init –advertise-addr 本机ip

如下:

$ docker swarm init–advertise-addr 10.0.0.1

Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz)is now a
manager.

To add a worker to this swarm, runthe following command:

docker swarm join \

–tokenSWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c\

10.0.0.1:2377

To add a manager to this swarm, run’docker swarm join-token manager’ and
follow the instructions.

CentOS7环境安装使用专业的消息队列产品RabbitMQ
http://www.linuxidc.com/Linux/2016-11/13673.htm

(2)使用fabric将剩余所有机器加入集群

将上面一步生成的命令行复制,进入刚才的fabric容器修改fabric文件,相当于令主机外其他所有机器都执行一遍上一步生成的命令

def cluster_join():

run(‘docker swarm join
—tokenSWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx1ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c10.0.0.1:2377

‘)

执行 fab -f fable.py cluster_join

配置与管理RabbitMQ 
http://www.linuxidc.com/Linux/2016-11/136815.htm

(3)建立集群内部网络

docker network create -d overlaytest_privite

可以用命令查询是否建立成功

docker network ls

RabbitMQ概念及环境搭建 http://www.linuxidc.com/Linux/2014-12/110449.htm

六、启动docker业务容器

这里用mysql,redis,elasticsearch来举例

RabbitMQ入门教程 
http://www.linuxidc.com/Linux/2015-02/113983.htm

(1)mysql

此处我们选用版本mysql5.6,镜像来自docker hub

docker service create –namemysql_test –replicas 1 \

–network test_privite \

–mounttype=bind,src=/data/mysql,dst=/var/lib/mysql \

–constraint ‘node.hostname == workerx’\

-e MYSQL_ROOT_PASSWORD=xxxmysql:5.6 –character-set-server=utf8
–collation-server=utf8_general_ci

RabbitMQ
的详细介绍
:请点这里
RabbitMQ
的下载地址
:请点这里 

(2)redis

此处我们选用版本redis 3.2,镜像来自docker hub

docker service create –nameredis_online \

–network test_privite \

–mount type=bind,src=/data/redis,dst=/data\

–constraint ‘node.hostname == workerx’\

redis:3.2.8 redis-server/usr/local/etc/redis/redis.conf

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/143687.htm

(3)elasticsearch_master

此处我们选用版本elasticsearch5.3.0,镜像来自dockerhub

docker service create –nameelasticsearch_master –replicas 1 \

–network test_privite \

–publishmode=host,target=9200,published=9200 \

–constraint ‘node.hostname == workerx’\

-e cluster.name=xxx \

-e”discovery.zen.ping.unicast.hosts=elasticsearch_master” \

docker.elastic.co/elasticsearch/elasticsearch:5.3.0

图片 6

(4)elastic search client

docker service create –nameelasticsearch_master –replicas n \

–network test_privite \

-e cluster.name=xxx \

-e”discovery.zen.ping.unicast.hosts=elasticsearch_master” \

docker.elastic.co/elasticsearch/elasticsearch:5.3.0

七、结束语

docker的应用大大减少了代码部署的工作量,有效的建立了规范化的服务架构,上面简单介绍的达观数据使用docker部署的一个例子,希望对您有所帮助。

想了解学习更多技术干货,扫描下方二维码关注“达观数据”公众号

图片 7

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图