# 关于 nacos 的说明

## 简介

* Nacos 是阿里巴巴开源的 动态服务发现、配置管理和服务治理 平台,常用于微服务架构。它支持 Dubbo、Spring Cloud 等框架,适合构建云原生应用。

## 下载


## 简单使用

* 下载后解压, 然后 cd 到 解压目录
unzip nacos-server-2.3.0.zip
cd nacos/bin

* 使用单机模式运行
sh startup.sh -m standalone

* 启动后, 可以通过浏览器访问控制台: http://localhost:8848/nacos, 默认用户名/密码:nacos/nacos

## Nacos 控制台配置
* 先到 命名空间/namspace 创建 namespace

* 命名空间ID尽量固定一个值,因为这个值需要配置到项目的 bottstrap.yml 文件中, 如果不设置,系统会默认随机生成一个

* 然后设置命名空间名,这个也需要统一, 如 server1
* 确定后,则会创建一个新的命名空间,如果未设置命名空间ID,则会随机生成一个,这个ID用于每一个项目的 bootstrap.yml 里的nacos namespace 配置

* 进入 Nacos 控制台 > 配置管理 > 配置列表, 选择上一步创建的命名空间 server1

* 创建页面里面有个 Data ID 和 Group, 需要参照各项目的 src/main/resources/bootstrap.yml 文件中的 data-id 和 group 来设置, 参看各项目的 nacos 目录中的相关说明
* 配置格式 需要选择 YAML

* 配置内容各不相同, 按照项目需求来配置,如
myconfig:
    value: "Hello Nacos Config!"
## Nacos 作为注册中心
* pom.xml 添加依赖
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2022.0.0.0</version>
</dependency>

* 配置 application.yml
spring:
  application:
    name: nacos-service
  cloud:
    nacos:
    discovery:
      server-addr: 127.0.0.1:8848
      namespace: {namespaceID}
    config:
      server-addr: 127.0.0.1:8848
      namespace: {namespaceID}

* 开启注册, 在 SpringBootApplication 类上添加:
@EnableDiscoveryClient
@SpringBootApplication
public class NacosApplication {
public static void main(String[] args) {
SpringApplication.run(NacosApplication.class, args);
}
}

* 运行后可在 Nacos 控制台 看到 nacos-service 已注册

## Nacos 作为配置中心
* pom.xml 添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2022.0.0.0</version>
</dependency>

* 配置 bootstrap.yml
spring:
application:
name: nacos-config-service
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: {namespaceID}
file-extension: yaml

* Spring Boot 读取配置
@RestController
@RefreshScope // 实时刷新配置
public class ConfigController {
@Value("${myconfig.value}")
private String value;

@GetMapping("/config")
public String getConfig() {
return value;
}
}

* 访问 http://localhost:8080/config,返回 "Hello Nacos Config!"

* nacos 的 docker-compose 编排简单示例:
nacos:
image: nacos/nacos-server:v2.5.0
links:
- redis:redis
- mysql:mysql
environment:
- PREFER_HOST_MODE=hostname
- MODE=standalone
- NACOS_AUTH_IDENTITY_KEY=serverIdentity
- NACOS_AUTH_IDENTITY_VALUE=security
- NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789
# 权限
#- NACOS_AUTH_ENABLE=true
#- NACOS_AUTH_TOKEN_EXPIRE_SECONDS=18000
volumes:
- ./data/nacos:/home/nacos/data
- ./data/logs/nacos:/home/nacos/logs
ports:
- "8848:8848"
- "9848:9848"

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部