Nacos之服務註冊發現
一 新建module 名稱爲 threeday。
pom配置如下。
<dependencies>
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-discovery-spring-boot-starter</artifactId>
<version>0.2.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
二 main方法爲
@SpringBootApplication
public class ThreeMain {
public static void main(String[] args) {
SpringApplication.run(ThreeMain.class,args);
}
}
三 controller 代碼
@RestController
@RequestMapping("discovery")
public class DiscoveryController {
@NacosInjected
private NamingService namingService;
@GetMapping(value = "/get")
public List<Instance> get(@RequestParam String serviceName) throws NacosException {
return namingService.getAllInstances(serviceName);
}
}
四 properties爲
nacos.discovery.server-addr=127.0.0.1:8848
server.port=8082
五 啓動main方法,並訪問 http://localhost:8082/discovery/get?serviceName=example
發現返回爲空,這是因爲這時候我們還沒有註冊
六 啓動第一天的服務端口爲8081,並執行
curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=example&ip=127.0.0.1&port=8081'
- 返回數據爲
[{"instanceId":"127.0.0.1#8081#DEFAULT#DEFAULT_GROUP@@example","ip":"127.0.0.1","port":8081,"weight":1.0,"healthy":true,"cluster":{"serviceName":null,"name":"","healthChecker":{"type":"TCP"},"defaultPort":80,"defaultCheckPort":80,"useIPPort4Check":true,"metadata":{}},"service":null,"metadata":{}}]
服務已經註冊和發佈成功。
理解 nacos 是通過restful風格的api來提供服務的註冊和發現功能
github 倉庫是