nacos集群的搭建+持久化+测试(linux版)

准备

为了模拟真实的环境 准备三台虚拟机

我的虚拟机ip分别为

192.168.200.131
192.168.200.132
192.168.200.133

不会改端口的朋友详见这篇文章

linux的ip改为固定值(解决linux虚拟机ip每次都更换的问题)

官方文章的vip 指的就是类似于nginx的反向代理服务器 这里其他集群改单体 方便测试

在这里插入图片描述

在这里插入图片描述

ps:这里mysql 和nginx我也弄在一台虚拟机里面的 大家知道意思即可

下载nacos

首先每台虚拟机安装nacos 这里使用的是稳定版1.4.1
下载地址

在这里插入图片描述这里要插一句 默认启动就是集群般 如果不用集群 看官方文档
在这里插入图片描述

数据库配置

Nacos默认自带的是嵌入式数据库derby 我们需要改成mysql 让数据持久化

在这里插入图片描述
该文件导入到对应的数据库就可以了 我这里使用的是

ip:192.168.200.131的虚拟机

新建nacos数据库 导入即可
在这里插入图片描述

application.properties配置

在这里插入图片描述

对应的修改下 然后在该文件新增就可以了

注意 三台机器都要这么改 连接同一台数据库

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.200.131:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai
db.user=root
db.password=123456

在这里插入图片描述

集群cluster.conf配置

在这里插入图片描述
复制一份新的文件 改成 cluster.conf 不改名不确定行不行 最好改一下 当做备份

cp cluster.conf.example cluster.conf

三个虚拟机的文件都要这么配 有相互守望的意思吧 大家改成不同的ip 端口相同就可以了
在这里插入图片描述
小总结 三台虚拟机 改application.properties和cluster.conf即可 然后各自启动

注意打开对应端口 或者粗暴点 直接关闭防火墙 否则会出错

既然是虚拟机 直接关闭就是了

systemctl status firewalld 查看防火墙状态

systemctl stop firewalld 关闭防火墙
在这里插入图片描述
shutdown 就是关闭nacos
startup就是开启nacos
cmd是windows下的启动命令
sh是linux下的启动命令

修改启动的jvm配置

修改对应的startup.sh
vim startup.sh
ps:如果虚拟机内存较小 建议修改jvm参数
如下 默认Xms 和Xmx都是2g 我改成了512m 毕竟虚拟机内存才2g 减少不必要的错误(建议修改)
在这里插入图片描述

nginx相关配置

这里用到的是ip后缀为133的虚拟机

装在哪里其实无所谓 主要是这台上刚好有 就用了。。。。

安装就不赘述了 直接上配置

这里有一点要说一下 之前为了图方便 使用了windows版的nginx 报了许多错误

希望大家就统一即可 使用linux版的nginx

这里有个小技巧 直接启动nginx 确保nginx能正常启动 再刷新配置

/usr/local/nginx/sbin/目录下 ./nginx

或者直接/usr/local/nginx/sbin/nginx 启动nginx
在这里插入图片描述
如果访问出现 欢迎来到nginx 则进行下一步 注意ip别打错哦

建议大家备份一下
vim nginx.conf
在这里插入图片描述
负载均衡配置
在这里插入图片描述
刷新nginx

/usr/local/nginx/sbin/nginx -s reload

建议多刷几次哦

访问成功!

用户名密码都是nacos 登录即可
在这里插入图片描述
还没完 测试开始

测试

依赖什么的我也不说了

说点关键的 开了nginx 直接访问对应的ip即可

bootstrap.yml
在这里插入图片描述
application.yml
在这里插入图片描述

添加配置 与上面对应
在这里插入图片描述

访问测试

启动类别忘了服务发现的注解

@EnableDiscoveryClient
@SpringBootApplication
public class NacosConfigClientMain3377
{
    public static void main(String[] args) {
        SpringApplication.run(NacosConfigClientMain3377.class, args);
    }
}
@RestController
@Slf4j
@RefreshScope//实现自动更新
public class ConfigController {


    @Value("${config.info}")
    private String configInfo;//这个变量是从nacos那里设置的 所以无法识别

    @GetMapping("/config/info")
    public String getConfigInfo() {
        return configInfo;
    }

}

访问成功
在这里插入图片描述
在修改一下配置
在这里插入图片描述
在这里插入图片描述
数据库的数据也修改了
在这里插入图片描述

启动另一个服务 看是否有服务发现的功能

重点在yml配置这里 改变配置的ip地址即可
在这里插入图片描述
注意 当服务启动 不为自动发现 只有访问了对应的接口 才会显示

在这里插入图片描述
完美解决

此次遇到的坑是windows的nginx貌似不大适配nacos还是什么 报了这个错

failed to req API:/nacos/v1/ns/instance after all servers xxx

还有些解决办法是加大虚拟机内存或删除nacos的data文件降低jvm的启动内存设置

大家都可以去试试

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值