• nacos集群搭建入门


    1.准备基础环境 3台linux虚拟机(jdk+nacos)

    1.1配置网络

    在虚拟机设置里面选择桥接方式,这样可以关联虚拟网卡和宿主机网卡

    修改网卡配置

    vi /etc/sysconfig/network-scripts/ifcfg-enp33

    先让它动态分配一个ip地址

    修改ONBOOT=yes

    然后执行

    service network restart

    如果失败,参考https://www.cnblogs.com/bin-zhao/p/14145589.html 解决问题

    再设置静态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配置3CentOS为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即可访问

     大功告成

  • 相关阅读:
    Topic for paper reading
    Github
    APPIUM+Python+HTMLTestRunner(转)
    PyCharm 2016.3.2 汉化
    APPIUM 常用API(转)
    Python IDE PyCharm2016.3.2(转)
    APPIUM笔记
    将博客搬至CSDN
    碎碎念
    关于set或map的key使用自定义类型的问题
  • 原文地址:https://www.cnblogs.com/bin-zhao/p/14155839.html
Copyright © 2020-2023  润新知