某文件示例
package cn.xxx.crm.boss;import cn.xxxx.crm.manager.mq.rabbit.AliyunCredentialsProvider;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.UUID;
import java.util.concurrent.TimeoutException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;/*** @author zss* @date 2022/4/25 14:55* @Email:451682479@qq.com*/
public class MqTest {public static final String HOST = "qwer.mq-amqp.cn-hangzhou-111111-a.aliyuncs.com";public static final String resourceOwnerId = "qwert";public static final String USERNAME = "aaaaa";public static final String PASSWORD = "xxxx";public static final String V_HOST = "DevCrmHost1";public static final int PORT = 5672;private ConnectionFactory factory;private Connection connection;@Beforepublic void before() {factory = new ConnectionFactory();factory.setHost(HOST);factory.setPort(PORT);factory.setVirtualHost(V_HOST);factory.setUsername(USERNAME);factory.setPassword(PASSWORD);AliyunCredentialsProvider credentialsProvider = new AliyunCredentialsProvider(USERNAME, PASSWORD, resourceOwnerId);factory.setCredentialsProvider(credentialsProvider);factory.setAutomaticRecoveryEnabled(true);factory.setNetworkRecoveryInterval(5000);// 基于网络环境合理设置超时时间。factory.setConnectionTimeout(30 * 1000);factory.setHandshakeTimeout(30 * 1000);factory.setShutdownTimeout(0);}@Afterpublic void after() throws IOException {if (null != connection) {connection.close();}}@Testpublic void test() throws IOException, TimeoutException {connection = factory.newConnection();Channel channel = connection.createChannel();channel.exchangeDeclare("test-direct-exchange", "direct", true, false, false, null);channel.queueDeclare("test-queue1", true, false, false, new HashMap<String, Object>());channel.queueBind("test-queue1", "test-direct-exchange", "aaaa");// 开始发送消息。for (int i = 0; i < 100; i++) {// ${ExchangeName}必须在消息队列RabbitMQ版控制台上已存在,并且Exchange的类型与控制台上的类型一致。// BindingKey根据业务需求填入相应的BindingKey。AMQP.BasicProperties props = new AMQP.BasicProperties.Builder().messageId(UUID.randomUUID().toString()).build();channel.basicPublish("test-direct-exchange", "aaaa", true, props,("消息发送Body" + i).getBytes(StandardCharsets.UTF_8));String a = "消息发送Body" + i;System.out.println(a);}}
}