问题标签 [spring-cloud-bus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-boot - Spring bus rabbit amqp客户端长时间空闲时断开连接
我使用 amqp mvn 框架设置了带有 Spring Boot 服务的 rabbitmq,以便我可以远程刷新配置。最初一切正常,但随后连接断开。
下面的错误堆栈 还链接:https ://docs.google.com/document/d/1Hk3DnA7dMIMevjvoew2Shy5OQsShizrPKRys_U2lghM/edit?usp=sharing
知道为什么空闲连接会下降。心跳设置为 10 秒。Rabbitmq 启用了 ssl。
java - 为什么 spring-cloud-config 示例测试需要旋转配置服务器?
我想为我的配置服务器编写单元/集成测试,所以我检查了这个链接。有一个用 注释的类,还有一个用注释@SpringBootTest
的函数。为什么需要这个函数,因为有注释?startConfigServer()
@BeforeClass
@SpringBootTest
我还可以为配置服务器编写哪些其他单元测试用例和集成测试?我还在使用 Spring Cloud Stream Kafka 和 Spring Cloud Bus,同时启用了 Spring Security 基本身份验证。
spring - SpringCloud-Bus 不使用 webhook 客户端刷新
SpringCloud 使用 spring-cloud-config-monitor 自动刷新消息总线的配置。它使用 github 的 webhook。每次更新配置完成后,请求的结果是: github webhook response,但是配置只在config-server中更新,config-client没有更新,使用的config类用@RefreshScope注解。是什么原因?
豆类:</p>
java - Spring Cloud Stream 绑定可视化
通过设置以下属性启用绑定执行器端点后:management.endpoints.web.exposure.include=bindings
我应该看到绑定(消费者)属性。
但是,在我添加了 spring cloud bus 依赖并启用了 spring cloud bus 之后,我只能看到 springCloudBus 的绑定属性,但看不到我在项目中创建的绑定。
问题:如何确保我们在启用spring cloud bus后仍然可以看到我们创建的绑定?
当我设置spring.cloud.bus.enabled=false
时,我得到以下结果
设置后spring.cloud.bus.enabled=true
,我只能看到 springCloudBus 的属性
复制步骤:
从https://github.com/HLTan94/SpringCloudStreamBindingsDemo克隆项目
放
spring.cloud.bus.enabled
执行
curl -X GET http://localhost:9999/bindings
spring - 使用 git webhook、spring cloud bus 和应用程序自动刷新进行配置更改
如果我有三个 Spring Boot 应用程序,例如 Person、Customer、Order,spring.application.name 分别为 person、customer、order,并且每个应用程序在 github Person.yml、Customer.yml、Order.yml 中都有配置。每个应用程序都有两个实例运行,例如 Person1、Person2、Customer1、Customer2、Order1、Order2,所有这些都设置为从 github 读取配置,并且还具有使用 rabbitmq 的 spring 云总线依赖项,它们都订阅了 rabbitmq 代理
就像 Spring cloud config server setup 一样,使用 rabbitmq 与 Spring cloud bus 一起运行,并从上面的 github 存储库中读取配置。/monitor
并且配置服务器的端点有 github webhook 。
当我对 Person.yml 进行配置更改并保存它时,github 将发布到/monitor
configserver 的端点。配置服务器现在会将这些更改发布到 rabbitmq 代理。
此时,由于所有应用程序都订阅了 rabbitmq,所有应用程序实例都会被触发,因此 person1、person2、customer1、customer2、order1、order2 都将尝试访问配置服务器,并且只有 person1 和 person2 会更新更改。或者只有 person1 和 person2 应用程序被触发并且它们访问配置服务器,因为更改只针对 Person.yml。
spring - Spring Cloud Bus 对 Google CloudPubSub 的支持
我们是否有用于广播状态更改的 Spring CloudBus 的 Google CloudPubSub 支持路线图?
spring-cloud-config - Spring Cloud Config (Server) Monitor 不通过 RabbitMQ 向客户端发送事件
我正在使用Spring Boot / 2.1.0.RELAESE
and Spring Cloud Dependencies / Greenwich.M3
,考虑以下项目,具有以下依赖项:
- https://github.com/dnijssen/configuration
- https://github.com/dnijssen/configurationclient,依赖:
spring-boot-starter-actuator
spring-boot-starter-web
spring-cloud-starter-bus-amqp
spring-cloud-starter-config
- https://github.com/dnijssen/configurationserver,依赖:
spring-boot-starter-actuator
spring-cloud-config-monitor
spring-cloud-starter-stream-rabbit
spring-cloud-config-server
因此,我通过 Git 存储库(即https://github.com/dnijssen/configurationconfigurationserver
)获取属性,当进行更改时,我将手动触发端点(仅用于测试)。应该通过 RabbitMQ 发送一个事件,我使用以下 Docker 命令启动:configurationclient
/monitor
configurationserver
这给了我以下回应:["*"]
在我的以下控制台输出configurationserver
:
但是 myconfigurationclient
似乎没有收到任何事件,因此不会刷新自己。
我在这里想念什么?
亲切的问候,
丹尼斯·奈森
microservices - 刷新没有队列的 Spring Cloud Config
使用 Spring Cloud Config 时,GIT 中的配置更改在微服务启动期间只读。当您使用 Actuator 时,也可以手动调用 /actuator/refresh 端点。
实时传播此类更改的示例涉及 Spring Bus Cloud,它需要安装 RabbitMQ、Kafka,对我来说,做这么简单的事情似乎有点过头了。它还需要在每个服务中添加队列依赖。
当我使用 Eureka 或其他发现服务时,所有实例都已注册并且易于使用。缺少的一点是在实例上调用 /actuator/refresh,它的配置发生了变化。
我错过了什么,还是应该写一些类似这里描述的自定义解决方案? https://naumoski.co.za/2017/12/20/spring-boot-config-server-and-client-with-refreshing-context/
java - Spring Cloud Binder:降低双重引导的成本
我们使用 Spring Cloud Config ( Dalston.SR5
),云客户端使用 Spring Boot 2.x、Spring Cloud Bus 和Finchley.SR1
.
我从这个答案中了解到为什么云客户端应用程序使用 Config 为父级引导,SpringBootApplication
然后在绑定云总线后再次引导。我很好。
我的问题是有没有办法区分这两个引导请求?
我问的原因是我们的配置服务器生成凭据并将它们返回给客户端进行身份验证。两个引导程序意味着两组凭据,只有一组被使用,这是一种浪费。
据我所知,每次都发送相同的引导有效负载ConfigServicePropertySourceLocator
,这使 Config 没有机会。
是否有覆盖/挂钩,以便我可以让 Config 知道不要第二次生成凭据?
(我可以从配置/服务器端解决,但这有点绝望,而且我不愿意尝试管理状态 - 跨越两个恰好相隔约 20 秒的其他相同请求。)
我目前最好的想法是按照以下方式进行子类化PropertySourceBootstrapConfiguration
和更新spring.factories
:
在发出任何请求之前,我应该能够检查PropertySource
s 并查找第一个成功引导程序将返回的任何属性。如果存在,我会尝试为我的配置服务器获取额外的标签或配置文件ConfigServicePropertySourceLocator
,以便第二次获取。
我想这可以工作,但有没有更清洁/更 Spring Boot-y 的方式?
spring - 保护 Spring Cloud 配置的最佳方法是什么?
我有一个运行 spring 总线的 spring 云配置服务器。我想让对该服务器的调用安全:
- 当客户要求配置时。
- 调用 /monitor 时 - 由 webhook 使用。
这样做的最佳做法是什么?基本的?加密?有人可以提供一个工作示例吗?
谢谢!