springcloudalibaba01

整合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
  • 查看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

  • 怎么在同一个代码开启多个应用

在这里插入图片描述
在这里插入图片描述

检测nacos是否注册成功了服务

springcloud提供了一个类 DiscoveryClient,这个类可以获取同一个服务的所有实例

  • getInstance()
@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;
    }
}
nacos服务领域模型

namaspace : 空间上的分离
group : 将多个微服务划分到一个组里面
service : 微服务
cluster :一个微服务,可能分布在多个地区,,一个地区上的所有实例的集群
instance : 实例

创建命名空间:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击详情:可以看到设置的集群
在这里插入图片描述

nacos元数据
  • 通过页面配置元数据
    在这里插入图片描述
  • 通过代码设置 metaData
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

在这里插入图片描述