1.准备基础环境 3台linux虚拟机(jdk+nacos)
1.1配置网络
在虚拟机设置里面选择桥接方式,这样可以关联虚拟网卡和宿主机网卡
修改网卡配置
vi /etc/sysconfig/network-scripts/ifcfg-enp33
先让它动态分配一个ip地址
修改ONBOOT=yes
然后执行
service network restart
如果失败,参考 解决问题
再设置静态ip地址
vi /etc/sysconfig/network-scripts/ifcfg-enp33
修改为下面的内容,没有就新增
BOOTPROTO=static
IPADDR=前三部分和宿主机保持一致,最后一部分自定
NETMASK=和宿主机保持一致
GATEWAY=和宿主机保持一致
执行
service network restart
检查是否配置成功
ip addr
最后配置DNS
检查NetManager的状态:systemctl status NetworkManager.service
如果没有启动,执行systemctl restart NetworkManager.service 启动网络管理服务
检查NetManager管理的网络接口:nmcli dev status
检查NetManager管理的网络连接:nmcli connection show
设置dns:nmcli con mod enp0s3 ipv4.dns "10.126.118.11 9.9.9.8" dns尽量和宿主机的保持一致
让dns配置生效:nmcli con up enp33
1.2配置hosts
vi /etc/hosts
配置本机的hostname到ip地址的映射
例如:
10.192.119.11 master
1.3关闭防火墙
关闭linux机器上的防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
关闭windows的防火墙
后面要搭建集群,防火墙可能会导致无法互相连接,会导致搭建失败
1.4配置yum(可配可不配)
yum clean all
yum makecache
yum install wget
1.5安装JDK
将jdk-8u131-linux-x64.rpm上传到虚拟机中,可以使用xshell上传(家庭版是免费,可去官网获取下载链接)
安装JDK:rpm -ivh jdk-8u131-linux-x64.rpm
配置jdk相关的环境变量
修改配置vi .bashrc
添加下面的内容
export JAVA_HOME=/usr/java/latest
export PATH=$PATH:$JAVA_HOME/bin
执行source .bashrc 使之生效
测试jdk安装是否成功:java -version
1.6在另外2个虚拟机中安装CentOS集群
按照上述步骤,再安装2台一模一样环境的linux机器
安装好之后,在每台机器的hosts文件里面,配置好所有的机器的ip地址到hostname的映射关系
比如说,的hosts里面
10.126.118.xxx name1
10.126.118.xxx name2
10.126.118.xxx name3
1.7配置3台CentOS为ssh免密码互相通信
首先在三台机器上分别各自执行下面的命令生成自己的文件:ssh-keygen -t rsa
生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下
在三台机器上分别各自进入目录,拷贝自己的公钥文件为authroized_keys文件,让三台机器先各自对自己免密码ssh可以登录
cd /root/.ssh
cp id_rsa.pub authorized_keys
将公钥复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了
接着配置三台机器互相之间的ssh免密码登录,在每台机器上执行下面的命令
使用ssh-copy-id -i hostname命令就可以将本机的公钥拷贝到指定hostname的authorized_keys文件中
输入ssh hostname 验证是否免密成功
输入logout可以退出远程连接的机器,回到本机
1.8 准备nacos,本机要提前装好maven以及git
使用git命令拉取nacos源码
git clone https://github.com/alibaba/nacos.git
下载好了之后使用命令提示窗口进入到nacos所在目录
cd nacos/
输入下面的命令进行编译
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U ,1个小时左右
可能或出现的错误有maven版本不匹配,jdk版本不匹配等,修改对应软件和nacos所需的版本一致
也可能出现 Failed to execute goal org.xolstice.maven.plugins:protobuf-maven-plugin:0.5.0.....的错误,我这边的做法是修改版本
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.6.1</version>
编译通过了之后执行此方法ls -al distribution/target/
最后在下面目录中把tar.gz结尾的service文件上传到3台服务当中去
cd distribution/target/
tar -zxvf nacos.service..... 解压文件,出现一个nacos目录
2.nacos集群部署
进去到nacos/conf目录下,重点关注cluster.conf以及application.properties配置文件
2.1修改cluster.conf.example文件,配置3台机器的节点
重命名cluster.conf.example,去掉example,配置三台机器的地址和端口号,默认端口号是8848
2.2修改application.properties文件,配置数据库
首先使用MySQL数据库,需要在数据库中执行nacos-mysql.sql初始化数据库里的表之类的东西,注意如果版本小于5.6 sql语句中对当前时间的设置会报错,需要把
NOT NULL DEFAULT CURRENT_TIMESTAMP
改为:
DEFAULT NULL
另外配置mysql允许远程连接 修改数据库名=mysql中的表user中的字段host从localhost为%即可
然后分别修改nacos机器中他们的application.properties文件,在里面修改数据库配置
放开mysql的注释
spring.datasource.platform=mysql
db.num=1
db.url.0=xxx
db.user=xx
db.password=xxx
2.3 启动nacos
分别进入三台机器的bin目录,执行startup.sh,检查logs目录下的start.out启动日志,如果启动成功就可以了,访问任何一个节点的8848端口的/nacos地址,进入nacos控制台,可以看到nacos集群的具体情况
有可能出现不识别./startup.sh指令的情况,需要修改启动脚本的文本格式
vi startup.sh
输入 :set ff 看下是什么格式,如果不是unix,输入 :set ff=unix 回车,退出vi模式,这时执行./startup.sh启动nacos
最后观察日志启动成功之后,
在宿主机上输入任意虚拟机的ip:8848/nacos即可访问
大功告成