标签:.bat mes 微软 使用技巧 sys more java环境 stat 用途
千万PVRabbitMQ (Message Qucue, 消息队列)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用链接来连接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。 排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求
在项目中,将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大地节省了服务器的请求响应时间,从而提高了系统的吞吐量。 RabbitMQ支持消息的持久化,也就是数据写在磁盘上。为了数据安全考虑,大多数企业都会选择持久化。当然如果觉得不需要消息持久化,那么使用内存节点即可!其实最合适的方案就是既有内存节点,又有磁盘节点,下面的案例就是这样一个例子。 消息队列持久化包括了3个部分:
设计架构模式:
在一个集群里,有三台服务器,其中一台使用磁盘模式,另两台使用内存模式。两台内存模式的节点无疑速度更快,因此通过客户端连接访问它们。使用客户端不可能分别连接两个内存节点,肯定是通过前端反向代理左轮询分发请求。但是相心前端反向代理服务器故障,可以通过Kepint软件o一个离可用架构。 而磁盘模式的节点,由于磁盘I0相对较慢,因此仅作数据备份使用。注意这里请将三台服务器都连接上互联网并安装软件包。另外RabbitMQ集点必须在同一个网段里,如果是跨广域网,效果就会变差。
IP地址 | 主机名 | 操作系统 | 防火墙和SElinux | 用途 |
---|---|---|---|---|
192.168.179.128 | mq1 | CentOS7 | 关闭 | 磁盘节点 |
192.168.179.129 | mq2 | CentOS7 | 关闭 | 内存节点 |
192.168.179.130 | mq3 | CentOS7 | 关闭 | 内存节点 |
#三台都要关
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/hostname //其他两台相同
mq01.localdomain
![image]
[root@mq01 ~]# yum install -y epel-release
[root@mq01 yum.repos.d]# yum install -y rabbitmq-server
-----------如果安装不了请执行下列操作---------
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
yum clean all && yum makecache
#//查看插件安装情况
[root@mq01 yum.repos.d]# /usr/lib/rabbitmq/bin/rabbitmq-plugins list
#//启用rabbitmq_management服务
[root@mq01 yum.repos.d]# /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management
[root@mq01 ~]# systemctl start rabbitmq-server.service
systemctl stop rabbitmq-server.service //停止三台服务器
#//三台值配置成一样的,复制内容到其他两台
vi /var/lib/rabbitmq/.erlang.cookie
more /var/lib/rabbitmq/.erlang.cookie //验证三台服务器上的cookie,集群场景下,三台的值需要相同
systemctl start rabbitmq-server.service
netstat -anpt | grep 5672
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@mq01 //加入到磁盘节点
rabbitmqctl start_app
[root@mq01 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@mq01 ...
[{nodes,[{disc,[rabbit@mq01]},{ram,[rabbit@mq03,rabbit@mq02]}]},
{running_nodes,[rabbit@mq03,rabbit@mq02,rabbit@mq01]},
{cluster_name,<<"rabbit@mq01">>},
{partitions,[]}]
...done.
http://192.168.175.132:15672/ //默认用户名:guest 密码:guest
登陆进入页面
创建消息队列
queues->
name:aa //消息队列的名称
durability:durable //是否支持持久化
node:rabbit@mq01
arguments:x-ha-policy = all
add queue 完成
在新建一个bb队列。arguments项不填写。
add queue 完成
--------------以下在aa和bb队列中新建消息----
点aa->Publish message
mode:2-persistent
haders a = 123
properties message_id=1
payload:1234
publish message
close 完成
---------------------------------------------
service rabbitmq-server stop //把mq01关闭
http://192.168.80.185:15672/ 在02或03上测试消息是否存在。
service rabbitmq-server stop //把02关闭在03上查看应该消息还在,注意地址
http://192.168.80.186:15672/
service rabbitmq-server start //把01和02都启动,消息不同步
rabbitmqctl sync_queue aa //在任意节点手动同步队列
ll /var/lib/rabbitmq
ll /var/lib/rabbitmq/mnesia/rabbit\@mq01/queues/ //在mq01上查看消息队列中的信息
ll /var/lib/rabbitmq/mnesia/rabbit\@mq02/queues/
ll /var/lib/rabbitmq/mnesia/rabbit\@mq03/queues/
-------------------以下JMeter压力测试软件----https://jmeter.apache.org/download_jmeter.cgi
下载-Binaries 包
-------在微软系统下配置JAVA环境---
安装jdk-8u161-windows-x64
右击电脑-》属性-》高级-》环境变量-》系统变量-》PATH-》编辑-》新建-》加入下面的路径-》确定
C:\Program Files\Java\jdk1.8.0_161\bin
cmd
java -version
解压JMeter,然后到解压目录中的bin目录下运行,jmeter.bat 启动程序
在选项中选择语言环境。
使用技巧,查找相关资料。
标签:.bat mes 微软 使用技巧 sys more java环境 stat 用途
原文地址:http://blog.51cto.com/13645280/2155033