首先pom依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>springcloudparent</artifactId>
<groupId>com.cxy</groupId>
<version>0.0.-SNAPSHOT</version>
</parent>
<modelVersion>4.0.</modelVersion> <artifactId>rabbitMqConsumer</artifactId>
<dependencies>
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.4.</version>
</dependency>
</dependencies> </project>

生产者代码:

package com.cxy.producer;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory; import java.io.IOException;
import java.util.concurrent.TimeoutException; /***
* @ClassName: Producer1
* @Description:
* @Auther: cxy
* @Date: 2019/3/24:11:38
* @version : V1.0
*/
public class Producer1 { private static final String Queue="helloworld"; public static void main(String[] args) {
ConnectionFactory connectionFactory= new ConnectionFactory();
//设置连接地址
connectionFactory.setHost("192.168.230.134");
//设置端口
connectionFactory.setPort();
//设置密码用户名
connectionFactory.setUsername("guest");
connectionFactory.setPassword("guest");
//设置虚拟机,每个虚拟机相当于一个小的mq
connectionFactory.setVirtualHost("/");
Connection connection =null;
try {
//建立连接
connection = connectionFactory.newConnection();
//建立通道,生产着和消费者都是在通道中完成
Channel channel = connection.createChannel();
/*
queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete,
Map<String, Object> arguments)
参数1,声明队列
参数2 是否持久化
参数3 是否排他,是否独战连接,队列只允许该链接中访问,如果连接关闭,队列也就删除了
参数4:是否自动删除,如果将此参数设置true,那么就变成零时队列
参数5 :扩展参数,例如存活时间
*/
channel.queueDeclare(Queue,true,false,false,null);
//所有的队列需要制定默认的交换机
/* basicPublish(String exchange, String routingKey, boolean mandatory, boolean immediate, BasicProperties props, byte[] body)
throws IOException;
参数1: 交换机,如果使用默认交换机,那么就为空,不可以设置为null
参数二:路由key.交换机根据key来将消息发送到制定搞得队列,如果私用默认交互机,就应该设置为队列名称 */
String message="hello maxchen";
channel.basicPublish(null,Queue,null,message.getBytes());
System.out.println("send xiaoxi");
} catch (IOException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
} }
}

运行为报错L:

Exception in thread "main" java.lang.IllegalStateException: Invalid configuration: 'exchange' must be non-null.
at com.rabbitmq.client.impl.AMQImpl$Basic$Publish.<init>(AMQImpl.java:)
at com.rabbitmq.client.AMQP$Basic$Publish$Builder.build(AMQP.java:)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:)
at com.rabbitmq.client.impl.recovery.AutorecoveringChannel.basicPublish(AutorecoveringChannel.java:)
at com.cxy.producer.Producer1.main(Producer1.java:)

处理方法:

再看管控台:

rabbitmq生产者代码,以及过程参数含义:的更多相关文章

  1. rabbitmq 生产者 消费者(多个线程消费同一个队列里面的任务。) 一个通用rabbitmq消费确认,快速并发运行的框架。

    rabbitmq作为消息队列可以有消息消费确认机制,之前写个基于redis的通用生产者 消费者 并发框架,redis的list结构可以简单充当消息队列,但不具备消费确认机制,随意关停程序,会丢失一部分 ...

  2. 机器学习——随机森林,RandomForestClassifier参数含义详解

    1.随机森林模型 clf = RandomForestClassifier(n_estimators=200, criterion='entropy', max_depth=4) rf_clf = c ...

  3. rocketmq生产者代码分析

    rocketmq生产者代码分析 环境安装 参考http://rocketmq.apache.org/docs/quick-start/ ,配置环境变量 export NAMESRV_ADDR=loca ...

  4. C关键字typedef及argc,argv,env参数含义

    C关键字typedef--为C中各种数据类型定义别名. 在此插一点C知识 int main(int argc,const char *argv[],const char *envp[])主函数的红色部 ...

  5. simple模式下rabbitmq的代码

    simple模式代码 package RabbitMQ import ( "fmt" "github.com/streadway/amqp" "log ...

  6. 6、rabbitmq&java代码操作

    记住四个注解 存: rabbitTemplate.convertAndSend("bw","我要红包"); 取: @Component @RabbitListe ...

  7. Mysqldump参数大全 这 些参数 不同于 mysql 的那些参数(下边文章开头有链接) :2 种类型的参数含义是不一样的

    Mysqldump参数大全  这 些参数 不同于 mysql 的那些参数  :2 种类型的参数含义是不一样的 Mysqldump参数大全(参数来源于mysql5.5.19源码) 参数 参数说明 --a ...

  8. paip.提升效率--调试--日志系统日志参数含义---python

    paip.提升效率--调试--日志系统日志参数含义---python #同时向控制台和文件输出日志 #日志参数含义 import logging log_format = '%(filename)s ...

  9. (转)hadoop三个配置文件的参数含义说明

     hadoop三个配置文件的参数含义说明     1       获取默认配置 配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配 ...

随机推荐

  1. UNIX 网络编程学习

    a.述 书买很久了,好好学习下.O(∩_∩)O  只写程序,原理什么的,先不写了. b.环境 deepin15.4.1 64位 vs code gcc version 6.4.0 20170724 ( ...

  2. Centos 6.5 python 2.6.6 升级到 2.7

    1.查看python的版本 [root@localhost ~]# python -V Python 2.6.6 2.安装python 2.7.3 [root@localhost ~]# yum in ...

  3. saltstack系列(四)——zmq Paraller Pipeline模式

    push/pull模式 push/pull模式,这是一个什么模式呢?战争时期,食物紧缺,实行配给制,大家都排好队,有人专门发放食物,前一个人领取了食物,后一个人跟上继续领取食物,这个push端就是发放 ...

  4. 如何判定Unity已破解成功

    [如何判定Unity已破解成功] 点击菜单“Unity”->"About Unity...".在弹出的关于Unity的信息的对话框中,如果是已破解版本,在右下角会显示序列号.

  5. java Web 请求servlet绘制验证码简单例子

    主要用来了解java代码怎么绘制验证码图片,实际开发中不会这样用 protected void doGet(HttpServletRequest request, HttpServletRespons ...

  6. 深入剖析SolrCloud(一)

    作者:洞庭散人 出处:http://phinecos.cnblogs.com/ 本博客遵从Creative Commons Attribution 3.0 License,若用于非商业目的,您可以自由 ...

  7. php 扩展开发

    Linux下用C开发PHP扩展 一.首先下载PHP源码包,假设源码包目录为:/software/php-5.2.13 #> cd /software/php-5.2.13/ext 二.假设我们要 ...

  8. IWebBrowser和IE浏览器的行为不一样

    原本一直以为IWebBrowser2的行为和IE浏览器的行为应该是一样的,但是最近发现事实不是如此. IE8以后的浏览器都带有兼容模式,而IWebBrowser2默认情况下是在兼容模式下运行的,可以参 ...

  9. Junit问题01 利用 @Autowired 注入失效问题

    1 利用 @Autowired 注入失效问题 1.1 问题描述 在使用Junit作为测试框架的单元测试中,直接了用@Autowired记性依赖注入时总是注入失败 1.2 问题原因 在测试类中没有设定上 ...

  10. 598. Range Addition II 矩阵的范围叠加

    [抄题]: Given an m * n matrix M initialized with all 0's and several update operations. Operations are ...