nacos安装及配置
nacos版本:3.0.2
需要jdk版本:64 bit JDK 17+
一、JDK安装及配置
jdk下载:https://jdk.java.net/java-se-ri/22
JDK配置:
vim /etc/profile export JAVA_PATH=/zjl/program/jdk_22 export PATH=$JAVA_PATH/bin:$PATH source /etc/profile
二、nacos安装及配置
1、下载
下载地址:https://www.nacos.io/download/nacos-server/
解压:unzip nacos-server-3.0.2.zip
2、配置
目录:/nacos/conf
2.1、配置集群
cp cluster.conf.example cluster.conf
vim cluster.conf
192.168.244.131:8848
192.168.244.132:8848
192.168.244.133:8848
2.2、初始化mysql数据库
创建数据库user:nacos,密码:zjl123
执行sql初始化语句:
sql语句目录 :/nacos/conf
sql语句文件: mysql-schema.sql
2.3、application.properties配置
关键配置:
nacos.server.main.port=8848 spring.sql.init.platform=mysql ### Count of DB: db.num=1 db.url.0=jdbc:mysql://192.168.244.131:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user=nacos db.password=zjl123 ### worked when nacos.core.auth.enabled=true ### The two properties is the white list for auth and used by identity the request from other server. nacos.core.auth.server.identity.key=zjlnacos nacos.core.auth.server.identity.value=zjl123 nacos.core.auth.plugin.nacos.token.secret.key=dXNlcm5hbWU6empsbmFjb3M7cGFzc3dvcmQ6empsMTIz
- 配置mysql数据库
- 配置3个鉴权相关配置,用于集群间的权限较验
- nacos.core.auth.enabled=true :nacos配置,用来启动鉴权
2.4、启动
目录 :/nacos/bin
启动:./startup.sh
三、springboot项目整合nacos注册中心
1、引入starter
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-discovery-spring-boot-starter</artifactId>
<version>0.2.12</version>
</dependency>
2、配置yml
nacos:
discovery:
server-addr: 192.168.244.131:8848,192.168.244.132:8848,192.168.244.133:8848
auto-register: true
username: zjltestnacos
password: zjlzjl123
- auto-register: true :这个配置是用来控制是否自动注册服务到Nacos的。如果设置为true,你的服务启动后会自动注册到Nacos中心。
- nacos.core.auth.enabled=true :nacos配置,用来启动鉴权
- 用户名密码是nacos后台-用户管理-里的用户名和密码
例子:
# 这里配置的是Nacos服务端的地址和端口。默认情况下,Nacos的服务端地址是127.0.0.1,端口是8848,而不是8748。请确保使用正确的端口。 nacos.discovery.server-addr=127.0.0.1:8748 # 如果你使用了Namespace,确保Namespace的ID是正确的。在你的Nacos控制台中查看Namespace的ID,并将其配置到nacos.discovery.namespace属性中。 nacos.discovery.namespace=8afda2b0-5b6c-4839-9bb5-ee9db41fae1e # 这个配置是用来控制是否自动注册服务到Nacos的。如果设置为true,你的服务启动后会自动注册到Nacos中心。确保这个配置项符合你的需求。 nacos.discovery.auto-register=true
3、启动项目
nacos后台查看注册信息

4、自定义注册配置(非必要)
package com.zjl.test.tick.config; import com.alibaba.nacos.api.annotation.NacosInjected; import com.alibaba.nacos.api.annotation.NacosProperties; import com.alibaba.nacos.api.exception.NacosException; import com.alibaba.nacos.api.naming.NamingService; import com.alibaba.nacos.api.naming.pojo.Instance; import com.alibaba.nacos.spring.context.annotation.discovery.EnableNacosDiscovery; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import javax.annotation.PostConstruct; import java.util.List; @Configuration @EnableNacosDiscovery(globalProperties = @NacosProperties(serverAddr = "192.168.244.131:8848")) public class NacosDiscoveryConfig { // 服务名称 @Value("${spring.application.name}") private String applicationName; // 服务的端口号 @Value("${server.port}") private Integer port; // 服务ip地址 @Value("${server.ip}") private String ip; @NacosInjected private NamingService namingService; // @PostConstruct 在依赖注入完成时执行注解的方法 @PostConstruct public void register() throws NacosException { // 注册服务 namingService.registerInstance(applicationName, ip, port); // 监听实现 try { List<Instance> instances = namingService.getAllInstances(applicationName); System.out.println("Initial service instances: " + instances); // You can implement your logic to handle service instance changes here } catch (Exception e) { e.printStackTrace(); } } }
四、springboot项目整合nacos配置中心
1、nacos控制台新建配置

2、配置maven
<dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>0.2.12</version> </dependency>
3、配置yml
nacos:
config:
data-id: test_yaml
type: yaml
bootstrap:
enable: true
server-addr: 192.168.244.131:8848,192.168.244.132:8848,192.168.244.133:8848
username: zjltestnacos
password: zjlzjl123
例子:
nacos.config.server-addr=127.0.0.1:7748 nacos.config.namespace=8afda2b0-5b6c-4839-9bb5-ee9db41fae1e nacos.config.data-id=springboot-bo
# 该属性定义了配置的类型。在这里,它设置为 properties,表示配置以属性文件的形式存在。 nacos.config.type=properties # 当设置为 true 时,该属性在应用程序的引导阶段启用 Nacos 作为配置源。通常用于在主应用程序上下文创建之前加载配置属性。 nacos.config.bootstrap.enable=true # 当设置为 true 时,该属性启用远程配置同步。这意味着应用程序将从 Nacos 服务器获取其配置。 nacos.config.enable-remote-sync-config=true
4、配置中心替换application.yml
4.1、yml只配置nacos配置中心的配置

4.2、其他配置转移到nacos配置中心

四、nginx代理nacos配置
1、监听8848端口,配置http模块
http {
upstream zjl_nacos_cluster {
server 192.168.244.131:8848;
server 192.168.244.132:8848;
server 192.168.244.133:8848;
}
server {
listen 8848;
error_log /zjl/program/nginx/error.log debug;
resolver 8.8.8.8 8.8.4.4 valid=300s;
location / {
proxy_pass http://zjl_nacos_cluster; # 代理到内部服务器
proxy_set_header Host $host; # 将原始请求头中的Host传递到后端服务器
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 将原始请求中的X-Forwarded-For头传递到后端服务器
proxy_set_header X-Forwarded-Proto $scheme; # 将原始请求协议传递到后端服务器
}
}
}2、监听9848端口,配置stream模块
stream {
upstream zjl_nacos_grpc {
server 192.168.244.131:9848;
server 192.168.244.132:9848;
server 192.168.244.133:9848;
}
server {
listen 9848;
proxy_pass zjl_nacos_grpc;
}
}

浙公网安备 33010602011771号