天翼云分布式消息服务RabbitMQ使用Java代码示例
文档简介:
普通方式:
ConnectionFactory factory = new ConnectionFactory();
// 设置连接地址,可在控制台概览->节点查看,推荐用vip,vpc内可使用vpcIp
factory.setHost("vip_address,ex:192.168.90.2");
factory.setPort(5671);
// 设置用户名密码,需要在控制台先创建
factory.setUsername("username");
factory.setPassword("password");
普通方式:
ConnectionFactory factory = new ConnectionFactory();
// 设置连接地址,可在控制台概览->节点查看,推荐用vip,vpc内可使用vpcIp
factory.setHost("vip_address,ex:192.168.90.2");
factory.setPort(5671);
// 设置用户名密码,需要在控制台先创建
factory.setUsername("username");
factory.setPassword("password");
// 设置Vhost,需要在控制台先创建
factory.setVirtualHost("/");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
for (int i = 0; i < 100; i++) {
String message = "Hello rabbitMQ!" + i;
// 填写交换器名称 和 路由键
channel.basicPublish("交换器名称", "路由键", null, message.getBytes(StandardCharsets.UTF_8));
System.out.println(" [x] Sent '" + message +"'");
TimeUnit.SECONDS.sleep(1);
}
//关闭频道和连接
channel.close();
connection.close();
SSL连接方式:
// 设置keycert 密码,默认rabbit
char[] keyPassphrase = "rabbit".toCharArray();
KeyStore ks = KeyStore.getInstance("PKCS12");
// 设置keycert路径,可在控制台下载
ks.load(new FileInputStream("F:\\tmp\\ssl\\client\\rabbit-client.keycert.p12"), keyPassphrase);
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, keyPassphrase);
// 设置keystore
char[] trustPassphrase = "rabbitstore".toCharArray();
KeyStore tks = KeyStore.getInstance("JKS");
// 设置keystore路径
tks.load(new FileInputStream("F:\\tmp\\ssl\\keystore\\rabbitstore"), trustPassphrase);
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
tmf.init(tks);
SSLContext c = SSLContext.getInstance("TLSv1.2");
c.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
ConnectionFactory factory = new ConnectionFactory();
// 设置连接地址,可在控制台概览->节点查看,推荐用vip,vpc内可使用vpcIp
factory.setHost("vip_address,ex:192.168.90.2");
factory.setPort(5671);
// 设置用户名密码,需要在控制台先创建
factory.setUsername("username");
factory.setPassword("password");
// 设置Vhost,需要在控制台先创建
factory.setVirtualHost("/");
factory.setConnectionTimeout(30 * 1000);
factory.setHandshakeTimeout(30 * 1000);
factory.setShutdownTimeout(0);
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
for (int i = 0; i < 100; i++) {
String message = "Hello rabbitMQ!" + i;
channel.basicPublish("", "test", null, message.getBytes(StandardCharsets.UTF_8));
System.out.println(" [x] Sent '" + message +"'");
TimeUnit.SECONDS.sleep(1);
}
//关闭频道和连接
channel.close();
connection.close();
ConnectionFactory factory = new ConnectionFactory();
// 设置连接地址,可在控制台概览->节点查看,推荐用vip,vpc内可使用vpcIp
factory.setHost("vip_address,ex:192.168.90.2");
factory.setPort(5671);
// 设置用户名密码,需要在控制台先创建
factory.setUsername("username");
factory.setPassword("password");
// 设置Vhost,需要在控制台先创建
factory.setVirtualHost("/");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
for (int i = 0; i < 100; i++) {
String message = "Hello rabbitMQ!" + i;
// 填写交换器名称 和 路由键
channel.basicPublish("交换器名称", "路由键", null, message.getBytes(StandardCharsets.UTF_8));
System.out.println(" [x] Sent '" + message +"'");
TimeUnit.SECONDS.sleep(1);
}
//关闭频道和连接
channel.close();
connection.close();
SSL连接方式:
// 设置keycert 密码,默认rabbit
char[] keyPassphrase = "rabbit".toCharArray();
KeyStore ks = KeyStore.getInstance("PKCS12");
// 设置keycert路径,可在控制台下载
ks.load(new FileInputStream("F:\\tmp\\ssl\\client\\rabbit-client.keycert.p12"), keyPassphrase);
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, keyPassphrase);
// 设置keystore
char[] trustPassphrase = "rabbitstore".toCharArray();
KeyStore tks = KeyStore.getInstance("JKS");
// 设置keystore路径
tks.load(new FileInputStream("F:\\tmp\\ssl\\keystore\\rabbitstore"), trustPassphrase);
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
tmf.init(tks);
SSLContext c = SSLContext.getInstance("TLSv1.2");
c.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
ConnectionFactory factory = new ConnectionFactory();
// 设置连接地址,可在控制台概览->节点查看,推荐用vip,vpc内可使用vpcIp
factory.setHost("vip_address,ex:192.168.90.2");
factory.setPort(5671);
// 设置用户名密码,需要在控制台先创建
factory.setUsername("username");
factory.setPassword("password");
// 设置Vhost,需要在控制台先创建
factory.setVirtualHost("/");
factory.setConnectionTimeout(30 * 1000);
factory.setHandshakeTimeout(30 * 1000);
factory.setShutdownTimeout(0);
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
for (int i = 0; i < 100; i++) {
String message = "Hello rabbitMQ!" + i;
channel.basicPublish("", "test", null, message.getBytes(StandardCharsets.UTF_8));
System.out.println(" [x] Sent '" + message +"'");
TimeUnit.SECONDS.sleep(1);
}
//关闭频道和连接
channel.close();
connection.close();