当前位置: 首页 > 知识库问答 >
问题:

Spring配置服务器没有发布到Rabbitmq

慕凌龙
2023-03-14

我已经从spring的initialzr生成了一个Spring Boot配置服务器。

我已经用brew安装了rabbitmq。initialzr是使用启动版本2.1.1.RELEASE和云版本Greenwich.M3生成的。

简单的rest服务连接到rabbitmq队列。配置服务器连接到gitlab配置报告。

但是,当我提交并推送更改时,服务应用程序不会反映该更改。推送完成后,配置服务器将收到日志消息。谁能说出可能出了什么问题?兔子控制台中似乎从未出现过任何消息。不过,我已经能够通过rabtmq通过执行器/总线刷新来刷新属性。

config-server在将更改提交到config-repo的employee-service.yml文件时记录消息:

2018-12-07 11:53:12.185  INFO 84202 --- [nio-8888-exec-1] o.s.c.c.monitor.PropertyPathEndpoint     : Refresh for: employee:service
2018-12-07 11:53:12.228  INFO 84202 --- [nio-8888-exec-1] trationDelegate$BeanPostProcessorChecker : Bean 'configurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$b43cc593] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-12-07 11:53:12.253  INFO 84202 --- [nio-8888-exec-1] o.s.boot.SpringApplication               : No active profile set, falling back to default profiles: default
2018-12-07 11:53:12.259  INFO 84202 --- [nio-8888-exec-1] o.s.boot.SpringApplication               : Started application in 0.072 seconds (JVM running for 3075.606)
2018-12-07 11:53:12.345  INFO 84202 --- [nio-8888-exec-1] o.s.cloud.bus.event.RefreshListener      : Received remote refresh request. Keys refreshed []
2018-12-07 11:53:12.345  INFO 84202 --- [nio-8888-exec-1] o.s.c.c.monitor.PropertyPathEndpoint     : Refresh for: employee-service
2018-12-07 11:53:12.377  INFO 84202 --- [nio-8888-exec-1] trationDelegate$BeanPostProcessorChecker : Bean 'configurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$b43cc593] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-12-07 11:53:12.398  INFO 84202 --- [nio-8888-exec-1] o.s.boot.SpringApplication               : No active profile set, falling back to default profiles: default
2018-12-07 11:53:12.402  INFO 84202 --- [nio-8888-exec-1] o.s.boot.SpringApplication               : Started application in 0.056 seconds (JVM running for 3075.749)
2018-12-07 11:53:12.489  INFO 84202 --- [nio-8888-exec-1] o.s.cloud.bus.event.RefreshListener      : Received remote refresh request. Keys refreshed []

配置服务器具有此应用程序。yml:

---

server:
  port: ${PORT:8888}

spring:
  cloud:
    bus:
      enabled: true
    config:
      server:
        git:
          uri: ${CONFIG_REPO_URI:git@gitlab.<somedomain>:<somegroup>/config-repo.git}
          search-paths:
          - feature/initial-repo

  main:
    banner-mode: "off"

和ConfigServerApplication.java:

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}

和这些渐变依赖关系:

dependencies {
    implementation('org.springframework.cloud:spring-cloud-config-server')
    implementation('org.springframework.cloud:spring-cloud-starter-stream-rabbit')
    implementation('org.springframework.cloud:spring-cloud-config-monitor')
    testImplementation('org.springframework.boot:spring-boot-starter-test')
    implementation('org.springframework.cloud:spring-cloud-stream-test-support')
}

服务具有此应用程序。yml:

---
server:
  port: 8092

management:
  security:
    enabled: "false"

  endpoints:
    web:
      exposure:
        include: 
        - '*'

spring:
  main:
    banner-mode: "off"

  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest

此bootstrap.yml:

---

spring:
  application:
    name: employee-service

  cloud:
    config:
      uri: 
      - http://localhost:8888
      label: feature(_)initial-repo

