Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理官方文檔html
nacos.client(springboot)git
<!--子工程引入-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--父工程管理version-->
<properties>
<springcloudalibaba.version>0.9.0.RELEASE</springcloudalibaba.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${springcloudalibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
複製代碼
無
複製代碼
# yml對縮進有嚴格的要求,務必一致
spring:
cloud:
nacos:
discovery:
# 指定nacos server的地址
server-addr: localhost:8848
application:
# 服務名稱儘可能用-,不要用_,不要用特殊字符
name: user-center
複製代碼
nacos.servergithub
<nacos.client.version>1.0.0</nacos.client.version>
複製代碼
tar -xvf nacos-server-$version.tar.gz
cd ./nacos/bin
sh startup.sh -m standalone
複製代碼
原生寫(能夠經過整合ribbon,feign優化)spring
...
private final DiscoveryClient discoveryClient;
...
List<ServiceInstance> instances = discoveryClient.getInstances("lock-center");
String url = instances.stream()
.map(instance -> instance.getUri() + "/lock/test/{id}")
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("沒有當前實例"));
List<String> urls = instances.stream()
.map(instance -> instance.getUri() + "/lock/test/{id}")
.collect(Collectors.toList());
int i = ThreadLocalRandom.current().nextInt(urls.size());
log.info("請求的URl:{}",urls.get(i));
TblCar tblCar = restTemplate.getForObject(urls.get(i), TblCar.class, 4000002L);
複製代碼
# yml對縮進有嚴格的要求,務必一致
spring:
cloud:
nacos:
discovery:
metadata:
version: v1
複製代碼