【Service】【MiddleWare】【Message】rabbitMQ
1. 概念:
1.1. 消息型中间件:遵循AMQP协议(高级消息队列协议)AMQP 0-9-1 AMQP 1.0
1.2. 路由模型:
direct
topic
fan-out
headers
1.3. broker:
exchange
binding
queue
1.4. vitrualhost:虚拟主机
exchange
binding
queue
1.5. 中间件的实现:
Qpid, ActiveMQ(apache):Java
RabbitMQ:erlang
Kafka
0MQ
2. 安装:
程序包:
epel:rabbitmq-server
插件:rabbitmq-plugins(enable|disable|list)
rabbitmq_management:监听于15672端口
配置方式:
环境变量:网络参数及配置文件路径;
配置文件:服务器各组件访问权限、资源限制、插件及集群;
运行时参数:集群的运行时参数;
环境变量:/etc/rabbitmq/rabbit-env.conf
RABBITMQ_BASE:数据库和日志文件;对unix-like主机不常用;
RABBITMQ_CONFIG_FILE:配置文件路径:/etc/rabbitmq/rabbitmq
RABBITMQ_LOGS:
RABBITMQ_NODE_IP_ADDRESS:监听的IP;
RABBITMQ_NODE_PORT:
RABBITMQ_PLUGINS_DIR
配置文件:
auth_mechanisms:认证机制;SASL,简单认证安全层
default_user:guest
default_pass:guest
default_permission
disk_free_limit
heartbeat:
hipe_compile:是否使用hipe编译,使用hipe编译性能提高
log_levels: {none|error|warning|info}
tcp_listeners:监听的地址和端口 5672
ssl_listeners:基于ssl通信协议监听的地址和端口
vm_memory_high_watermark:
rabbitmqctl命令:
运行时参数;
set_parameter [-p <vhostpath>] <component_name> <name> <value>
clear_parameter [-p <vhostpath>] <component_name> <key>
set_policy [-p <vhostpath>] [--priority <priority>] [--apply-to <apply-to>] <name> <pattern> <definition>
clear_policy [-p <vhostpath>] <name>
set_vm_memory_high_watermark <fraction>
用户管理:
add_user
delete_user
change_password
clear_password
set_user_tags
list_user
虚拟主机:
add_vhost
delete_vhost
list_vhost
权限管理:
set_permissions
clear_permissions
list_permissions
list_user_permissions
组件查看命令:
list_queue
list_exchanges
list_bindings
list_connections
list_channels
list_consumers
broker状态查看:
status
环境变量查看:
environment
执行erlang底层表达式:
eval <expr>
关闭指定的连接:
close_connection <connectionid> <explanation>
设定内存的高水位标记
set_vm_memory_high_watermark <function>
3. rabbitmq cluster
3.1. 步骤:
在master节点:
复制其cookie至其他各节点,要注意保持其权限为400;
/var/lib/rabbitmq/.erlang.cookie
在各从节点:
停止应用:rabbitmqct stop_app
加入集群:rabbmitmqctl join_cluster CLUSTER_NAME
启动应用:rabbmitmqctl start_app
3.2. 注意
使用短格式主机名;解析的名称与每个主机名称保持一致
时间同步:
各节点要启动rabbitmq_management插件;
4. 基于haproxy的LB集群:
listen rabbitmq:5672
mode tcp
status enable
balance roundrobin
server rabbit01 IP:PORT check inter 5000
server rabbit02 IP:PORT check inter 5000
最新文章
- TypeLoadException: 找不到 Windows 运行时类型“Windows.UI.Xaml.Controls.Binding
- SPREAD_NET6
- 如何在MyEclipse中部署struts2的环境
- POJ 1562(L - 暴力求解、DFS)
- CentOS在安装配置 Ngnix_tomcat_PHP_Mysql
- 云锁Linux服务器安全软件安装及防护webshell、CC、XSS跨站攻击设置
- 对维数组排序 array_multisort()的应用
- Codeforces Round #460 E. Congruence Equation
- js中new函数后带括号和不带括号的区别
- mongodb与java整合
- HTML5 &; tel &; make a phone call
- (cvpr2019 ) Technology details of Deep Learning for Multiple-Image Super-Resolution
- JVM总结-字节码
- 减少存储过程封装业务逻辑-web开发与传统软件开发的思维模式不同
- Vue 实现countDown倒计时
- [/usr/local/openssl//.openssl/include/openssl/ssl.h] Error 127
- PHP 微信公众号开发 - 获取用户信息
- [转]分布式锁-RedisLockRegistry源码分析
- react常用命令
- Gitlab 自动构建心得
热门文章
- 模块化开发 | es6模块暴露与引入
- webpack 之js兼容性处理
- 【CVE-2020-1948】Apache Dubbo Provider反序列化漏洞复现
- JS中如何将yyyy-MM-dd HH:mm:ss格式的字符串转成Date类型
- python地理空间(1)--概念引入
- Hardware assisted virtualization and data execution protection must be enabled in the BIOS. See https://docs.docker.com/docker-for-windows/troubleshoot/#virtualization
- javaweb监听
- P1759 通天之潜水(双写法+解析)
- 洛谷 P4548 - [CTSC2006]歌唱王国(概率生成函数)
- clickhouse使用的一点总结