Nacos 的安装配置及其常规操作

在微服务开发中 Nacos 作为 Springboot 和 Dubbo 框架常用的注册中心,本文将介绍怎么部署一个 Nacos 集群、Nacos 常用的 API 和 Springboot 如何使用 Nacos 进行微服务注册。

Nacos 安装

本次安装的 Nacos 为 2.3.2 版本,使用的平台是 k8s,请提前准备好 k8s 平台以及 kubectl 命令,以下是安装过程:

文件准备

git clone https://github.com/nacos-group/nacos-k8s.git  
cd .\nacos-k8s\

本次将创建一个有三个节点的 Nacos 集群,如果测试的 k8s 只有一台,需要修改删除 nacos-quick-start.yaml 文件中的以下部分:

affinity:
  podAntiAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
            - key: "app"
              operator: In
              values:
                - nacos
        topologyKey: "kubernetes.io/hostname"

一般在 Nacos 的使用中,我们都要开启密钥认证,同样在 nacos-quick-start.yaml 的 env 字段下添加以下内容:

          env:
            - name: NACOS_AUTH_ENABLE	
              value: "true"
            - name: NACOS_AUTH_TOKEN
              value: "eSecretKey012345678901234567890123456789012345678901234567890123456789"
            - name: NACOS_AUTH_IDENTITY_KEY
              value: "auth-key"
            - name: NACOS_AUTH_IDENTITY_VALUE
              value: "auth-value"

安装 Nacos 集群

添加完成之后执行以下命令进行集群的安装:

kubectl create -f ./deploy/mysql/mysql-local.yaml
kubectl create -f ./deploy/nacos/nacos-quick-start.yaml

在安装前需要先创建一个 Mysql 数据库,内部需要给 Nacos 初始一些表结构,这次使用这个 Mysql 是官方已经初始化好的数据库。Nacos 官方建议使用 Mysql 作为数据存储。

Mysql 和 Nacos 并未使用存储卷,都用的是临时存储,如果有需要,需要自行指定卷进行挂载。

Nacos 的常用的 API

以下为 Nacos 的常用的接口:

  • 登录接口:

    
    curl -X POST '10.104.155.63:8848/nacos/v1/auth/login' -d 'username=nacos&password=nacos'
    '
    {"accessToken":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcxNzE1MTI0OH0.t7BjP6orK2YqZ-dFwnhDllT2mtod6tddpJyuRPjA58s","tokenTtl":18000,"globalAdmin":true,"username":"nacos"}
    
    
  • 查询已经注册的服务接口:

    
    curl -X GET '10.104.155.63:8848/nacos/v1/ns/service/list?pageNo=1&pageSize=10&accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcxNzE1MTI0OH0.t7BjP6orK2YqZ-dFwnhDllT2mtod6tddpJyuRPjA58s'
    {"count":2,"doms":["spring-cloud-config-extension","spring-cloud-gateway"]}
    
    
  • 查询 namespace 的接口:

    curl -X GET '10.104.155.63:8848/nacos/v1/console/namespaces?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcxNzE1MTI0OH0.t7BjP6orK2YqZ-dFwnhDllT2mtod6tddpJyuRPjA58s'
    
    {"code":200,"message":null,"data":[{"namespace":"","namespaceShowName":"public","quota":200,"configCount":0,"type":0}]}
    

10.104.155.63:8848 要改为自己 nacos 的 IP 地址。

Springboot Demo

已经准备好了一个 Demo,相关代码仓库的地址为https://gitee.com/next123/code/tree/master/nacos-test

在运行代码之前需要修改 nacos-test/src/main/resources/application.yaml 文件中的以下字段:

server-addr: 192.168.8.109:30848 # 将192.168.8.109:30848修改为你 Nacos 的 8848 端口

然后在 nacos-test 执行以下命令运行代码:

mvn package
cd targaet
java -jar spring-boot-nacos-example-1.0-SNAPSHOT.jar

输出以下内容代表代码运行成功:


  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.4.RELEASE)

2024-06-02 23:19:31.095  INFO 47444 --- [           main] com.example.nacos_test.DemoApplication   : No active profile set, falling back to default profiles: default
2024-06-02 23:19:32.455  INFO 47444 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=726522b2-581c-3e90-bc7b-edd2b4656fa5
2024-06-02 23:19:32.837  INFO 47444 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2024-06-02 23:19:32.865  INFO 47444 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2024-06-02 23:19:32.865  INFO 47444 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.38]
2024-06-02 23:19:32.975  INFO 47444 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2024-06-02 23:19:32.975  INFO 47444 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1842 ms
2024-06-02 23:19:33.068  WARN 47444 --- [           main] c.n.c.sources.URLConfigurationSource     : No URLs will be polled as dynamic configuration sources.
2024-06-02 23:19:33.069  INFO 47444 --- [           main] c.n.c.sources.URLConfigurationSource     : To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2024-06-02 23:19:33.075  WARN 47444 --- [           main] c.n.c.sources.URLConfigurationSource     : No URLs will be polled as dynamic configuration sources.
2024-06-02 23:19:33.075  INFO 47444 --- [           main] c.n.c.sources.URLConfigurationSource     : To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2024-06-02 23:19:33.370  INFO 47444 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2024-06-02 23:19:33.576  INFO 47444 --- [           main] o.s.s.c.ThreadPoolTaskScheduler          : Initializing ExecutorService 'Nacos-Watch-Task-Scheduler'
2024-06-02 23:19:34.535  INFO 47444 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2024-06-02 23:19:34.572  INFO 47444 --- [           main] c.a.c.n.registry.NacosServiceRegistry    : nacos registry, DEFAULT_GROUP demo 192.168.8.105:8080 register finished
2024-06-02 23:19:34.588  INFO 47444 --- [           main] com.example.nacos_test.DemoApplication   : Started DemoApplication in 5.143 seconds (JVM running for 5.659)

访问 http://127.0.0.1:8080/ 可以看到以下输出:

Welcome to Spring Boot with Nacos!

然后可以在 nacos 上可以看到已经注册了一个服务,如下图所示:

http://127.0.0.1:8080/ 可以看到以下输出:

Welcome to Spring Boot with Nacos!

然后可以在 nacos 上可以看到已经注册了一个服务,如下图所示:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

启明真纳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值