整合springcloud 和 springcloudalibaba,,,
<dependencyManagement>
<dependencies>
<!--
每个springcloud的工具都有一个版本
每个springcloud alibaba的工具都有一个版本
统一版本
-->
<!-- 整合springcloud-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR12</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 整合springcloud alibaba-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>0.9.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
使用nacos
<!--springcloud 里面的nacos-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
</dependency>
还有一个alibaba里面的nacos,,,区别:
alibaba里面的nacos,,不依赖于 Alibaba Cloud SDK ,,更加灵活的使用nacos
查看nacos对应的版本:
去下载对应的版本,并启动: 输入:http://localhost:8848/nacos
项目中引用nacos的包
spring:
datasource:
url: jdbc:mysql://localhost:3306/content_center
hikari:
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
application:
name: content-center
cloud:
nacos:
discovery:
server-addr: localhost:8848
springcloud提供了一个类 DiscoveryClient
,这个类可以获取同一个服务的所有实例
@RestController
public class TestController {
@Autowired
DiscoveryClient discoveryClient;
@GetMapping("/test")
public List<ServiceInstance> setDiscoveryClient(){
// 查询指定服务名字 所有的实例
List<ServiceInstance> instances = discoveryClient.getInstances("user-center");
// 所有服务的名字
List<String> services = discoveryClient.getServices();
services.forEach(System.out::println);
return instances;
}
}
namaspace : 空间上的分离
group : 将多个微服务划分到一个组里面
service : 微服务
cluster :一个微服务,可能分布在多个地区,,一个地区上的所有实例的集群
instance : 实例
创建命名空间:
点击详情:可以看到设置的集群
spring:
cloud:
nacos:
discovery:
#指定nacos server的地址
server-addr: localhost:8848
# 配置命名空间的id 不能写名称
# namespace: f31bc1eb-efdb-4c9f-9d51-3afcc6951d4b
# 指定集群名字
# cluster-name: chengdu
metadata:
instance: hehe
version: v1