SpringCloud Alibaba——Nacos服务发现(学习记录)

前几天学习了Nacos,记录一下
Nacos是一个服务发现组件,也是用来管理微服务的配置
Nacos架构

引入依赖

先将SpringBoot项目引入SpringCloud,在pom文件中引入

<dependencyManagement>
        <!--整合SpringCloud-->
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <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>
        </dependencies>
    </dependencyManagement>

SpringCloud Alibaba

引入Nacos依赖,这里不需要指定版本,因为在spring-cloud-alibaba-dependencies下已经指定了版本

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
        </dependency>

Nacos

搭建Nacos Serve

下载对应版本的Nacos Server,跟spring-cloud-alibaba-dependencies版本保持一致,这也是为了生产环境下的稳定。
下载地址
下载好之后可以到Nacos查看文档。
Windows下cmd命令到nacos文件夹下的bin路径下,然后执行startup.cmd就可以启动Nacos了。
浏览器访问:http://localhost:8848/nacos,账号密码都是nacos
Nacos界面
在配置文件中进行配置:

spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
  application:
    name: user-center
server:
  port: 8081

启动项目之后就可以在控制台-服务列表查看注册上来的某个微服务了,这里必须要在spring的配置中配置:spring.application.name,不然的话项目是启动不起来的,控制台的服务名就是配置的名称
服务列表
再启动另一个端口的程序,点击详情就可以看到他集群下的微服务实例
详情

领域模型

领域模型
Namespace:实现隔离,默认是public
Group:不同服务可以分到一个组,默认DEFAULT_GROUP
Serbice:微服务
Cluster:集群,可以用于容灾
Instance:微服务实例

配置集群的名称,cluster-name: XXX,具体如下:
spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        cluster-name: BJ
        metadata:
          haha: hehe
          csea: ccc
  application:
    name: user-center
server:
  port: 8081

这个时候,这个微服务就在BJ的这个集群下了
集群

命名空间

还可以在nacos的控制台创建新的空间
创建空间
创建之后就会有一个命名空间ID,拿这个ID在项目中进行配置,那个这个程序就会在这个空间下了

spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        cluster-name: BJ
        namespace: 9b74b8d1-94ba-44ea-955b-2e174d42a14a
        metadata:
          haha: hehe
          csea: ccc
  application:
    name: user-center
server:
  port: 8081

其他空间下的微服务

一个服务能找到另一个服务

我这里已经准备好了2个集成了Nacos并且注册到Nacos Server的微服务,接下来测试一个微服务能获取到另一个微服务的所有实例的地址信息

@Autowired
    private DiscoveryClient discoveryClient;

    @GetMapping("test2")
    public List<ServiceInstance> getInstances() {
        // 查询指定服务的所有实例的信息
        return this.discoveryClient.getInstances("user-center");
    }

实例
如果将微服务停止,那是获取不到的
除了Nacos可以作为服务发现组件,还有consul/eureka/zookeeper

元数据

Nacos数据(如配置和服务)描述信息,如服务版本、权重、容灾策略、负载均衡策略、鉴权配置、各种自定义标签 (label),从作用范围来看,分为服务级别的元信息、集群的元信息及实例的元信息。
级别: 服务级别,集群级别,实例级别
作用:

  1. 描述微服务
  2. 微服务调用更灵活(如版本控制)
    比如V1版本的程序只能调用其他版本的V1程序,同理V2

元数据的配置,是以键值对的形式配置:

spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        metadata:
          haha: hehe
          csea: ccc
  application:
    name: user-center
server:
  port: 8081

元数据配置
除了配置的方式,也可以在控制台设置
控制台设计元数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值