需要安装erlang,otp_src_R16B03
http://blog.csdn.net/huoyunshen88/article/details/41575875
明显安装成功了erlang>=rb13-3,但是rpm或者yum安装最新的rpm rabbitmq文件,还是提示requierd erlang>=rb13-3,然后我重现下载tar文件,在sbin里启动就可以了。
添加用户
http://blog.csdn.net/zyz511919766/article/details/42292655
1、首先要先安装GCC GCC-C++ Openssl等以来模块:
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
2、再安装ncurses模块
yum -y install ncurses-devel
yum -y install esl-erlang_18.3-1~centos~6_amd64.rpm
命令erl出现命令行
Connection
创建tcp连接,设置vhost,username,password
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setVirtualHost("/");
factory.setUsername("rockey");
factory.setPassword("1qazxsw2");
Connection connection = factory.newConnection();
channel
消息的传送是通过channel来的
Channel channel = connection.createChannel();
exchange
交换机,如果要把消息进行路由推送到符合的queue,就需要这个,type类型:direct,fanout,topic
channel.exchangeDeclare(java.lang.String exchange, java.lang.String type, boolean durable)
channel.queueBind(java.lang.String queue, java.lang.String exchange, java.lang.String routingKey1)
channel.basicPublish(java.lang.String exchange, java.lang.String routingKey2, AMQP.BasicProperties props, byte[] body)
exchange是路由的名字
type:direct是直接把消息发送到bind的queue上,basicPublish的routingkey只会发送到对应的queuebind的queue的routingkey,这里routingkey1和routingkey2如果相同就会从exchange发送到queue,不相同就丢掉消息。topic是bind到routingkey符合正则的路由上,fanout是发送到所有bind到该exchange上的queue,此时routingkey设置了也没有作用。
durable为true表示该exchange在rabbit服务重启后依然存在,否则重启后就没有了该declare exchange
props 可以设置为MessageProperties.PERSISTENT_TEXT_PLAIN,表示消息会被本地化,此时如果durable为false,设置为这个也没有用。只有durable为true,prop为persistent,消息才会在rabbit服务重启后仍然回复。
注:如果channel.exchangeDeclare和channel.basicPublish之间没有queuebind,那么消息会发送到defaultqueue里。
queue
queueDeclare(java.lang.String queue, boolean durable, boolean exclusive, boolean autoDelete, java.util.Map<java.lang.String,java.lang.Object> arguments)
queue队列名
durable:为true表示该queue在rabbit服务重启后依然存在,否则重启后就没有了该declare durable
exclusive表示该queue是独占的,只能被一个客户端占用。
autoDelete 该队列空了之后一段时间后就会删除