RabbitMQ介绍(一)

因为项目需要提供多种对外输出,kafka, RocketMQ。RabbitMQ这些都是对外输出选项。因此简要学些和编写rabbitMQ例子

本文属于非常初级的RabbitMQ介绍,主要包含安装、发送消息以及控台台查看消息。

安装

RabbitMQ是Erlang语言编写的,因此需要先安装Erlang。 我在Windows10安装,按照官方文档需要64-bit supported version of Erlang。 可以在http://www.erlang.org/downloads下载Erlang。以管理员身份安装Erlang。
之后下载rabbitmq-server-3.7.11.exe,双击安装即可。

Windows上安装的官方文档在https://www.rabbitmq.com/install-windows.html

启动命令非常简单, 在安装命令的sbin目录中执行
rabbitmq-server.bat start
在这里插入图片描述

启动管理界面
官方文档 https://www.rabbitmq.com/management.html
rabbitmq-plugins enable rabbitmq_management
在这里插入图片描述
登录控制台, 默认用户和密码都是guest
http://127.0.0.1:15672
在这里插入图片描述

发送消息

下面是一个简单java发送例子。RabbitMQ有多重语言的客户端,我们选在最常用的java client
依赖包为

        <dependency>
            <groupId>com.rabbitmq</groupId>
            <artifactId>amqp-client</artifactId>
            <version>5.1.2</version>
        </dependency>

代码为

package com.yq.producer;

import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.ConnectionFactory;
import org.apache.commons.lang3.StringUtils;

import javax.websocket.SendResult;
import java.nio.charset.Charset;

/**
 * Simple to Introduction
 * className: SyncProducer
 *
 * @author EricYang
 * @version 2019/1/29 15:03
 */
public class SyncProducer {
    private static final String host = ConnectionFactory.DEFAULT_HOST;
    private static final int port = ConnectionFactory.DEFAULT_AMQP_PORT;
    private static final String virtualHost = ConnectionFactory.DEFAULT_VHOST;
    private static final String username = ConnectionFactory.DEFAULT_USER;
    private static final String password = ConnectionFactory.DEFAULT_PASS;
    private static final Charset UTF8 = Charset.forName("UTF-8");

    public static void main(String[] args) throws Exception {
        ConnectionFactory factory = new ConnectionFactory();
         // "guest"/"guest" by default, limited to localhost connections
        factory.setUsername(username);
        factory.setPassword(password);
        factory.setVirtualHost(virtualHost);
        factory.setHost(host);
        factory.setPort(port);

        Connection conn = factory.newConnection();
        Channel channel = conn.createChannel();

        AMQP.BasicProperties properties = null;
        String exchangeName = "name1";
        String routingKey = "key1.cc";
        String msg = "test data";

        try {
            channel.basicPublish(
                    exchangeName,
                    routingKey,
                    properties,
                    msg.getBytes(UTF8));
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
        finally {
            channel.close();
            conn.close();
        }

        System.out.println("done");
    }
}

查看消息

关于exchange和queue直接关系可以查看其它博客或者官方文档。
例如这篇博客 https://www.cnblogs.com/dwlsxj/p/RabbitMQ.html
本文直接简单使用topic类型的exchagne,然后通过key将消息路由到对应queue中
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值