消息中间件
一、什么中间件
中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。
人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必须有一个通信中间件,即中间件=平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。
二、什么时候用中间件
在项目的架构和重构中,使用任何技术和架构的改变我们都需要谨慎斟酌的思考,因为任务技术的融入和变化都可能人员,技术,和成本的增加,中间件的技术一般现在些互联网公司或者项目中使用比较多多,如果你仅仅还只是一个初创公司建设还是使用单体架构。最多加个缓存中间件即可,不要盲目追求新或者所谓的高性能,而追求的背后一定是业务的驱动和项目的驱动,因为一旦追求就意味着你的学习成本,公司的人员结构以及服务器成本,维护和运维的成本都会增加,所以需要谨慎选择和考虑。 |
---|
但是作为一个开发人员,一定要有学习中间件技术的能力和思维,否则很容易当项目发展到一个阶段在去掌握估计或者在面试中提及,就会给自己带来不小的困扰,在当今这个时代这些技术也并不是什么新鲜的东西,如果去掌握和挖掘最关键的还是自己花时间和花精力去探讨和研究 |
---|
三、中间件技术和架构概述
四、单体结构和分布式结构的对比
单体架构:
缺点:
1:耦合度太度
2:运维的成本过高
3:不易维护
4:服务器的成本高
5:升级架构的复杂度增大
分布式:
五、安装RabbitMQ
1、rabbitmq和erlang版本关系
http://www.rabbitmq.com/which-erlang.html
在 RabbitMQ 中需要注意两点:
(1)、RabbitMQ 依赖于 Erlang,需要先安装 Erlang
(2)、Erlang 和 RabbitMQ 版本有对应关系
2、安装 Erlang 25.0
先安装一些必要的依赖:
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget
注意:因为每个人的操作系统环境是不一样的,缺少的依赖不同,根据提示安装即可。
如果下载太慢了,可以先下载文件,再上传服务器,https://www.erlang.org/downloads
//下载erlang
wget http://erlang.org/download/otp_src_25.0.tar.gz
//解压
tar -xvf otp_src_25.0.tar.gz
cd otp_src_25.0
//编译安装 --prefix= 配置安装路径
./configure --prefix=/usr/local/erlang
如果有 APPLICATIONS INFORMATION,DOCUMENTATION INFORMATION,没有影响。
//在./configuration生成了Makefile之后执行编译安装
make && make install
//如果提示缺少 socat(当前版本正常)
yum install -y socat
三、配置 Erlang 环境变量
vim /etc/profile
//加入一行
export PATH=$PATH:/usr/local/erlang/bin
//编译生效
source /etc/profile
四、安装RabbitMQ 3.10.5
下载地址: https://github.com/rabbitmq/rabbitmq-server/releases
//慢就下载好丢进去
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.10.6/rabbitmq-server-3.10.6-1.el8.noarch.rpm(我下载的是这个)
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.10.6/rabbitmq-server-3.10.6.tar.xz(也可以下载的是这个)
下载完的rpm包放到服务器
rpm -ivh rabbitmq-server-3.10.6-1.el8.noarch.rpm
五、配置RabbitMQ环境变量
假设下载的目录在 /lib/rabbitmq/lib/rabbitmq_server-3.10.6
vim /etc/profile
//添加一行
export PATH=$PATH:/lib/rabbitmq/lib/rabbitmq_server-3.10.6/sbin
//编译生效
source /etc/profile
六、启动RabbitMQ
cd /lib/rabbitmq/lib/rabbitmq_server-3.10.6/sbin
systemctl start rabbitmq-server #启动
systemctl stop rabbitmq-server #停止
systemctl restart rabbitmq-server #重启
systemctl status rabbitmq-server #查看状态
默认情况下,rabbitmq是没有安装web端的客户端插件,需要安装才可以生效
rabbitmq-plugins enable rabbitmq_management
一定要记住,在对应用服务器(阿里云,腾讯云,46云等)的安全组中开放15672的端口, 我就全开了。
默认端口:15672,可以自己查!
用guest用户登陆 guest/guest
结果报错了,不要着急,漫漫来。
#第一步:添加 admin 用户并设置密码
rabbitmqctl add_user admin 123456
#第二步:添加 admin 用户为administrator角色
rabbitmqctl set_user_tags admin administrator
#第三步:设置 admin 用户的权限,指定允许访问的vhost以及write/read
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
#第四步:查看vhost(/)允许哪些用户访问
rabbitmqctl list_permissions -p /
#第五步:查看用户列表
rabbitmqctl list_users
admin用户登陆,因为guest用户只支持内网访问,外网无法访问。 admin/123456
启动的常见问题是端口被占用,kill rabbitmq 重启即可
ps -ef | grep rabbit
kill -9 进程号
./rabbitmq-server start
本文来自博客园,作者:星星之草%,转载请注明原文链接:https://www.cnblogs.com/zhaodefu/articles/16531836.html