Java技术总结

JMS概念及Rabbitmq 安装

2019-02-10  本文已影响7人  AlanKim

JMS-Java Message Service

基本概念:

  1. JMS-Java Mesasge Service,即Java消息服务。支持两种通信模型:
    • 点对点,Point-2-Point,消息产生后,被发到一个Queue中;消息接收者从Queue中读取,之后msg消失。一对一
    • 发布/订阅,pub/Sub,消息产生后,被发到一个Topic中,这个topic可以同时有多个接收者在监听,当一个消息到达topic后,所有的消息接收者都会收到这个消息。 一对多。
  2. Destination,消息发送的目的地,也就是queue、topic。消息被创建好之后,只要发送到destination,消息的发送者就不需要关心消息了,后续的消费什么时间发生,由谁来消费,完全取决于消息的接收者。
  3. Message:消息,用于传递内容的载体,包含以下几种类型
    • StreamMessage,java数据流消息
    • MapMessage,一个Map类型的消息,key为string类型,value为java基本类型
    • TextMessage,普通字符串消息,包含一个String,较常用
    • ObjectMessage,对象消息,包含一个可序列化的java对象,较常用
    • BytesMessage,二进制数组消息
    • XMLMessage,xml类型的消息
  4. ConnectionFactory,工厂类,用于生成Connection
  5. Connection,与JMS提供者建立的一个连接,可以从这个连接创建一个session
  6. Session 与JMS提供者建立的会话,通过session我们才可以创建一个message
  7. JMS提供者,提供queue、topic、connection、session管理的服务器,比如rabbitmq、rocketmq等

但是JMS目前并没有大规模应用,而且JMS仅适用于Java语言,所以就有了AMQP(Advanced Message Queue Protocal)。RabbitMQ是基于Erlang语言的AMQP协议实现。

RabbitMQ《RabbitMQ实战指南》推荐一读

安装
需要先安装erlang,这里使用19.3版本:

下面是安装过程(centos 6.6),注意,erlang的版本跟rabbitmq的版本还是有相关性的,这里只试验了19.3版本erlang与后续的rabbitmq搭配没问题

aria2c http://erlang.org/download/otp_src_19.3.tar.gz
tar -zxvf otp_src_19.3.tar.gz
cd otp_src_19.3
./configure --prefix=/opt/erlang  #这里指定安装erlang的目录,防止直接安装到/usr目录去,卸载起来麻烦
# 如果出现类似 No curses Library .... 这种报错,执行以下:
# yum install ncurses-devel
make
make install  # erlang没有提供 make uninstall的命令,想卸载,直接删除/opt/erlang即可
vim /etc/profile  # 添加环境变量
    export ERLANG_HOME=/opt/erlang
    export PATH=$PATH:$ERLANG_HOME/bin
source /etc/profile # 生效环境变量
erl # 试验erlang是否已经安装成功,会进入交互模式,ctrl+G 切换输入模式,输入q 回车退出

安装rabbitmq

这里使用的是rabbitmq-server-generic-unix-3.6.15版本,注意一定是generic-unix版本,里面有sbin目录。普通的rabbitmq-server版本里面缺少可执行文件。

下面是操作步骤,

cd /opt
aria2c http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz 
xz -d rabbitmq-server-generic-unix-*.tar.xz # 这里是xz后缀,要使用xz命令解压,会产生一个*.tar的压缩包
tar -xvf rabbitmq-server-generic-unix*.tar
vim /etc/profile
    export RABBITMQ_HOME=/opt/rabbitmq_server-3.6.15
    export PATH=$PATH:$RABBITMQ_HOME/sbin
source /etc/profile

配置完成之后,可以直接使用下面一些命令行管理rabbitmq:

rabbitmq-server #命令来启动,—detached参数经测试已经被忽略。
rabbitmqctl status #查看当前broker的状态
rabbitmqctl cluster_status #查看集群状态
rabbitmqctl add_user root root123 # 默认访问rabbitmq的用户名、密码都是guest,但是只能在localhost访问,所以需要增加用户
rabbitmqctl set_permissions -p / root ".*" ".*" ".*" # 给root赋权限
rabbitmqctl set_user_tags root administrator # 给root用户赋角色
# 后续在代码中connectFactory设置用户及密码时,需要用到root及对应pwd
上一篇下一篇

猜你喜欢

热点阅读