1.同步调用和异步调用
同步调用:A服务调用B服务,需要等待B服务执行完毕后的返回值,A服务继续执行
REST:ribbon、Feign
RPC:Dubbo
异步调用:A服务调用B服务,只是通知B服务执行,A服务不需要等待继续执行
通过消息队列实现异步调用
2.消息队列概念
2.1MQ全称是Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接他们。
2.2消息传递是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。
3.RabbitMQ的特性:
稳定可靠:使用一些机制来保证可靠性,如持久化、传输确认、发布确认
灵活路由功能。
可伸缩性:支持消息集群,多台RabbitMQ服务器可以组成一个集群
高可用性:RabbitMQ集群中的某个节点出现问题时队列仍然可用
支持多种协议、多语言客户端
良好的管理界面
提供跟踪机制:如果消息出现异常,可用通过跟踪机制分析异常原因
提供插件机制:可通过插件进行多方面扩展
4.下载erlang与RabbitMQ,并安装erlang
4.1)yum remove erlang*
4.2)yum -y install make gcc-c++
4.3)yum -y make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC unixODBC-devel httpd python-simplejson
4.4)wget http://www.erlang.org/download/otp_src_20.1.tar.gz
4.5)wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.0/rabbitmq-server-generic-unix-3.7.0.tar.xz
4.6)tar -xvf otp_src_20.1.tar.gz
4.7)cd otp_src_20.1
4.8)把erlang安装到指定位置,例如/usr/local/erlang目录下
./configure --prefix=/usr/local/erlang --enable-smp-support --enable-threads --enable-sctp --enable-kernel-poll --enable-hipe --with-ssl --without-javac
4.9)编译安装
make && make install
4.10)配置erlang环境变量
vi /etc/profile
将export PATH=$PATH:/usr/local/erlang/bin 添加到文件末尾
4.11)重新加载配置文件
source /etc/profile
4.12)安装RabbitMQ
xz -d rabbitmq-server-generic-unix-3.7.0.tar.xz
4.13)再解压tar文件
tar -xvf rabbitmq-server-generic-unix-3.7.0.tar
4.14)启动RabbitMQ
进入到RabbitMQ的sbin目录
cd rabbitmq_server-3.7.0/sbin
4.15)启动
./rabbitmq-server -detached
4.16)查看进程
ps aux|grep rabbit
4.17)启动管理界面
./rabbbitmq-plugins enable rabbitmq_management
4.18)放行5672、15672端口
4.19)访问rabbitmq的服务也买你
ip:15672
5.RabbitMQ管理
5.1)图解RabbitMQ
查看图一.png
5.2)逻辑结构
用户
虚拟主机
队列
5.3)用户管理
5.3.1)命令行用户管理
在Linux中使用命令创建用户
进入到rabbit_mq的sbin目录
cd /usr/local/rabbitmq_server-3.7.0/sbin
新增用户
./rabbitmqctl add_user ytao admin123
设置用户级别
用户级别
5.3.1.1)administrator 可以登录控制台、查看所有信息、可以对RabbitMQ进行管理
5.3.1.2)monitoring 监控者、登录控制台、查看所有信息
5.3.1.3)policymaker 策略制定者、登录控制台、指定策略
5.3.1.4)managment 普通管理员 登录控制台
./rabbitmqctl set_user_tags ytao administrator
5.3.2)在页面创建用户
看图二.png
5.3.3)创建虚拟机
看图三.png
5.3.4)删除用户
图四.png、图五.png
5.3.5)分配主机
图六.png
6.RabbitMQ的工作模式