您好,欢迎来到年旅网。
搜索
您的当前位置:首页Nacos 的安装配置及其常规操作

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: "eSecretKey012345670123456701234567012345670123456701234567"
            - 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}]}
    

Springboot Demo

在运行代码之前需要修改 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)

访问 可以看到以下输出:

Welcome to Spring Boot with Nacos!

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

可以看到以下输出:

Welcome to Spring Boot with Nacos!

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务