rabbitmq - java client lib一二事
由于不可抗因素, 需要给对接方撸一个client的demo。基于比较老的jdk。
所幸找到了这里:http://www.rabbitmq.com/releases/rabbitmq-java-client
干脆拿第一版1.4.0开撸,以下demo:
import java.io.IOException;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.MessageProperties;
import com.rabbitmq.client.ConnectionParameters; public class NewTask { private static final String TASK_QUEUE_NAME = "your_xxx_queue"; public static void main(String[] argv)
throws java.io.IOException {
String hostName ="your.domain.name";
int portNumber = 5672;//AMQP.PROTOCOL.PORT
int ticket = 0;
ConnectionParameters params = new ConnectionParameters();
params.setUsername("username_xxx");
params.setPassword("password_xxx");
params.setVirtualHost("virutalhost_xxxx");
params.setRequestedHeartbeat(0);//TODO:
ConnectionFactory factory = new ConnectionFactory(params);
Connection connection = factory.newConnection(hostName, portNumber); Channel channel = connection.createChannel(); channel.queueDeclare(ticket,TASK_QUEUE_NAME, false, true, false, false, null);
/*
queueDeclare(int ticket,
java.lang.String queue,
boolean passive,
boolean durable,
boolean exclusive,
boolean autoDelete,
java.util.Map<java.lang.String,java.lang.Object> arguments)
*/ String message = "hello"; //http://www.rabbitmq.com/releases/rabbitmq-java-client/v1.4.0/rabbitmq-java-client-javadoc-1.4.0/com/rabbitmq/client/Channel.html#basicPublish
channel.basicPublish(ticket, "", TASK_QUEUE_NAME,
MessageProperties.PERSISTENT_TEXT_PLAIN,
message.getBytes());
System.out.println(" [x] Sent '" + message + "'");
int closeCode = 200;
String closeMessage="job done.";
channel.close(closeCode, closeMessage);
connection.close();
}
//...
}
基本是看着api文档改的,不同版本的api还真是出入不小(特别httpclient_xxx.jar),还好rabbitmq的java client差异不太大。
有两疑问:
1. ticket干嘛的:
貌似官方的faq里面有提到:http://rabbitmq.1065348.n5.nabble.com/What-is-ticket-object-and-how-does-it-get-created-td11931.html
意思初期的不太成熟的一个安全措施的想法, 后面给砍了。 传0即可。
2. closecode
默认的close函数用了默认的closecode ,和closemessage。
https://www.rabbitmq.com/releases/rabbitmq-java-client/current-javadoc/com/rabbitmq/client/Connection.html#close--
因此低版本中,需要显示的传这两个参数就好了:
closecode:200, 参考:https://www.rabbitmq.com/releases/rabbitmq-java-client/current-javadoc/constant-values.html#com.rabbitmq.client.AMQP.REPLY_SUCCESS
closemessage: 'OK'
来源(为了更好的排版阅读):http://www.cnblogs.com/Tommy-Yu/p/6402672.html
rabbitmq - java client lib一二事的更多相关文章
- 译:1. RabbitMQ Java Client 之 "Hello World"
这些教程介绍了使用RabbitMQ创建消息传递应用程序的基础知识.您需要安装RabbitMQ服务器才能完成教程 1. 打造第一个Hello World 程序 RabbitMQ是一个消息代理:它接受和转 ...
- 五、RabbitMQ Java Client基本使用详解
Java Client的5.x版本系列需要JDK 8,用于编译和运行.在Android上,仅支持Android 7.0或更高版本.4.x版本系列支持7.0之前的JDK 6和Android版本. 加入R ...
- 译:2. RabbitMQ Java Client 之 Work Queues (工作队列)
在上篇揭开RabbitMQ的神秘面纱一文中,我们编写了程序来发送和接收来自命名队列的消息. 本篇我们将创建一个工作队列,工作队列背后的假设是每个任务都交付给一个工作者 本篇是译文,英文原文请移步:ht ...
- 译:3.RabbitMQ Java Client 之 Publish/Subscribe(发布和订阅)
在上篇 RabbitMQ 之Work Queues (工作队列)教程中,我们创建了一个工作队列,工作队列背后的假设是每个任务都交付给一个工作者. 在这一部分,我们将做一些完全不同的事情 - 我们将向多 ...
- 译:4.RabbitMQ Java Client 之 Routing(路由)
在上篇博文 译:3.RabbitMQ 之Publish/Subscribe(发布和订阅) 我们构建了一个简单的日志系统 我们能够向许多接收者广播日志消息. 在本篇博文中,我们将为其添加一个功能 - ...
- 译:5.RabbitMQ Java Client 之 Topics (主题)
在 上篇博文 译:4.RabbitMQ 之Routing(路由) 中,我们改进了日志系统. 我们使用的是direct(直接交换),而不是使用只能进行虚拟广播的 fanout(扇出交换) ,并且有可能选 ...
- 译:6.RabbitMQ Java Client 之 Remote procedure call (RPC,远程过程调用)
在 译:2. RabbitMQ 之Work Queues (工作队列) 我们学习了如何使用工作队列在多个工作人员之间分配耗时的任务. 但是如果我们需要在远程计算机上运行一个函数并等待结果呢?嗯,这 ...
- RabbitMQ的使用(五)RabbitMQ Java Client简单生产者、消费者代码示例
pom文件: <dependencies> <dependency> <groupId>com.rabbitmq</groupId> <artif ...
- [Kerberos] Java client访问kerberos-secured cluster
使用java client访问kerberos-secured cluster,最重要的是先从admin那里拿到可用的keytab文件,用来作认证.接下来就是调整连接的配置.以下先用连接hdfs为例进 ...
随机推荐
- javacript onclick事件中传递对象参数
var user = {id:1, name:'zs', age:20}; var ele = '<a onclick="edit(' + JSON.stringify(user).r ...
- 前端 使用 crypto-js 对数据进行对称加密
From: https://www.cnblogs.com/CyLee/p/7216988.html 传送门: # crypto-js github https://github.com/brix/ ...
- C# System.IO.StreamReader
实现一个 TextReader,使其以一种特定的编码从字节流中读取字符. using System; using System.IO; class Test { public static void ...
- C# System.IO.FileStream
为文件提供 Stream,既支持同步读写操作,也支持异步读写操作. using System; using System.IO; using System.Text; class Test { pub ...
- linux性能压测工具
http://benjr.tw/532 http://blog.yufeng.info/archives/2023 https://www.cnblogs.com/zhoujinyi/archive/ ...
- IEEE754标准的浮点数存储格式
操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 基本存储格式(从高到低) : Sign + Exponent + Fraction Sign : 符号位 Exponent ...
- (原)ubuntu上编译PANet/Detectron.pytorch时-std=c99的错误
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/10494787.html 在ubuntu上编译PANet/Detectron.pytorch时,总提示 ...
- MATLAB 程序处理结果出现 NAN 问题
1)0/0 或者说 任意常数/0 也就是0不能做分母. (nan出现的情况绝大部分是分母出现0了) 若分子为0的情况,(分母不为0),结果也应该是0而非 NAN. 2)如果是 无穷大比无穷大 ...
- pandas.Dataframe复杂条件过滤
https://stackoverflow.com/questions/11418192/pandas-complex-filter-on-rows-of-dataframe mask = df.ap ...
- HTML5学习笔记(二十九):Cookie和Session
HTTP协议本身是无状态的,这和HTTP最初的设计是相符的,每次请求都是创建一个短连接,发送请求,得到数据后就关闭连接.即每次连接都是独立的一次连接. 这样的话,导致的问题就是当我在一个页面登陆了账号 ...