rabbitmq 第一个 hello world

本文详细介绍了如何使用RabbitMQ消息队列进行消息生产和消费。通过代码示例,展示了如何创建生产者和消费者,以及如何在两者之间传递消息。深入探讨了队列声明、消息持久化和消息确认等关键概念。

话不多说,直接上代码了

**
 * 创建一个生产者
 */
public class Producer {
    public static void main(String[] args) throws IOException, TimeoutException {
        //创建于服务器的物理连接
        /*
        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost("127.0.0.1");
        connectionFactory.setPort(5672);
        connectionFactory.setUsername("guest");
        connectionFactory.setPassword("guest");
        //选择一个厂库地址
        connectionFactory.setVirtualHost("/test");
        */

        //tcp 物理连接
        Connection connection = RabbitUtils.getConnection();  //使用工具类惊醒连接
        //创建一个通信通道
        Channel channel = connection.createChannel();
        //在通道上创建一个队列,声明并创建一个队列,如果队列已经存在则使用这个队列
        //第一个参数为队列名称id
        //第二个参数为是否持久化,false对应不持久化数据,MQ停掉数据就会丢失
        //第三个参数:队列是否私有化,false则代表所有消费者都可以访问,true代表之后第一次拥有他的消费者才能一直使用,其他消费者不可使用
        //第四个参数:是否自动删除,false代表连接停掉后不自动删除掉这个队列
        //第五个参数:其他额外的参数,null
        channel.queueDeclare("helloworld",false,false,false,null);

        //发送信息
        String message = "helloworld- wxt";
        //四个参数
        //1:exchange 交换机,暂时用不到,在后面的进行发布订阅时才会用到
        //2:队列名称
        //3:额外的设置属性
        //4: 需要传递的消息字节数
        channel.basicPublish("","helloworld",null,message.getBytes());

        //关闭通道
        channel.close();
        //关闭连接
        connection.close();

        System.out.println("消息发送成功");

}

}

 

/**
 * 创建一个消费者
 */
public class Consumer {

    public static void main(String[] args) throws IOException, TimeoutException {
        //常见连接
        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost("127.0.0.1");
        connectionFactory.setPort(5672);
        connectionFactory.setUsername("guest");
        connectionFactory.setPassword("guest");
        connectionFactory.setVirtualHost("/test");  //设置数据仓库
        Connection connection = connectionFactory.newConnection();
        //声明信道
        Channel channel = connection.createChannel();
        //声明队列
        channel.queueDeclare("helloworld",false,false,false,null);

        //创建一个消息消费者
        channel.basicConsume("helloworld",false,new Reciver(channel));
        //此处不用关闭

    }

}

 

/**
 * 消费者的实现类
 */
public class Reciver extends DefaultConsumer {

    private Channel channel;

    /**
     * 重写构造函数
     * @param channel
     */
    public Reciver(Channel channel) {
        super(channel);
        this.channel = channel;
    }

    /**
     * 对消息进行处理
     * @param consumerTag
     * @param envelope
     * @param properties
     * @param body
     * @throws IOException
     */
    @Override
    public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
        //super.handleDelivery(consumerTag, envelope, properties, body);
        //手动创建
        String retMessage = new String(body);
        //输出信息
        System.out.println("接收到的信息:"+retMessage);

        //签收信息,确认消息
        //envelope.getDeliveryTag()  获取这个消息的TagId
        //false 之确认签收当前的消息,设置为true的时候则代表签收改消费者所有未签收的消息。
        channel.basicAck(envelope.getDeliveryTag(),false);
    }
}
public class RabbitUtils {
    //创建于服务器的物理连接
    private static ConnectionFactory connectionFactory = new ConnectionFactory();
    static {
        //初始化参数
        connectionFactory.setHost("127.0.0.1");
        connectionFactory.setPort(5672);
        connectionFactory.setUsername("guest");
        connectionFactory.setPassword("guest");
        connectionFactory.setVirtualHost("/test");  //选择一个厂库地址
    }

    public static Connection getConnection(){
        try {
            return connectionFactory.newConnection();
        } catch (Exception e) {
            throw new RuntimeException(e+"rabbitMq 创建连接失败");
        }
    }


}

代码就是上面的,rabbitmq 环境搭建好以后就可以写代码使用了。

 

内容概要:本文介绍了一个基于MATLAB实现的无人机三维路径规划项目,采用蚁群算法(ACO)与多层感知机(MLP)相结合的混合模型(ACO-MLP)。该模型通过三维环境离散化建模,利用ACO进行全局路径搜索,并引入MLP对环境特征进行自适应学习与启发因子优化,实现路径的动态调整与多目标优化。项目解决了高维空间建模、动态障碍规避、局部最优陷阱、算法实时性及多目标权衡等关键技术难题,结合并行计算与参数自适应机制,提升了路径规划的智能性、安全性和工程适用性。文中提供了详细的模型架构、核心算法流程及MATLAB代码示例,涵盖空间建模、信息素更新、MLP训练与融合优化等关键步骤。; 适合人群:具备一定MATLAB编程基础,熟悉智能优化算法与神经网络的高校学生、科研人员及从事无人机路径规划相关工作的工程师;适合从事智能无人系统、自动驾驶、机器人导航等领域的研究人员; 使用场景及目标:①应用于复杂三维环境下的无人机路径规划,如城市物流、灾害救援、军事侦察等场景;②实现飞行安全、能耗优化、路径平滑与实时避障等多目标协同优化;③为智能无人系统的自主决策与环境适应能力提供算法支持; 阅读建议:此资源结合理论模型与MATLAB实践,建议读者在理解ACO与MLP基本原理的基础上,结合代码示例进行仿真调试,重点关注ACO-MLP融合机制、多目标优化函数设计及参数自适应策略的实现,以深入掌握混合智能算法在工程中的应用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值