美文网首页Java技术总结
JMS概念及Rabbitmq 安装

JMS概念及Rabbitmq 安装

作者: AlanKim | 来源:发表于2019-02-10 07:03 被阅读7次

    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
    

    相关文章

      网友评论

        本文标题:JMS概念及Rabbitmq 安装

        本文链接:https://www.haomeiwen.com/subject/bqlyjqtx.html