【开发中遇到的小问题】SpringCloudBus配置Webhooks不生效(无法发送请求/monitor)以及能够发送请求但是无法刷新客户端配置解决方案

1. 配置Webhooks不生效以及能够发送请求解决方案

根据查阅官方文档以及其他资料发现,是因为缺少了依赖包

<dependency>
    <groupId>org.springframework.cloudgroupId>
    <artifactId>spring-cloud-config-monitorartifactId>
dependency>

加上依赖包后/monitor之后请求就可以正常发送了,但是接下来可能又会有下一个问题,那就是请求能够成功,而且消息队列也能够收到消息,但是客户端配置就是不刷新,那么解决方案就是下一点。

2. 发送请求/monitor成功但是无法刷新客户端配置解决方案

这种情况一般都是因为spring.cloud.bus.id出现了问题,我们先在客户端配置中设置一下日志打印级别,然后重启应用,再次修改配置

logging:
  level:
    org.springframework.cloud.bus: debug

查看控制台打印的日志:
在这里插入图片描述
通过查阅spring官方文档可以发现ServiceID的组成结构是app:index:id
【开发中遇到的小问题】SpringCloudBus配置Webhooks不生效(无法发送请求/monitor)以及能够发送请求但是无法刷新客户端配置解决方案_第1张图片
app :如果vcap.application.name存在,使用vcap.application.name,否则使用spring.application.name(默认值为application)

index :配置值的情况下优先使用vcap.application.instance_index,否则依次使用spring.application.index、local.server.port、server.port(默认值0)

id: 如果vcap.application.instance_id存在,使用vcap.application.instance_id,否则给一个随机值

解决以上问题有两种解决方案:

1. 如果我们的日志打印中,打印的index与实际的环境名称不一致可以进行一下配置
vcap:
  application:
    instance_index: ${spring.cloud.config.profile}
2. 我们也可以直接通过修改bus.id修改匹配规则,需要注意的是spring.application.namespring.cloud.config.profile需要提前配置好
spring:
  application:
    name: productService
  cloud:
    config:
      discovery:
        enabled: true #开启配置中心发现
        service-id: config-server #配置中心的名称
      profile: dev
    bus:
      id: ${spring.application.name}:${spring.cloud.config.profile}:${random.value}

这里我采用了第二种解决方案,配置完毕后重新启动客户端,并且修改配置信息

【开发中遇到的小问题】SpringCloudBus配置Webhooks不生效(无法发送请求/monitor)以及能够发送请求但是无法刷新客户端配置解决方案_第2张图片
查看打印出来的日志可以发现符合我们配置的规则,然后相关配置也得到了正常的刷新。

你可能感兴趣的:(SpringCloud,开发中遇到的小问题)