Springcloud Nacos基本操作代码实例
nacos是什么
和eureka,zookeeper,consul相同,nacos也是一个注册中心组件咯,当然是,不过它不仅仅是注册中心。nacos也是一个配置中心,比如springcloud中的config,将配置文件版本化管理。那么nacos到底是什么呢, 总结为官网一句话就是:nacos 致力于帮助您发现、配置和管理微服务。nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
下面仅介绍nacos的配置,不涉及深层的原理。
1.安装和下载
选择合适稳定的版本即可。下载完直接解压即可。
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访问地址
密码也是默认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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。