Springcloud Nacos基本操作代码实例

 更新时间:2020年12月07日 14:43:09   作者:梦泽千秋  
这篇文章主要介绍了Springcloud Nacos基本操作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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中

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

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

http://localhost:8848/nacos/

密码也是默认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;
  }
}

启动项目发现

在服务列表可以查看到,而且很多详细信息可以自行查看,且配置多个项目的时候,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;
  }
}

在配置中心配置信息。

用自己的controller测试。

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

一些配置信息含义

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

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

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

本篇所有代码均在GitHub:

https://github.com/MaTsukun/springcloud2020

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 解决IDEA中快捷键Alt+Enter不能使用的问题

    解决IDEA中快捷键Alt+Enter不能使用的问题

    这篇文章主要介绍了解决IDEA中快捷键Alt+Enter不能使用的问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Spring Boot如何使用JDBC获取相关的数据详解

    Spring Boot如何使用JDBC获取相关的数据详解

    这篇文章主要给大家介绍了关于Spring Boot如何使用JDBC获取相关数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • Java执行cmd命令两种实现方法解析

    Java执行cmd命令两种实现方法解析

    这篇文章主要介绍了Java执行cmd命令两种实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • java zxing合成复杂二维码图片示例详解

    java zxing合成复杂二维码图片示例详解

    这篇文章主要为大家介绍了java zxing合成复杂二维码图片示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Java实现文件上传服务器和客户端

    Java实现文件上传服务器和客户端

    这篇文章主要为大家详细介绍了Java实现文件上传服务器和客户端,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Java中List<T>和List<?>的区别详解

    Java中List<T>和List<?>的区别详解

    这篇文章主要介绍了Java中List<T>和List<?>的区别详解。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • JAVA简单分组的算法实现

    JAVA简单分组的算法实现

    本文介绍了“JAVA简单分组的算法实现”,需要的朋友可以参考一下
    2013-03-03
  • java线程死锁代码示例

    java线程死锁代码示例

    这篇文章主要介绍了java线程死锁代码示例,分享了一个简单线程死锁的例子,需要的朋友可以参考下。
    2017-11-11
  • Java中MapStruct使用方法解析

    Java中MapStruct使用方法解析

    这篇文章主要介绍了Java中MapStruct使用方法解析,接受请求参数都会使用一个vo类,这个vo类里封装了所有需要接受的参数,然后对参数进行业务逻辑处理,处理完后会持久化处理, 使用MapStruct可以快速帮你解决转换工作,需要的朋友可以参考下
    2023-10-10
  • 浅谈Thread.sleep(0)到底有什么用

    浅谈Thread.sleep(0)到底有什么用

    为什么要用sleep,主要是为了暂停当前线程,把cpu片段让出给其他线程,减缓当前线程的执行,本文主要介绍了Thread.sleep(0)到底有什么用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06

最新评论