Springcloud Nacos基本操作代码实例

作者:梦泽千秋 时间:2023-07-07 18:24:22 

Nacos是什么

和Eureka,zookeeper,consul相同,Nacos也是一个注册中心组件咯,当然是,不过它不仅仅是注册中心。Nacos也是一个配置中心,比如SpringCloud中的Config,将配置文件版本化管理。那么Nacos到底是什么呢, 总结为官网一句话就是:Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

下面仅介绍nacos的配置,不涉及深层的原理。

1.安装和下载

https://github.com/alibaba/nacos/releases

选择合适稳定的版本即可。下载完直接解压即可。

2.使用注意事项

启动单个nacos如果报错可以先去配置好数据库模式和单机模式启动。

conf文件夹下找到application.properties文件添加如下配置。根据自己的数据库情况配置。

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root

同理此目录下还有数据库的一些文件。导入自己的MySQL中

Springcloud Nacos基本操作代码实例

配置单机模式,在bin目录下面找到startup.cmd文件更改,设为standalone单机模式。

Springcloud Nacos基本操作代码实例

在bin目录下面启动cmd窗口,然后运行startup.cmd即可启动。默认端口8848访问地址

http://localhost:8848/nacos/

密码也是默认nacos

Springcloud Nacos基本操作代码实例

3.服务注册

编写测试的服务注册应用。

关键的pom依赖,其他的和之前的cloud应用一样。


  <dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
   </dependency>

yml文件


server:
port: 9003
spring:
application:
 name: nacos-payment-provider
cloud:
 nacos:
  discovery:
   server-addr: localhost:8848 #配置Nacos地址
management:
endpoints:
 web:
  exposure:
   include: '*'

测试controller


@RestController
public class PaymentController {
 @Value("${server.port}")
 private String serverport;

@GetMapping(value = "/payment/nacos/{id}")
 public String getpayment(@PathVariable("id") Integer id){
   return "Hello Nacos Discovery: " + serverport + "\t id: " + id;
 }
}

启动项目发现

Springcloud Nacos基本操作代码实例

在服务列表可以查看到,而且很多详细信息可以自行查看,且配置多个项目的时候,nacos可以自带负载均衡的功能。

4.配置中心

之前在config和bus中为了完成消息配置等的同步和全局广播需要费很大的功夫,而nacos直接省去了很多的复杂操作,用可视化的操作完成了config的配置。

创建配置应用类

pom关键的依赖


<dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
   </dependency>
   <!-- SpringCloud ailibaba nacos-->
   <dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
   </dependency>

application.yml


spring:
profiles:
#  active: dev #表示开发环境
#  active: test
  active: info

bootstrap.yml,比application的权限更大


server:
port: 3377
spring:
application:
 name: nacos-config-client
cloud:
 nacos:
  discovery:
   server-addr: localhost:8848 #Nacos服务注册中心地址
  config:
   server-addr: localhost:8848 #Nacos作为配置中心地址
   file-extension: yaml #指定yaml格式配置
   group: TEST_GROUP
   namespace: 8f9b7283-0c9a-45f8-92d5-ca116f3ed1b9
#${prefix}-${spring.profile.active}.${file-extension} dataid的格式
# ${spring.application.name}-${spring.profile.active}.${file-extension}
# nacos-config-client-dev.yml

配置类controller


@RestController
@RefreshScope
public class ConfigController {
 @Value("${config.info}")
 private String configInfo;

@GetMapping("/config/info")
 public String getConfigInfo() {
   return configInfo;
 }
}

在配置中心配置信息。

Springcloud Nacos基本操作代码实例

Springcloud Nacos基本操作代码实例

用自己的controller测试。

Springcloud Nacos基本操作代码实例

成功访问到配置的信息(此处是我之前设置好的其他配置信息)

一些配置信息含义

Springcloud Nacos基本操作代码实例

命名空间可以自己设置,相当于不同的工作区间。

Springcloud Nacos基本操作代码实例

Springcloud Nacos基本操作代码实例

在自己的yml文件中设置好不同的信息,就可以匹配不同地方的信息。

暂时的一些基本使用信息就这些,下章继续nacos的集群操作。

本篇所有代码均在GitHub:

https://github.com/MaTsukun/springcloud2020

来源:https://www.cnblogs.com/lin530/p/13992804.html

标签:Spring,cloud,Nacos,操作
0
投稿

猜你喜欢

  • 浅谈java的守护线程与非守护线程

    2023-11-25 06:50:23
  • Android基于开源项目xutils3实现下载

    2023-05-06 06:24:15
  • Java中List使用stream流转成map的几种方式详解

    2022-07-31 21:46:12
  • Java实现堆排序和图解

    2023-11-11 12:13:37
  • 关于重写equals()方法和hashCode()方法及其简单的应用

    2023-08-01 06:48:13
  • Spring与Shiro整合及加载权限表达式问题

    2023-10-01 09:29:50
  • Android日历控件PickTime代码实例

    2021-09-28 17:22:57
  • 解决VSCode调试react-native android项目错误问题

    2023-10-14 02:02:11
  • Android实现快递单号查询快递状态信息

    2023-04-03 14:51:14
  • Java正则多字符串匹配替换

    2021-12-16 02:24:48
  • SpringBoot 如何整合 ES 实现 CRUD 操作

    2022-03-24 03:10:31
  • 老生常谈 Java中的继承(必看)

    2023-06-21 11:59:51
  • Android定时器Timer的停止和重启实现代码

    2022-10-03 23:25:43
  • Java日期时间字符串和毫秒相互转换的方法

    2022-03-11 18:15:57
  • 详解JAVA 内存管理

    2023-01-13 04:35:51
  • Java8 中的ParallelStream

    2022-09-07 19:00:23
  • Android StickListView实现悬停效果

    2022-06-06 15:54:35
  • java文件操作之java写文件简单示例

    2023-10-21 14:37:13
  • Mybatis中Collection集合标签的使用详解

    2023-07-10 05:09:35
  • Android中ImageView的使用方法

    2023-11-19 02:03:41
  • asp之家 软件编程 m.aspxhome.com