SpringCloud Alibaba Nacos笔记

                          注意

1,命名空间将服务隔离:不同命名空间的服务不能调用,若调用则会提示(Load balancer does not have available server for client:“负载均衡没有可用于客户端的服务器”)

一,Nacos配置
Nacos的默认端口号是8848
在conf文件夹下的application.properties中可以修改配置
Nacos远程请求配置的优先级
①:直接写的配置优先级最高----> 扩展配置 ----> 共享配置
②:当某一条属性在三个配置中都有时 按照优先级覆盖
③:扩展配置的优先级 ext-config[X] X越大优先级越高

spring:
  application:
    name: service1

###########Nacos配置的优先级
#     直接写的配置优先级最高---->  扩展配置  ---->  共享配置
#      当某一条属性在三个配置中都有时  按照优先级覆盖
#   多个扩展配置的优先级   ext-config[X]    X越大优先级越高
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848   #配置中心的IP地址
        #没有配置具体的dataId 而是通过拼接获取
        file-extension: yaml      #获取dataId 根据你的applicationName加上此处的后缀设置就是dataId   即: service1.yaml
        namespace: 925f061a-c27a-4636-8e0d-9e6a08bddd44  #命名空间的ID
        group: TEST_GROUP #分组


########### 扩展dataId 即:获取多个配置文件###########
        #扩展配置1   在默认group 并且不会动态刷新
        ext-config[0]:
         data-id: etc-config-common1.properties
       #扩展配置2  有分组 但同样不会动态刷新
        ext-config[1]:
         data-id: etc-config-common2.properties
         group: GLOBALE_GROUP
       #扩展配置2  有分组  可以动态刷新
        ext-config[2]:
         data-id: etc-config-common3.properties
         group: REFRESH_GROUP
         refresh: true
#########共享配置文件##########也可理解为一次扩展多个?
#!!!!!!!!!!!!!!!!!!!注意这种方式只支持在DEFAULT_GROUP中的配置文件,其他自定义分组的文件是读取不到的,所以多个分组建议用上面的
#          #设置你要共享的配置的dataId
#        shared-dataids: etc-config-common1.properties,etc-config-common2.properties,etc-config-common3.properties
#        #开启那些配置的动态刷新
#        refreshable-dataids: etc-config-common1.properties,etc-config-common2.properties,etc-config-common3.properties

二,Nacos集群的配置与启动
首先Nacos集群的启动命令为:startup.cmd -m cluster
在Nacos集群中每一个Nacos的配置文件application.properties中都需要指定自己的ip地址

nacos.inetutils.ip-address=127.0.0.1

其次在conf文件夹下有一个名为cluster.conf.example的文件
将他的名字改为cluster.conf,之后再里面写上集群中所有Nacos服务节点的IP地址

#it is ip
#example
127.0.0.1:8848
127.0.0.1:8849
127.0.0.1:8850

Nacos集群也会自动选举出一个Leader,当该Leader挂掉后并不影响集群,他们会自动重选一个Leader

三,Nacos服务发现
①:每一个生产者和消费者的身份都可以自由灵活的转换,只需要修改添加配置即可,
Nacos服务发现配置

server:
  port: 56020
spring:
  application:
    name: nacos-consumer
  cloud:
    nacos:
      discovery:  #设置服务发现中心的地址
        server-addr: 127.0.0.1:8848
        # 将该服务注册到dev 下面两个不写的话默认注册到public空间
        namespace: 925f061a-c27a-4636-8e0d-9e6a08bddd44  
        cluster-name: DEFAULT   #默认分组

Nacos消费者——>服务列表——>负载均衡——>Feign远程调用——>Nacos生产者

②:Nacos服务中心默认的负载均衡模式为:轮询—即:ABAB…一人一次
③:在Nacos服务中心中点击服务列表—>详情,可以对服务进行上线or下线,下线的服务将无法使用,重新点击上线即可继续使用
Feign远程调用

/*
* Feign远程调用
* 即:创建一个接口用来作为Feign的客户端
* 在接口名注解 @FeignClient 来表示他是一个远程调用客户端  value是服务的名称  在nacos配置中心服务列表中的服务名称
*接口中每一个方法就是你需要调用的生产者的方法,只需要从生产者中copy过来就行
* */
@FeignClient(value = "nacos-provider")
public interface DiscoveryFeignClient {
    @GetMapping("/service")
    public String service1();
}

在Controller中使用Feign:


    //动态注入配置 Feign远程调用客户端
    @Autowired
    DiscoveryFeignClient discoveryFeignClient;

    @GetMapping("/service")
    public String getProviderService(){
    //使用Feign远程调用
        String service1 = discoveryFeignClient.service1();
        return "Consumer Service"+"|"+service1;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值