1. 下载与启动
地址: https://nacos.io/zh-cn/docs/quick-start.html
这里下载的是 nacos-server-1.4.1.tar.gz
上传到服务器 cd /data1/nacos/
解压 tar -xzvf nacos-server-1.4.1.tar.gz
cd nacos/bin
启动单机模式 sh startup.sh -m standalone
查看ps -ef | grep nacos
打开服务器8848端口
浏览器访问
http://服务器IP:8848/nacos/index.html
2. 注册功能
(1) 增加nacos-provider模块
修改pom.xml
增加
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
修改application.yml文件
spring:
application:
name: nacos-provider
cloud:
nacos:
discovery:
server-addr: 地址:8848 #nacos地址:端口
namespace: 空间 # 空间
cluster-name: 集群 # 集群
group: 分组 #分组
server:
port: 9000
启动类增加@EnableDiscoveryClient注解
@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {
public static void main(String[] args) {
SpringApplication.run(NacosProviderApplication.class, args);
}
}
增加rest接口
@RestController
public class NacosProviderController {
@GetMapping(value = "/get")
public String get(@RequestParam String string) {
return "Hello Nacos Discovery " + string;
}
@GetMapping(value = "/path/{string}")
public String path(@PathVariable String string) {
return "Hello Nacos Discovery " + string;
}
}
(2) 增加nacos-consumer模块
修改pom文件
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
修改yml文件
spring:
application:
name: nacos-consumer
cloud:
nacos:
discovery:
server-addr: 地址:8848 #注册地址
namespace: 空间
cluster-name: 集群
group: 分组
server:
port: 9001
feign:
hystrix:
enabled: true #设置熔断调用
启动类
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(NacosConsumerApplication.class, args);
}
@LoadBalanced
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
增加feign调用
@FeignClient(value = "nacos-provider", fallback = NacosClientFallback.class)
public interface NacosClient {
@GetMapping(value = "/path/{string}")
String path(@PathVariable String string);
@GetMapping(value = "/get")
String get(@RequestParam String string);
}
@Component
@EnableFeignClients
public class NacosClientFallback implements NacosClient {
@Override
public String path(String string) {
return "服务 Nacos Discovery 异常 参数=" + string;
}
@Override
public String get(String string) {
return "服务 Nacos Discovery 异常 参数=" + string;
}
}
增加rest接口
@RestController
public class NacosConsumerController {
private final RestTemplate restTemplate;
@Autowired
private NacosClient nacosClient;
@Autowired
public NacosConsumerController(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
@RequestMapping(value = "/echo/{str}", method = RequestMethod.GET)
public String echo(@PathVariable String str) {
return restTemplate.getForObject("http://nacos-provider/path/" + str, String.class);
}
@RequestMapping(value = "/echo1/{str}", method = RequestMethod.GET)
public String echo1(@PathVariable String str) {
return nacosClient.path(str);
}
@RequestMapping(value = "/echo2/{str}", method = RequestMethod.GET)
public String echo2(@PathVariable String str) {
return nacosClient.get(str);
}
}
启动nacos-provider nacos-consumer
浏览器打开nacos地址
验证
http://localhost:9001/echo/测试
http://localhost:9001/echo1/测试1
http://localhost:9001/echo2/测试2
3. 配置功能
增加nacos-config模块
修改pom文件
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
增加bootstrap.yml
spring:
application:
name: nacos-config
cloud:
nacos:
config:
server-addr: nacos地址
namespace: 空间
file-extension: yaml #文件格式
cluster-name: 集群
group: 分组
server:
port: 9002
增加rest接口
@RestController
@RequestMapping("/config")
@RefreshScope
public class NacosConfigController {
@Value("${server.name:name123}")
private String name;
@Value("${port1:123}")
private Long port1;
@Value("${port:456}")
private Integer port2;
@GetMapping(value = "/param")
public String param() {
return "name=" + name + " port1=" + port1 + " port2=" + port2;
}
}
启动nacos-config
打开浏览器
验证
http://localhost:9002/config/param
地址