Nacos 服务注册中心和配置中心搭建及使用记录

  本文记录的是centos7 下安装及集群配置

Nacos 是集服务注册及配置中心一体的, 是阿里巴巴的springCloud Alibb Nacos

Nacos = springCloud config + Eureka 的集合

Nacos 中文网站: https://nacos.io/zh-cn/docs/deployment.html

Nacos 下载地址: https://github.com/alibaba/nacos/releases

  下载 如图所示的版本, 上传至 centos7,   

上传后 解压:  

tar -zxvf  nacos-server-2.0.3.tar.gz

解压后的目录:

 conf目录下: 

 将 nacos-mysql.sql 中的脚本去mysql中执行, 目的是将在nacos页面创建的配置文件持久化保存至数据库, 集群下访问同一个数据库,防止出现数据不一致问题。 也将配置可以保存至svn等。

修改配置文件:  修改 application.properties

vim application.properties

 port 端口号, 集群中要修改,  A 服务器8847, B 服务器 8848

 mysql 的连接地址,按照自己本地的mysql连接地址,用户名密码修改。集群配置时,mysql数据库连接地址要一致, mysql数据库也可以做集群,主备容灾。

 集群设置 

修改配置文件: 进入 conf 文件夹, 修改 cluster.conf.example 为  cluster.conf

命令:

mv cluster.conf.example cluster.conf

编辑  cluster.conf

vi cluste.conf

添加两台部署了nacos的服务器ip, 记得在 application.properties文件中修改端口号

如下配置,两台服务器是写一样的

防火墙设置端口开放:

 A 服务器8847, B 服务器 8848

A 服务器 放开端口 (9848需要看 nacos/log/nacos.log中报出来的端口是哪一个就放哪一个)

firewall-cmd --zone=public --add-port=9848/tcp --permanent
firewall-cmd --zone=public --add-port=8847/tcp --permanent


防火墙重新加载
firewall-cmd --reload

查看已放开的端口
firewall-cmd --zone=public --list-ports


B 服务器 放开端口  (9849需要看 nacos/log/nacos.log中报出来的端口是哪一个就放哪一个)

firewall-cmd --zone=public --add-port=9849/tcp --permanent
firewall-cmd --zone=public --add-port=8848/tcp --permanent


防火墙重新加载
firewall-cmd --reload

查看已放开的端口
firewall-cmd --zone=public --list-ports

出现如下错误就是防火墙没有放开端口

 

启动: 进入 nacos/bin目录

以集群方式启动

./bin/startup.sh -m cluster


单机方式情启动
./bin/startup.sh -m standalone

如下 success 就是集群启动成功

集群访问: nacos 集群代理可以通过 lvs. nginx 负载代理集群。

浏览器输入: 页面登录帐号密码 nacos/nacos

http://192.168.10.129:8848/nacos

如下 集群节点出现两个就是集群部署成功

配置中心: 点击右边加号添加配置

写入如下 开发环境的配置信息  dev开发环境, prod生产环境 

代码引入及使用:

依赖:

  <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>


    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- 服务注册与发现 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.1.4.RELEASE</version>
        </dependency>

        <!-- 配置中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.1.4.RELEASE</version>
        </dependency>
    </dependencies>

使用配置中心时, springboot的文件需要使用 bootstrap.yml,  因为 bootstrap 优先于application

bootstrap.yml 配置

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.10.129:8848  服务注册发现地址  地址可通过nginx,lvs 负载代理
      config:
        server-addr: 192.168.10.129:8848   配置中心地址 地址可通过nginx,lvs 负载代理

        file-extension: yaml 配置中心文件的默认后缀
  application:
    name: member
  profiles:   版本控制 如  dev, prod
    active: dev
server:
  port: 8802

test:  配置中心覆盖的配置
  port: 8002

测试代码  

注意此注解: 

@RefreshScope    // 刷新配置,如配置中心修改了test.port, 代码中实时更新,不用重启服务

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author tangjiandong
 * @version 1.0
 * @description:
 * @date 2021年08月12日 17:11
 */
@RestController
@RefreshScope    // 刷新配置,如配置中心修改了test.port, 代码中实时更新,不用重启
public class TestController {

    @Value("${test.port}")
    private String port;

    @RequestMapping("/index")
    public String index()
    {
        return "member1: " + port;
    }
}

启动服务并访问:

配置中心修改配置:

服务中会有线程更新配置

页面刷新时,配置已更新

 

查看mysql数据库的配置:可以看到配置已经存库

服务注册发现: 查看服务名,

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值