这些渐变相关性:

dependencies {
    implementation('org.springframework.boot:spring-boot-starter-web')
    implementation('org.springframework.cloud:spring-cloud-starter-config')
    implementation('org.springframework.cloud:spring-cloud-starter-bus-amqp')
    implementation('org.springframework.boot:spring-boot-starter-actuator')
    testImplementation('org.springframework.boot:spring-boot-starter-test')
}

这个主类:

@SpringBootApplication
public class EmployeeServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(EmployeeServiceApplication.class, args);
    }
}

这个控制器类:

@RefreshScope
@RestController
public class WelcomeController {

    @Value("${app.service-name}")
    private String serviceName;

    @Value("${app.shared.attribute}")
    private String sharedAttribute;

    @GetMapping("/service")
    public String getServiceName() {
        return "service name [" + this.serviceName + "]";
    }

    @GetMapping("/shared")
    public String getSharedAttribute() {
        return " application.yml [" + this.sharedAttribute + "]";
    }
}

共有1个答案

壤驷鸿祯
2023-03-14

试着用Maven而不是Gradle来创建和构建你的项目。

我也遇到了同样的问题。我有两个相同的应用程序,具有相同的RabbitMQ依赖关系,一个是用Maven构建的,另一个是用Gradle构建的。基于Maven的应用程序像预期的那样向RabbitMQ发布内容。用Gradle构建的同一个应用程序没有建立到RabbitMQ的连接,也没有发布事件。为了进一步澄清,我用Spring工具在Eclipse中运行了这两个应用程序。

 类似资料:
  • 我使用的是Spring 2.0.1。使用spring云总线发布并安装所有项目(2个服务和云配置服务器) 配置服务器还具有spring云配置监视器 我在我的Git reposroty中编辑文件(使用具有Spring Cloud Config本机配置文件的本地文件)。检测到更改,我在Cloud Config Server中看到以下行: 但是,其他服务都不会收到有关更新密钥的通知。 另一方面,如果我手动

  • 我一直在尝试掌握位于此处的spring boot config服务器:https://github.com/spring-cloud/spring-cloud-config在更彻底地阅读了文档之后,我能够解决我的大部分问题。然而,我不得不为基于文件的PropertySourceLocator编写一个额外的类 然后我将其添加到ConfigServiceBootstrapConfiguration.j

  • 我正在使用Spring Cloud Config服务器,能够检测来自git存储库的更改并将其传递给配置客户机。 有两种方法,我已经实现了: null 所以两者都工作得很好,那么使用Spring Cloud Bus有什么好处吗?或者在生产环境中,不使用Spring Cloud Bus会有什么问题吗?因为将需要额外的工作来设置RabbitMQ集群(HA)作为生产中的Spring云总线。 谢谢,大卫

  • 我连接RabbitMQ与斯普林云配置: 2.设置RabbitTemplate.set强制性(true)和setConfirmCallback(): 3.将消息发送到队列以调用发布者确认并打印日志。 但出版商确认没有工作。日志尚未打印。无论真假,日志都不应该缺席。

  • hprose 为发布服务提供了多个方法,这些方法可以随意组合,通过这种组合,你所发布的服务将不会局限于某一个函数,某一个方法,某一个对象,而是可以将不同的函数和方法随意重新组合成一个服务。 AddFunction 方法 AddFunction(name string, function interface{}, option ...Options) Service 该方法的用于发布一个函数(命名函

  • 问题内容: 我已经安装了运行的ElasticSearch服务器: 如何配置Java客户端以连接到该服务器?我刚刚: 但是,尝试连接后,我收到了: 如果我将Java客户端配置为: 我收到以下日志: 据我了解,这意味着这个新节点(应该是客户端节点)使自己成为新的主节点。而且我不会从日志中找到它并连接到任何其他节点。 服务器和客户端都在同一台计算机上启动。192.168.1.106:9200可从浏览器访