Nacos安装配置

导读:本篇文章讲解 Nacos安装配置,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

Nacos

Nacos,可以作为微服务中的服务注册中心(原Eureka),也可以作为配置中心
官网:https://nacos.io/en-us/
下载:https://github.com/alibaba/nacos/releases
启动:运行解压后bin目录下的startup脚本
关闭:运行解压后bin目录下的shutdown脚本
访问:http://localhost:8848/nacos

登录:用户名密码初始都是nacos 默认端口号
注意:startup.cmd(startup.sh)脚本,默认是集群启动(cluster),需要修改其文件中的MODE (rem 是注释符号)

rem set MODE="cluster" 
set MODE="standalone"

数据持久化

将数据库存储到MySQL中(搭建Nacos集群时需要)。

  1. 找到conf目录里的nacos-mysql.sql,根据脚本先创建对应的数据库nacos_config
    在这里插入图片描述

  2. 直接复制文件内容,执行脚本。
    在这里插入图片描述

  3. 关闭Nacos服务,修改配置文件application.properties(先备份一份)

    • 打开application.properties
    • 找到文字内容:Config Module Related Configurations,修改它下面的配置
    spring.datasource.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=root
    db.password=youdontknow
    

    以上配置,配置文件中都已经注释好了,只需要删除注释,并适当的修改内容,如数据库url,用户名和密码即可

  4. 测试,我们新创建一个用户(用户名和密码都是root)。

    • 生产密码,官网的原文如下

    生成加密密码, 在com.alibaba.nacos.console.utils.PasswordEncoderUtil.main函数中,将 nacos 改成你要改成的密码,运行即可得到加密有算法。注意盐值是随机的,所以生成密码每次可能不一样,请不要担心。

    因为使用的是Spring Security,所以我们也可以自己引入spring security的包,自己生成,如下:

    import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
    public class TestDemo {
        public static void main(String[] args) {
            System.out.println(new BCryptPasswordEncoder().encode("root"));
        }
    }
    // $2a$10$SH8W0WUaiDG4psmZdMRmzOA4hZJxKfohFhhaFEfEBm2XYLxU3a9D6
    
    1. 创建用户名或者密码的时候,用指定用户名密码即可
      INSERT INTO users (username, password, enabled) VALUES ('root', '$2a$10$SH8W0WUaiDG4psmZdMRmzOA4hZJxKfohFhhaFEfEBm2XYLxU3a9D6', TRUE);
      INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
      
    2. 登录测试:
      在这里插入图片描述

本次,我的数据库是MySQL8.0.16,在之前的Nacos版本,启动是会报错的。 好了,现在数据持久化我们就解决了,接下来我们需要进行集群的搭建。

集群搭建

注意:需要将启动脚本文件(startup.cmd/startup.sh)中的MODE修改为集群模式(cluster)

set MODE="cluster" 或者在启动时指定 -m 选项带上参数 startup.cmd -m cluster

配置集群配置文件

  1. 在nacos的解压目录nacos/的conf目录下,有配置文件cluster.conf,请每行配置成ip:port。(请配置3个或3个以上节点)

    将文件 cluster.conf.example 拷贝一份,改名叫cluster.conf, 其文件内容格式如下:
    192.168.16.101:8847
    192.168.16.101:8848
    192.168.16.101:8849

  2. 将windows的nacos文件复制三份,分别修改其下的application.properties文件的端口号,然后分别启动。(自己尝试了修改脚本,没改好)

  3. 使用Nginx进行负载均衡

    upstream nacos_proxy{
        ip_hash; #每个请求按照ip的hash结果分配,同一个ip的访客固定访问一个后端服务器
        server 192.168.0.135:8847;
        server 192.168.0.135:8848;   
        server 192.168.0.135:8849;
    }	
    server {
        listen       8888;
        server_name  localhost;
    
    	location /nacos {
            proxy_pass http://nacos_proxy/nacos;
            proxy_set_header Host $host;
            proxy_set_header X-Forward-For $remote_addr;
        }
    }
    
  4. 访问:http://127.0.0.1:8888/nacos/
    在这里插入图片描述

SpringBoot使用Nacos

  1. 使用Spring Cloud Alibaba,所以在父工程(聚合工程,打包方式是pom)pom.xml中增加 spring cloud alibaba
     <dependencyManagement>
        <dependencies>
            <!--spring cloud alibaba-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba-dependencies.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>  
        </dependencies>
     </dependencyManagement>
    
  2. 其它微服务也需要引入相关的依赖:
     <!--spring cloud Alibaba nacos-->
     <dependency>
          <groupId>com.alibaba.cloud</groupId>
          <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
      </dependency>
    
  3. application.yml 配置nacos的地址
spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8888 # nacos服务集群
  1. 启动类加上注解,启动服务发现
    @EnableDiscoveryClient // 启动服务发现
    @SpringBootApplication
    public class GatewayApplication {
        public static void main(String[] args) {
            SpringApplication.run(GatewayApplication.class, args);
        }
    }
    

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/78262.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!