linux安装nacos_从零开始搭建Nacos高可用注册中心集群

  • 浅谈注册中心选型

  • 搭建Nacos高可用集群

    • 准备工作

    • 正式搭建

    • 遇到的问题

    • 总结

浅谈注册中心选型

在注册中心的选型上有多种选择,Spring Cloud Netflix技术栈会优选Eureka(当然也可以选择Consul),而基于Dubbo的服务注册与发现一般选择ZooKeeper较多。

d460a2f706635b06917281c00147a356.png
注册中心选型对比

Eureka基于AP,Eureka Server集群中任何一台机器宕机后整个集群仍然可以对外提供服务,但是数据会出现不一致;而ZooKeeper是基于CP来实现,当Leader不可用时,会对外停止服务然后进行Leader选择,这个时间段内ZooKeeper集群对外是不可用的,显然,这是牺牲了可用性来换取一致性。

而Consul属于非Java语言,上了生产以后维护和问题排查困难。

可以看到,其实基于CP和AP的注册中心都有着自己的局限,具体生产环境上的选择需要根据业务场景进行分析。

在今天的微服务技术栈中,Spring Cloud Alibaba渐渐火了起来,在Spring Cloud Alibaba中,官方首推Nacos作为注册中心。

下面是官方的一些介绍:

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

44b5285fb7dae97fee7ba318f5007e54.png
Nacos地图

本文将从实践出发,搭建一个Nacos服务注册中心的高可用集群。

搭建Nacos高可用集群

搭建出来的集群有3个Nacos Server。

准备工作

  1. 首先需要在三台虚拟机上安装好CentOS系统,并且安装好JDK。

    安装过程略。

  2. 编译Nacos :

  • git clone https://github.com/alibaba/nacos.git
  • mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

正式搭建

  1. 跳转到distribution/target目录

    38d074f4983c7ca3beceb33f15dd5162.png
  2. 使用WinSCP将nacos-server-1.4.0-SNAPSHOT.tar.gz压缩包上传到3台虚拟机上,然后解压缩

    tar -zxvf nacos-server-1.4.0-SNAPSHOT.tar.gz

  3. 进入压缩后的文件夹nacos,重命名cluster.conf.example,去掉example,配置三台机器的地址和端口号,默认端口号是8848

    192.168.1.104:8848
    192.168.1.105:8848
    192.168.1.106:8848
  4. 宿主机(Windows系统)上安装MySQL,创建一个nacos数据库,执行nacos-mysql.sql脚本文件

  5. 修改application.properties中的数据源配置

    spring.datasource.platform=mysql
    db.num=1
    # 数据源地址
    db.url.0=jdbc:mysql://192.168.1.102:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    # 用户名
    db.user=root
    # 密码
    db.password=1027
  6. 分别进入三台机器的bin目录,执行./startup.sh,检查logs目录下的start.out启动日志(cat start.out),如果启动成功就可以了,访问任何一个节点的8848端口的/nacos地址,进入nacos控制台,可以看到nacos集群的具体情况

    默认用户名和密码皆为nacos

遇到的问题

  1. 执行./startup.sh报错:/bin/bash^M: bad interpreter

    如果是在windows下编辑的脚本,到了linux下运行时会报出这样的错误/bin/bash^M:bad interpreter: No such file or directory这是因为编码的问题,需要进行编码转换。使用sudo vim xxx打开文件,:set ff可以看到当前的格式,应该是dos,使用set ff=unix,更改其格式,然后保存退出,就能正常的运行程序了

  2. 虚拟机Nacos Server连不上宿主机的mysql

    解决方案:https://blog.csdn.net/ruziwang/article/details/80361700

    grant all privileges on *.* to 'root'@'%' identified by '1027';

    本地mysql没有设置可以被远程访问到,所以需要执行上面的语句赋予虚拟机访问权限

  • root : 用户名
  • 1027: 密码

总结

本文探讨了Nacos高可用注册中心集群的搭建,在Nacos连接mysql失败问题上花费了不少时间,对于作者这样的Linux小白来说,多踩踩坑还是有好处的。原本以为很轻松地就搭建好了,没想到居然花费了大半天的时间,我得到的体会就是要细心细心再细心!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值