为什么引入ActiveMQ
1、要做到系统解耦,当新的模块进来时,可以做到代码改动最小;能够解耦
2、设置流量缓冲池,可以让后端系统按照自身吞吐能力进行消费,不被冲垮;能够削峰;
3、强弱依赖梳理能将非关键调用的操作异步化优化并提升系统整体的吞吐能力,减少响应时间,提高用户体验;能够异步
面向消息的中间件message-oriented middleware(MoM)
是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过消息传递和消息排队模型在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等功能。
大致的过程如下
消息发送者把消息发送给消息服务器,消息服务器将消息存放在若干队列/主题中,再合适的时候,消息服务器会将消息转发给消息接收者,在这个过程中,发送和接收都是异步的,也就是发送、接收都无需等待,而且发送者和消息接收者的生命周期也没有必然的关系;
尤其在发布pub/订阅sub模式下,也可以完成一对多的通信,即一个消息发送者将一条消息发送给多个不同的接收者
安装activeMQ
1、activemq.apache.org官网下载activeMQ.tat.gz
2、oracle官网下载JDK 并配置环境变量
配置环境变量步骤如下
1)/opt目录下 tar -zxvf 包名解压jdk
2)vim /etc/profile 修改配置文件
export JAVA_HOME=/opt/jdk1.8.0_171
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3) source /etc/profile 让配置文件生效
4)java -version javac-version 验证是否配置成功
3、/opt目录下 tar -zxvf 包名解压
4、mkdir /myactiveMQ 新建文件夹
5、cp -r 文件名 /myactiveMQ/ 复制文件到新建的文件夹
启动和关闭activeMQ(61616默认端口)
1、直接启动 进到bin目录中 ./activemq start
2、带日志的启动方式 ./activemq start > /myactiveMQ/run_activeMQ.log
3、关闭 ./activemq stop
Linux下相关命令
netstat 工具安装 yum install net-tools
lsof 安装 yum install lsof
ps -ef|grep java|grep -v grep 查看和java相关的进程并过滤掉grep相关
**
lsof(list open files)是一个列出当前系统打开文件的工具。
-a 列出打开文件存在的进程
-c<进程名> 列出指定进程所打开的文件
-g 列出GID号进程详情
-d<文件号> 列出占用该文件号的进程
+d<目录> 列出目录下被打开的文件
+D<目录> 递归列出目录下被打开的文件
-n<目录> 列出使用NFS的文件
-i<条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<进程号> 列出指定进程号所打开的文件
-u 列出UID号进程详情
-h 显示帮助信息
-v 显示版本信息
netstat 命令用于显示网络状态。
-a或–all 显示所有连线中的Socket。
-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。
-c或–continuous 持续列出网络状态。
-C或–cache 显示路由器配置的快取信息。
-e或–extend 显示网络其他相关信息。
-F或–fib 显示FIB。
-g或–groups 显示多重广播功能群组组员名单。
-h或–help 在线帮助。
-i或–interfaces 显示网络界面信息表单。
-l或–listening 显示监控中的服务器的Socket。
-M或–masquerade 显示伪装的网络连线。
-n或–numeric 直接使用IP地址,而不通过域名服务器。
-N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
-o或–timers 显示计时器。
-p或–programs 显示正在使用Socket的程序识别码和程序名称。
-r或–route 显示Routing Table。
-s或–statistics 显示网络工作信息统计表。
-t或–tcp 显示TCP传输协议的连线状况。
-u或–udp 显示UDP传输协议的连线状况。
-v或–verbose 显示指令执行过程。
-V或–version 显示版本信息。
-w或–raw 显示RAW传输协议的连线状况。
-x或–unix 此参数的效果和指定"-A unix"参数相同。
–ip或–inet 此参数的效果和指定"-A inet"参数相同。