小编Abh*_*are的帖子

如何使用 JmsTemplate 进行手动确认并从 Rabbitmq 队列中删除消息

我将 RabbitMq(带有 JMS)与 jmsTemplate 一起使用,我能够使用来自 RabbitMq 队列的消息,但它正在自动进行确认。

我有它的搜索 API,但无法找到它。

如何设置手动确认。

在下面的代码中,当从队列中使用消息时,我想使用该消息调用 Web 服务,并取决于来自我想从队列中删除该消息的响应。我创建了一个项目,在其中使用监听器和其他项目,并调用从队列中读取消息

第一个项目:

package com.es.jms.listener;

import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.listener.MessageListenerContainer;
import org.springframework.jms.listener.SimpleMessageListenerContainer;

import com.rabbitmq.jms.admin.RMQConnectionFactory;

@Configuration
public class RabbitMqMessageListener {

    @Bean
    public ConnectionFactory jmsConnectionFactory() {
        RMQConnectionFactory connectionFactory = new RMQConnectionFactory();
        connectionFactory.setUsername("Username");
        connectionFactory.setPassword("Password");
        connectionFactory.setVirtualHost("vhostname");
        connectionFactory.setHost("hostname");

        return connectionFactory;
    }

    @Bean
    public MessageListener msgListener() {
        return new MessageListener() {
            public void onMessage(Message message) {

                System.out.println(message.toString());
                if (message instanceof TextMessage) {
                    try { …
Run Code Online (Sandbox Code Playgroud)

spring rabbitmq spring-jms spring-boot

6
推荐指数
1
解决办法
1万
查看次数

数据插入mongoDB Collection后,MongoDB事件触发器

我是MongoDB的新手.我已经使用MongoDB进行了"粗略"操作.

我想在MongoDB中使用事件功能,当数据插入到MongoDB时,应该发生事件,并且MongoDB本身应该在UI上立即发送数据.

这在MongoDB中可能吗?

如果是,那么如何?如果没有那么为什么?

提前致谢.

java jsp mongodb angularjs spring-boot

5
推荐指数
1
解决办法
3162
查看次数

将连接池与 Jedis 一起使用

我正在使用 Jedis 连接 REST 服务中的 Redis 服务器。

当我调用 Web 服务时,我想做jedis.hmgetjedis.exitshgetALL 之类的操作

例如:

jedis.hmget("employee:data:" + emp_user_id, "employee_id").get(0);
Run Code Online (Sandbox Code Playgroud)

我用于 Redis 的配置是:

Jedis jedis;

    JedisShardInfo shardInfo;

    @PostConstruct
    public void init() {

        try {

            shardInfo = new JedisShardInfo(Config.getRedisHost(), Config.getRedisPort());
            shardInfo.setPassword(Config.getRedisPassword());
            jedis = new Jedis(shardInfo);
            jedis.select(2);
        //jedis.se
        } catch (Exception e) {
            logger.error("Exception in init ------- > " + e);
        }

    }
Run Code Online (Sandbox Code Playgroud)

我知道 Jedis 不是线程安全的。当我同时使用 1000 个线程调用该服务时,我收到异常作为流的意外结束。我想知道 Jedis 池是线程安全的吗?无法为它找到特定的解决方案。

谢谢。任何帮助,将不胜感激。

java multithreading connection-pooling jedis spring-boot

5
推荐指数
1
解决办法
8966
查看次数