nacos官方文档:Nacos 快速开始
一、使用步骤
1.下载nacos
官方推荐版本:2.0.3
历史版本下载:发布历史 | Nacos
2.基本使用
1)配置文件: nacos下载到本地并解压后,可以在 nacos/conf 下的application.properties 中 修改nacos等端口等配置信息。
2)nacos启动:nacos的启动文件在 nacos下的 bin 目录中,在bin目录中打开命令行 输入:
//后面加-m standalone 为启动单机模式,不加默认启动集群模式
startup.cmd -m standalone
后直接运行,运行成功后弹出nacos启动界面,界面如果未反应需点击回车。
3)nacos Web界面: nacos启动成功后打开浏览器输入 :localhost:8848/nacos
进入登陆界面,用户名密码默认为 nacos;
3.spring cloud简单使用
1)新增配置:配置管理nacos比较重要的一个功能,我们可以在nacos 本地网站中配置列表新增配置,配置内容为key value形式;
2)拉取配置:首先在项目中添加依赖:
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>${version}</version>
</dependency>
请求示例:
try {
String serverAddr = "localhost:8848"; //nacos地址
String dataId = "{dataId}"; //创建配置的id
String group = "{group}"; //创建配置的组
Properties properties = new Properties();
properties.put("serverAddr", serverAddr);
ConfigService configService = NacosFactory.createConfigService(properties);
String content = configService.getConfig(dataId, group, 5000);
System.out.println(content);
} catch (NacosException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
3)ListenerAPI使用:
nacos 定义了一个Listenr监听器以监听某一配置项的修改
configService.addListener(dataId, group, new Listener(){
@Override
public Excutor getExecutor() {
return null;
}
@Override
public void receiveConfigInfo(String configInfo){
System.out.println("receiveConfigInfo");
}
});
3.javaSDK服务注册
1)首先在项目中添加依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discover</artifactId>
<version>2.2.8.RELEASE</version>
</dependency>
2) 服务注册使用示例:
NamingService naming = NamingFactory.createNamingService("serveAddr");
//参数分别为:服务名称、ip、端口、集群
naming.registerInstance("serviseName", "11.11.11.11", 8888, "TEST1");
3) 服务发现:
发现所有服务:
NamingService naming = NamingFactory.createNamingService("serveAddr");
for(Instance instance : naming.selectInstances("userviceName","health-info true or false")){
System.out.println(instance);
}
4) 服务订阅:
订阅某一个服务:
Naming.subscribe("serviceName",event->{
if(event instanceof NamingEvent) {
System.out.println(((NamingEvent) event).getServiceName());
System.out.println(((NamingEvent) event).getInstances());
}
})
4.SpringCloud服务注册
1)首先在项目中添加依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discover</artifactId>
<version>2.2.8.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.8.RELEASE</version>
</dependency>
2)在bootstrap.properties 配置文件中添加
spring.cloud.nacos.config.server-addr=127.0.0.1:8848 //服务地址
spring.application.name=example //服务名称
server.port //服务端口
3)示例持久化: 在配置文件中添加
spring.cloud.discovery.eqhemeral = false