消息队列的认识
同步异步通讯
微服务间通讯有同步和异步两种方式
同步通讯:就像打电话,需要实时响应。
异步通讯:就像发邮件,不需要马上回复。
同步调用的优点:
时效性较强,可以立即得到结果
同步调用的缺点:
耦合度高
性能和吞吐能力下降
有额外的资源消耗
有级联失败问题
异步调用好处:
吞吐量提升:无需等待订阅者处理完成,响应更快速
故障隔离:服务没有直接调用,不存在级联失败问题
调用间没有阻塞,不会造成无效的资源占用
耦合度极低,每个服务都可以灵活插拔,可替换
流量削峰:不管发布事件的流量波动多大,都由 Broker 接收,订阅者可以按照自己的速度去处理事件
异步调用缺点:
架构复杂了,业务没有明显的流程线,不好管理
需要依赖于 Broker 的可靠、安全、性能
常见的消息队列对比:
RabbitMq的下载
RabbitMq是Erlang 语言开发的,所以下载RabbitMq需要先下载Erlang环境
RabbitMq和Erlang语言必须版本对应,下列连接可以查询版本对应表
RabbitMq下载 找到对应的版本下载完成后,开始配置对应的环境信息,可以查看下列帖子比较详细
下载和配置环境 配置完环境之后,进入安装目录下的sbin目录,执行
rabbitmq-plugins enable rabbitmq_management
安装插件,然后windows点击
打开浏览器输入http://127.0.0.1:15672/
后,出现登录按钮即可配置成功
Username和Password都为:guest
RabbitMq功能介绍:
Overview:
此界面为总览。主要包括一些节点信息和硬件信息
Connections:
此界面为连接信息,消息发布者和消费者都应该连接MQ,在此处可以查看连接信息
Channels:
此界面为通道信息,生产者消费者都应基于channels通道的连接和接收信息,每一个连上的人都应该创建Channel通道
Exchanges:
交换机,也成路由器,跟现实中的路由器效果类似
Queues:
消息队列,可做消息存储
Admin:
用户管理界面,管理用户
添加管理员:
新增之后没有访问权限,不同的用户可能产生冲突
下面为nfl创建虚拟主机:
回到user界面点击nfl
分配对应的权限
分配之后可以看到成功添加虚拟主机:
将guest的/test主机删除:
即可完成每个虚拟主机的权限划分:
一般情况下,每个用户有自己的虚拟主机
小结: