RabbitMQ监控(2)——RabbitMQ-javaclient使用
2017-07-26 00:00
197 查看
本文旨在为大家打开java关于rabbitmq操作的窗户,简单应用,帮助理解官方文档,详细内容,还是要参考官方文档,这里是官方文档的中文过渡区
在rabbitmq-server进程内有Exchange,定义了这个消息的发送类型。(一对多、直连、多对多等等)
Queue是进程内的逻辑队列,有多个,有名字。
Binding联系Exchane与Queue。
Routing key由生产者指定。Binding key由消费者指定。二者联合决定一条消息的来去。
连接范例:
简便方式:
以上是得到一个rabbitmq连接最最基础的代码。
最后这个channel就可以用来收和发消息了。
提醒:
请在程序结尾处关闭链接,否则比较耗费资源:
使用Exchanges and Queues
发送消息:
接收消息
参考官方文档:
http://www.rabbitmq.com/api-guide.html
官方api
http://www.rabbitmq.com/releases/rabbitm 3ff0
q-java-client/v3.6.1/rabbitmq-java-client-javadoc-3.6.1/
一,基础概念:
每个rabbitmq-server叫做一个Broker,等着tcp连接进入。在rabbitmq-server进程内有Exchange,定义了这个消息的发送类型。(一对多、直连、多对多等等)
Queue是进程内的逻辑队列,有多个,有名字。
Binding联系Exchane与Queue。
Routing key由生产者指定。Binding key由消费者指定。二者联合决定一条消息的来去。
二简单范例:
maven依赖<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>3.6.1</version> </dependency>
连接范例:
ConnectionFactory factory = new ConnectionFactory(); factory.setUsername(userName); factory.setPassword(password); factory.setVirtualHost(virtualHost); factory.setHost(hostName); factory.setPort(portNumber); Connection conn = factory.newConnection();
简便方式:
ConnectionFactory factory = new ConnectionFactory(); factory.setUri("amqp://userName:password@hostName:portNumber/virtualHost"); Connection conn = factory.newConnection();
以上是得到一个rabbitmq连接最最基础的代码。
最后这个channel就可以用来收和发消息了。
Channel channel = conn.createChannel();
提醒:
请在程序结尾处关闭链接,否则比较耗费资源:
channel.close(); conn.close();
使用Exchanges and Queues
channel.exchangeDeclare(exchangeName, "direct", true); String queueName = channel.queueDeclare().getQueue(); channel.queueBind(queueName, exchangeName, routingKey);
发送消息:
byte[] messageBodyBytes = "Hello, world!".getBytes(); channel.basicPublish(exchangeName, routingKey, null, messageBodyBytes);
接收消息
boolean autoAck = false; channel.basicConsume(queueName, autoAck, "myConsumerTag", new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { String routingKey = envelope.getRoutingKey(); String contentType = properties.getContentType(); long deliveryTag = envelope.getDeliveryTag(); // (process the message components here ...) channel.basicAck(deliveryTag, false); } });
参考官方文档:
http://www.rabbitmq.com/api-guide.html
官方api
http://www.rabbitmq.com/releases/rabbitm 3ff0
q-java-client/v3.6.1/rabbitmq-java-client-javadoc-3.6.1/
总结:
简单易行,这样的工具,使我们需要的,也是我们想要的,看着国外N多好用的中间件,一个接一个出现,国内虽然这些年也改变了不少,但是我们和国外优秀的团队和开发理念上还是有差距的,随着阅读外国api的次数增多,量的累计,我相信,我们也会慢慢优秀起来,追赶超越!相关文章推荐
- RabbitMQ监控(2)——RabbitMQ-javaclient使用
- RabbitMQ监控(2)——RabbitMQ-javaclient使用
- RabbitMQ监控(2)——RabbitMQ-javaclient使用
- RabbitMQ的Java应用(1) -- Rabbit Java Client使用
- JAVA中使用FTPClient上传下载
- 监控Java应用程序Windows内存使用情况
- 监控Java应用程序Windows内存使用情况
- java版的memcached client及使用文档
- java新手学习使用FtpClient
- 使用JRockit Mission Control监控Java程序运行性能
- 使用Java java_memcached client的陷阱
- JAVA中使用FTPClient上传下载
- 使用java做屏幕监控案例源代码
- 使用 jconsole 监控java程序
- JAVA中使用FTPClient上传
- java版的memcached client及使用文档
- java性能监控工具JProfiler的使用
- JAVA中使用FTPClient上传下载
- 使用java开发facebook网站应用程序 , facebook,facebookrestclient,页面,fbml,应用程序,调用,用户,密钥,应用,登陆
- java 内存监控使用