小编Sha*_*har的帖子

Springboot with Docker:在 spring boot 的 application.properties 中覆盖 RabbitMQ 主机 IP 属性的环境变量不起作用

我正在开发 Spring Boot 应用程序,我必须使用 RabbitMQ 作为消息代理。我没有在本地主机上使用 RabbitMQ,而是使用以下命令从 docker hub 使用 docker 镜像

docker run -d --name rabbit-name-management -p 15672:15672 -p 5672:5672 -p 15671:15671 -p 5671:5671 -p 4369:4369 rabbitmq:3-management
Run Code Online (Sandbox Code Playgroud)

所以它拉取图像并作为 docker 容器成功运行。

现在在我的 Spring Boot 应用程序中,我使用一个application.properties文件来连接,RabbitMQ如下所示:

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=*****
spring.rabbitmq.password=********
Run Code Online (Sandbox Code Playgroud)

我的spring boot docker文件

FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY encryptionKey.jks encryptionKey.jks
COPY UnlimitedJCEPolicyJDK8/* /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/
COPY target/ConfigServer-0.0.1-SNAPSHOT.jar ConfigServer.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","ConfigServer.jar"]
Run Code Online (Sandbox Code Playgroud)

我使用命令docker inspect <RABBITMQ_CONTAINER_ID>找出运行RabbitMQ的机器的IP地址。为了让它与 RabbitMQ 通信,我使用环境变量来覆盖 localhost 与运行 RabbitMQ 的容器的实际 IP 地址。docker 命令如下

docker run -p 8012:8012 -e …
Run Code Online (Sandbox Code Playgroud)

java rabbitmq docker spring-boot

3
推荐指数
1
解决办法
1150
查看次数

如何从数据库传递@KafkaListener中的groupId值?

我想将我的 spring mvc 应用程序与 Kafka 服务器连接以使用 kafka 消息。为此,我编写了 KafkaConsumer 类,如下所示。

@Service
public class KafkaConsumer {
    
    
    @KafkaListener(groupId = "my-group-id", topicPattern = "VID.*", containerFactory = SystemParameterConstants.KAFKA_LISTENER_CONTAINER_FACTORY)
    public void receivedMessage(@Payload String message) {
        logger.info("================ receivedMessage() ==================");
        logger.info("::: Message recieved from kafka ::: {}", message);
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            ...
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这里我有硬编码的组ID “my-group-id”,但我想从数据库读取这个groupId,以便我可以为不同的环境拥有不同的groupId。

请提出一个解决方案。谢谢!

apache-kafka spring-kafka

2
推荐指数
1
解决办法
1576
查看次数