Centos6上面安装elasticsearc数据库的集群
安装的是6.3.2版本,安装之前首先要先安装jdk1.8版本
安装之前首先需要关闭防火墙
Centos6
sudo service iptables start/stop/status
sudo chkconfig iptables off/--list –永久关闭防火墙
Centos7
sudo systemctl stop/start/status firewalld.service
sudo systemctl disable firewalld.service –永久关闭防火墙
接下来关闭selinux
查看Selinux的状态
/usr/sbin/sestatus –v
SELinux status: enabled
如果SELinux status参数为enabled即为开启状态,需要进行下面的关闭操作。
关闭SElinux
sudo vim /etc/selinux/config
在文档中找到SELINUX,将SELINUX的值设置为disabled,即:
SELINUX=disabled
在内存中关闭SElinux
setenforce
检查内存中状态
getenforce
如果日志显示结果为disabled或者permissive,说明操作已经成功。
我们将elasticserach解压到/opt/elasticsearch目录
mkdir -p /opt/elasticsearch
tar -zxvf elasticsearch-6.3..tar.gz -C /opt/elasticsearch
Elasearch的安装目录为:/opt/elasticsearch/elasticsearch-6.3.2
现在我们在上面的三台机器上面安装elasticsearch的集群环境
在192.168.42.113这台机器上面修改elasticSearch的配置文件修改elasticsearch.yml配置文件
修改配置文件的内容如下:在elasticsearch.yml配置文件的末尾增加下面的内容:
cluster.name: tipdm-es #es集群名称 node.name: es-node3 #es节点名称,每个节点的名称不能相同 node.master: true #指定该节点是否有资格被选举成为master,默认是true node.data: true #指定该节点是否存储索引数据,默认为true。 network.host: 192.168.43.113 #节点的ip地址 #设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点 discovery.zen.ping.unicast.hosts: ["192.168.43.112", "192.168.43.113", "192.168.43.111"] #设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(-) discovery.zen.minimum_master_nodes: #如果要使用head,那么需要设置下面2个参数,使head插件可以访问es http.cors.enabled: true http.cors.allow-origin: "*" #这是Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。 bootstrap.memory_lock: false bootstrap.system_call_filter: false #如果安装x-pack插件,我们取消他的basic认证,需要添加以下选项
xpack.security.enabled: false
xpack.ml.enabled: false
path.data: /opt/elasticsearch/elasticsearch-6.3./data #数据文件存储路径
path.logs: /opt/elasticsearch/elasticsearch-6.3./logs #log文件存储路径
#elasticsearch备份位置,路径要手动创建
path.repo: ["/opt/elasticsearch/elasticsearch-6.3.2/data/backups"]
注意有的文章中
network.host设置为0.0.0.0
其他两台机器的配置内容同113 的配置一样,只需要修改节点名称和IP地址就可以了
注意配置文件都是yml格式,key和value之间存在空格
二者集群集群需要注意:并修改一下配置文件的node.name和network.host
1、集群的名称在两个配置文件都一样都是cluster.name: tipdm-es #es集群名称
2、集群中配置文件中端口都是一致的都是9200
不同的地方在于每个集群中节点的名称不能一样并修改一下配置文件的node.name和network.host
node.name: es-node2 #es节点名称,每个节点的名称不能相同
network.host: 192.168.43.111 #节点的ip地址
由于root用户启动elasticsearch会报错,所以要创建一个用户,这里创建elasticsearch用户,更改elasticsearch-6.3.2目录的所属用户和组为elasticsearch。执行如代码 2‑5所示的命令。
useradd elasticsearch
passwd elasticsearch
chown -R elasticsearch:elasticsearch /opt/elasticsearch/
此外为避免ES启动报错,需要调整一下系统设置。首先打开/etc/security/limits.conf
vi /etc/security/limits.conf
* soft nofile
* hard nofile
* soft nproc
* hard nproc
同时还需要修改vim /etc/sysctl.conf
vi /etc/sysctl.conf文件,在文件末尾添加“vm.max_map_count=655360”
执行了上面的命令之后要执行接着执行命令“sysctl -p”更新上面的操作
接下来就可以启动elasSearch数据库了,切换elasticsearch用户,启动测试,执行如代码 2‑6所示的命令
每一台设备都要单独启动 前台启动
$ ./elasticsearch 后台启动 -d为守护进程运行
$ ./elasticsearch –d
$ ./elasticsearch & # 使用这种方式他会打印日志在前台
启动的时候如果报下面的错误
unable to load JNA native support library, native methods will be disabled.
java.lang.UnsatisfiedLinkError: Native library (com/sun/jna/linux-x86/libjnidispatch.so) not found
解决办法如下,首先进入到elasticSearch的lib目录下
我们看到该目录下存在一个jna-4.5.1.jar,整个jar包存在问题,我们要到官网上下载一个最新的jar包,然后上传到改lib目录下
做之前我们先备份
mv jna-4.5..jar jna-4.5..jar.bak (以bin目录的文件为准,不一定是4.5.1)
然后重新下载该文件 在lib目录内 :
wget http://repo1.maven.org/maven2/net/java/dev/jna/jna/4.5.1/jna-4.5.1.jar (根据你之前看到的版本号改动)
这样elasticSearch集群就部署好了
skywalking配置elasticSearch数据库集群的时候,配置如下就可以了,在skywalking的配置文件中如下
elasticsearch:
nameSpace: ${SW_NAMESPACE:"tipdm-es"}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.43.111:,192.168.43.112:,192.168.43.113:}
user: ${SW_ES_USER:""}
其中主要修改 clusterName 和 clusterNodes 要和上面配置的 elasticsearch 配置一致。
接下来skywalking集群环境的搭建
Skywalking集群部署首先要让zookeeper进行集群配置
mkdir -p /opt/zookeeper
tar -zxvf zookeeper-3.4..tar.gz -C /opt/zookeeper
接下进行zookeer的集群配置,搭建zookeeper集群需要最少三台机器,需要安装jdk作为基础支持。此次使用的Zookeeper3.4.7版本
进入conf目录,复制zoo-sample.cfg重命名为zoo.cfg,通过修改zoo.cfg来对zookeeper进行配置。这个名字固定写死,因为zookeeper启动会检查这个文件,根据这个配置文件里的信息来启动服务。
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
在文件的末尾添加下面的内容
tickTime=
initLimit=
syncLimit=
dataDir=/opt/zookeeper/data
clientPort=
server.=192.168.43.111::
server.=192.168.43.112::
server.=192.168.43.113::
dataDir:指定zookeeper将数据保存在哪个目录下
erver.1=xxx.xxx.xxx.xxx:2888:3888
server.2=xxx.xxx.xxx.xxx:2888:3888
server.3=xxx.xxx.xxx.xxx:2888:3888
在配置文件末尾加上这三行,ip填写自己规划的ip即可,zookeeper服务默认的端口号为2888和3888,也可将/etc/hosts文件添加主机和ip映射,将此处的ip写成主机名称。
说明:2888原子广播端口,3888选举端口,zookeeper有几个节点,就配置几个server。说明:2888原子广播端口,3888选举端口,zookeeper有几个节点,就配置几个server。
接下来,到 到之前配置的zookeeper数据文件所在的目录下生成一个文件叫myid,之前的data目录在/opt/zookeeper/data在改目录下生成一个myid的文件
到之前配置的zookeeper数据文件所在的目录下生成一个文件叫myid,其中写上一个数字表明当前机器是哪一个编号的机器。
vim myid
1
注意:文件名称必须是myid,文件内容只需要一个数字即服务器列表中当前服务器的编号。1表示当前节点的变化,其他两个节点的编号就是2或3,不能与1相同
3.拷贝
将以上Zookeeper文件夹远程拷贝到另外两台服务器中:
分发安装包
#将配置好的zookeeper拷贝到其他节点
scp -r ./zookeeper/ root@192.168.43.112:/opt
scp -r ./zookeeper/ root@192.168.43.113:/opt
然后修改另外两台服务器中的myid文件中的id即可。
#yun02
vim myid
2
#yun03
vim myid
3
4、启动zookeeper
启动zookeeper的各种命令操作如下,可以使用绝对路径操作这些命令,也可使用相对路径操作这些命令,相对路径需要进到zookeeper服务的bin目录进行操作。
#启动ZK服务:
bin/zkServer.sh start
#停止ZK服务:
bin/zkServer.sh stop
#重启ZK服务:
bin/zkServer.sh restart
#查看ZK服务状态:
bin/zkServer.sh status
Zookeeper集群需要每台挨个启动。
可以是用jps命令查看线程。
启动集群的时候,集群数量启动没有超过一半,状态会有错误提示,当集群启动数量超过一半就会自动转为正常状态,并且此台使集群进入正常工作状态的服务器会成为leader角色,集群中其他服务器的角色为fllower。
这样就表示zookeeper的集群部署成功了
Zk 的集群搭建成功之后,接下来就是搭建skywalking collect集群
这样就表示zookeeper的集群部署成功了
Zk 的集群搭建成功之后,接下来就是搭建skywalking collect集群
zk安装成功之后,接下来就要进行skywalking的安装
我们下载6.3.0版本
接下来,进行解压安装操作,执行下面的命令
mkdir -p /opt/skywalking
tar -zxvf apache-skywalking-apm-6.3..tar.gz -C /opt/skywalking
第一步:接下来要修改skywalking collect的配置,配置ES 存储监控数据(推荐)
将储存方式由 h2 修改为 elasticsearch:
修改application.yml文件
我们最好把application.yml文件下载到本地电脑上之后,再进行修改,修改完成之后在上传到服务器上面去,将h2数据库的信息注释掉,将elasticsearch数据库的信息打开,其中
接下来elasticSearch数据库配置成功之后,接下来在aplication.yml文件中配置zk集群信息
接下来要配置collect与zookeeper的信息
这里一定要将standalone单节点整个信息注解掉,将zookeeper这个节点信息打开
配置好之后将skywalking拷贝到其他节点上面
[root@localhost opt]# scp -r ./skywalking/ root@192.168.43.113:/opt
接下来就可以在192.168.43.111和192.168.43.113这两台机器上面启动skywalking了
启动skywalking之前保证elasticsearch集群已经启动成功,zookeeper集群已经启动成功
1、 验证首先保证elasticSerach集群成功
2、再次保证zk集群启动成功
3、接下来就可以启动skywalking的collect了
启动有下面的两种方式
第一种方式只启动collect服务
启动collector服务
#初始化
cd /opt/skywalking/bin/
./oapServiceInit.sh #启动collector服务
./oapService.sh
第二种方式
You can use bin/startup.sh(or cmd)
这里skywalking的collect集群就搭建成功了
接下来要配置的是skywalking的agent和web的配置
探针的配置 修改agent.config配置如下:
vim /opt/skywalking/agent/config/agent.config
-------------------------------------------------------------
agent.service_name=Your_ApplicationName #改为你的项目名字
collector.backend_service=192.168.43.111: #collector的端口服务地址;
logging.level=info
单节点的地址就只配置一个collect的地址,如果是集群就要设置如下
collector.backend_service=192.168.43.111:11800,192.168.43.113 #collector的端口服务地址;
这里端口11800是agent与collect进行grpc协议通信的端口地址
• Storage, use H2 by default, in order to make sure, don't need further deployment.
• Backend listens 0.0.0.0/ for gRPC APIs and 0.0.0.0/ for http rest APIs. In Java, .NetCore, Node.js, Istio agents/probe, set the gRPC service address to ip/host:. (ip/host is where the backend at)
• UI listens port and request 127.0.0.1/ to do GraphQL query.
接下来就可以启动agent
、启动Agent
• 基于Tomcat的服务(SpringMvc)
在tomcat的bin目录下的catalina.sh中增加如下命令行
• CATALINA_OPTS="$CATALINA_OPTS -javaagent:/opt/skywalking/agent/skywalking-agent.jar"
export CATALINA_OPTS
• 基于JAR file的服务(SpringBoot)
在启动你的应用程序的命令行中添加 -javaagent 参数. 并确保在-jar参数之前添加它. 例如:
java -javaagent:/opt/skywalking/agent/skywalking-agent.jar -jar yourApp.jar
启动agent一定是绝对目录
例如上面skywalking-agent.jar位于C:\Users\Administrator\Desktop\skywalkingdubbo\apache-skywalking-apm-6.1.0\apache-skywalking-apm-bin\agent目录下,启动的时候
会读取config目录下面的agent.confg配置文件
一定要注意
java -javaagent:后面一定要给skywalking-agent.jar的绝对目录,并且要保证skywalking-agent.jar能够读取到config目录下的agent.config配置文件,所以不要讲skywalking-agent.jar拷贝到
其他目录,这样会导致skywalking-agent.jar启动的时候读取不到agent.config配置文件 agent.config配置文件修改完成之后,接下来我们要修改skywalking的页面中webapp.xml的配置
配置 Skywalking Web服务
1、修改配置
cd /opt/skywalking/webapp
# 修改webapp.yml 文件配置如下:
server:
port:
collector:
path: /graphql
ribbon:
ReadTimeout:
# Point to all backend's restHost:restPort, split by ,
listOfServers: 192.168.43.111:12800,192.168.43.113:12800
security:
user:
# username
admin:
# password
password: <your_pass> #此处修改你的网站管理员密码
这里12800就是collect 暴露出来让页面UI查询收集的数据的端口,页面通过path: /graphql这个接口来访问,页面访问的时候通过ribbon负载均衡的策略随机的访问到某一台collect,这里可以配置ribbon访问collect的超时时间ReadTimeout: 10000
这样整个skywalking和elasticSearch数据库的集群就设置完成了。
还要下面几个注意点需要特别的注意:
注意点:
关于采样设置的一点注意事项
关于服务采样配置的一点建议,如果Collector以集群方式部署,比如:Acollector和Bcollector,建议Acollector.sampleRate = Bcollector.sampleRate。如果采样率设置不相同可能会出现数据丢失问题。
假设Agent端将所有数据发送到后端Collector处,A采样率设置为30%,B采样率为50%。
假设有30%的数据,发送到A上,这些数据被全部正确接受并存储,极端情况(与期望的采样数据量相同)下,如果剩下20%待采样的数据发送到了B,这个时候一切都是正常的,如果这20%中有一部分数据被送到了A那么,这些数据将是被忽略的,由此就会造成数据丢失。
设定采样率在application.yml中的receiver-trace接受者中,你可以找到sampleRate
设置。
此外还有需要注意的是:需要特别注意的是:elasticSearch服务器的时候必须和安装skywalking collect、agent服务器的时间
保持一致否则会出现数据无法出来的问题,1. 修改系统的时区,保证skywalking colle、和客户端的Agent的、elasticSearch数据库三者的时区保持一致
接下来我们搭建apollo的集群环境
Apollo分布式配置中心部署以及使用,第一步到官网上面去下载apollo ,https://github.com/ctripcorp/apollo
比较重要的几个项目:
• apollo-configservice:提供配置获取接口,提供配置更新推送接口,接口服务对象为Apollo客户端
• apollo-adminservice:提供配置管理接口,提供配置修改、发布等接口,接口服务对象为Portal,以及Eureka
• apollo-portal:提供Web界面供用户管理配置
• apollo-client:Apollo提供的客户端程序,为应用提供配置获取、实时更新等功能
上图简要描述了配置发布的大致过程:
• 用户在Portal操作配置发布
• Portal调用Admin Service的接口操作发布
• Admin Service发布配置后,发送ReleaseMessage给各个Config Service
• Config Service收到ReleaseMessage后,通知对应的客户端
这里我们直接下载安装包,不通过源码进行构建
我们可以看到可以直接使用的安装包有上面的三个,一个是adminService、一个是configservice。一个是portal首页
Apoll安装的时候对数据库有要求
Mysql要求5.6.5版本以上
Java jdk要求 1.8以上
接下来我们安装数据库
Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,其中portal进程使用数据库ApolloPortalDB,adminService和configservice共用数据库ApolloConfigDB
需要注意的是ApolloPortalDB只需要在生产环境部署一个即可,而ApolloConfigDB需要在每个环境部署一套,如fat、uat和pro分别部署3套ApolloConfigDB。
我们先来看集群部署需要注意的事项
上面首先由两套环境uat、dev两个环境:
1、第一点每一套环境需要对于不同的ApolloConfigDB数据库,uat要新建一个ApolloConfigDB,dev需要创建部署一个ApolloConfigDB数据库
2、Portal部署在生产环境的机房,通过它来直接管理FAT、UAT、PRO等环境的配置,uat和dev环境可以共用一个ApolloPortalDB数据库,所有的环境都通用一个ApolloPortalDB数据库
3、上面的uat环境中,如果现在有两台服务server1和serve2,我们要在这两台机器上面实现集群,我们这样做
Meta Server和Config Service部署在同一个JVM进程内,Admin Service部署在同一台服务器的另一个JVM进程内
在server1上面运行一个config service的进程,运行一个admin service的进程
在server2上面运行一个config service的进程,运行一个admin service的进程
这样集群就部署好了,对于potal首页的进程,我们也可以部署多个进程,但是这些进程都是访问同一个数据库
集群部署好了之后,我们需要做对于的配置
分布式部署的时候,apollo-configservice和apollo-adminservice需要把自己的IP和端口注册到Meta Server(apollo-configservice本身)。
Apollo客户端和Portal会从Meta Server获取服务的地址(IP+端口),然后通过服务地址直接访问。
接下来我们开始创建数据库
创建ApolloPortalDB,可以根据实际情况选择通过手动导入SQL,文件位于
以MySQL原生客户端为例:
source /your_local_path/portaldb/V1..0__initialization.sql
我们用Navicat执行该脚本
这里portal首页对于的数据库就创建成功了
接下来创建ApolloConfigDB,可以根据实际情况选择通过手动导入SQL
scripts/db/migration/configdb/V1..0__initialization.sql
以MySQL原生客户端为例:
source /your_local_path/configdb/V1..0__initialization.sql
这里两个数据库就创建成功了
注意:注:ApolloConfigDB需要在每个环境部署一套,如fat、uat和pro分别部署3套ApolloConfigDB,PortalConfigDB fat、uat和pro三者共用一个数据库,不需要部署多套
在数据库安装完成之后,在正式部署之前,需要对数据库中的一些具体的参数进行调整,Apollo自身的一些配置是放在数据库里面的,所以需要针对实际情况做一些调整。
调整ApolloPortalDB配置
配置项统一存储在ApolloPortalDB.ServerConfig表中,也可以通过管理员工具 - 系统参数页面进行配置,无特殊说明则修改完一分钟实时生效。
1.apollo.portal.envs - 可支持的环境列表
默认值是dev,如果portal需要管理多个环境的话,以逗号分隔即可(大小写不敏感),如:
DEV,FAT,UAT,PRO
如果还有支持FAT环境,设置为如下
现在首页要管理多个环境,需要做下面的配置
1、只在数据库添加环境是不起作用的,还需要为apollo-portal添加新增环境对应的meta server地址
Apollo Portal需要在不同的环境访问不同的meta service(apollo-configservice)地址,所以我们需要在配置中提供这些信息。默认情况下,meta service和config service是部署在同一个JVM进程,所以meta service的地址就是config service的地址。
使用程序员专用编辑器(如vim,notepad++,sublime等)打开apollo-portal-x.x.x-github.zip中config目录下的apollo-env.properties文件。
假设DEV的apollo-configservice未绑定域名,地址是1.1.1.1:8080,FAT的apollo-configservice绑定了域名apollo.fat.xxx.com,UAT的apollo-configservice绑定了域名apollo.uat.xxx.com,PRO的apollo-configservice绑定了域名apollo.xxx.com,那么可以如下修改各环境meta service服务地址,格式为${env}.meta=http://${config-service-url:port},如果某个环境不需要,也可以直接删除对应的配置项(如lpt.meta):
dev.meta=http://1.1.1.1:8080
fat.meta=http://apollo.fat.xxx.com
uat.meta=http://apollo.uat.xxx.com
pro.meta=http://apollo.xxx.com
注意dev中config service也可以部署多个实现集群,这里需要将配置修改为
http://1.1.1.1:8080,http://2.2.2.2:8080
2、apollo-client在新的环境下使用时也需要做好相应的配置
通过Spring Boot的配置文件
可以在Spring Boot的application.properties或bootstrap.properties中指定apollo.meta=http://config-service-url
2.organizations - 部门列表
Portal中新建的App都需要选择部门,所以需要在这里配置可选的部门信息,样例如下:
[{"orgId":"TEST1","orgName":"样例部门1"},{"orgId":"TEST2","orgName":"样例部门2"}]
接下来,我们需要调整 调整ApolloConfigDB配置的配置,重点在于修改ServerConfig表中,修改完成后生效
不同的环境需要对自己环境的ApolloConfigDB数据库下面的ServerConfig表进行修改
主要是在表中配置注册中心的地址。就是config service进程的地址,默认config service端口是8080,如果dev上面部署了多个config serice进程
上面数据库表中填写如下:
在DEV环境的ApolloConfigDB.ServerConfig表中设置eureka.service.url为:中间用逗号隔开
http://1.1.1.1:8080/eureka/,http://2.2.2.2:8080/eureka/
注意这里在数据库中一定要填写本环境中全部config service进程的地址
注1:这里需要填写本环境中全部的eureka服务地址,因为eureka需要互相复制注册信息
注2:注2:如果希望将Config Service和Admin Service注册到公司统一的Eureka上,那这里就要填写公司统一的Eureka集群的地址,不要忘了/eureka/
不过有些公司自己已经有了一套Eureka,如果希望把Apollo的Config Service和Admin Service也注册过去实现统一管理的话,可以按照如下步骤操作:
1. 配置Config Service不启动内置Eureka Server
1.1 1.5.0及以上版本
为apollo-configservice配置apollo.eureka.server.enabled=false
即可,通过bootstrap.yml或-D参数等方式皆可。
1.2 1.5.0之前的版本
修改com.ctrip.framework.apollo.configservice.ConfigServiceApplication,把@EnableEurekaServer
改为@EnableEurekaClient
@EnableEurekaClient
@EnableAspectJAutoProxy
@EnableAutoConfiguration // (exclude = EurekaClientConfigBean.class)
@Configuration
@EnableTransactionManagement
@PropertySource(value = {"classpath:configservice.properties"})
@ComponentScan(basePackageClasses = {ApolloCommonConfig.class,
ApolloBizConfig.class,
ConfigServiceApplication.class,
ApolloMetaServiceConfig.class})
public class ConfigServiceApplication {
...
}
2. 修改ApolloConfigDB.ServerConfig表中的eureka.service.url
,指向自己的Eureka地址
比如自己的Eureka服务地址是1.1.1.1:8761和2.2.2.2:8761,那么就将ApolloConfigDB.ServerConfig表中设置eureka.service.url为:
http://1.1.1.1:8761/eureka/,http://2.2.2.2:8761/eureka/
需要注意的是更改Eureka地址只需要改ApolloConfigDB.ServerConfig表中的eureka.service.url
即可,不需要修改meta server地址。默认情况下,meta service和config service是部署在同一个JVM进程,所以meta service的地址就是config service的地址,修改Eureka地址时不需要修改meta server地址。
3、接下来要修改config service 进程访问数据库的配置,配置apollo-configservice的数据库连接信息
解压apollo-configservice-x.x.x-github.zip
用程序员专用编辑器(如vim,notepad++,sublime等)打开config目录下的application-github.properties文件
填写正确的ApolloConfigDB数据库连接串信息,注意用户名和密码后面不要有空格!
修改完的效果如下:
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
注:由于ApolloConfigDB在每个环境都有部署,所以对不同的环境config-service需要配置对应环境的数据库参数
4.配置apollo-adminservice的数据库连接信息
解压apollo-adminservice-x.x.x-github.zip
用程序员专用编辑器(如vim,notepad++,sublime等)打开config目录下的application-github.properties文件
填写正确的ApolloConfigDB数据库连接串信息,注意用户名和密码后面不要有空格!
修改完的效果如下:
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
注:由于ApolloConfigDB在每个环境都有部署,所以对不同的环境admin-service需要配置对应环境的数据库参数
5.配置apollo-portal的数据库连接信息
解压apollo-portal-x.x.x-github.zip
用程序员专用编辑器(如vim,notepad++,sublime等)打开config目录下的application-github.properties文件
填写正确的ApolloPortalDB数据库连接串信息,注意用户名和密码后面不要有空格!
修改完的效果如下:
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
上面就完成全部的配置了,接下来我们就可以启动apollo了
我们首先启动config service进程
然后在启动admin service 进程,最后在去启动portal,apollo启动成功之后数据会默认放在/opt目录,所以一定要保证该目录具有可读写权限