男女做那些事免费网站,wordpress后台目录无法访问,免费的建网站软件,网站开发维护人员同步和异步
#xff08;1#xff09;同步#xff08;按照流程一步一步做#xff09;使用openfengin传统的交互
响应时间长#xff0c;需要将每一步的时间加起来。如果一个环境出错了#xff0c;整个就报错了。并发压力大#xff0c;前边的步骤有多大的并发量#xff…同步和异步
1同步按照流程一步一步做使用openfengin传统的交互
响应时间长需要将每一步的时间加起来。如果一个环境出错了整个就报错了。并发压力大前边的步骤有多大的并发量后续就需要承担多大的并发量。
2异步微服务A无需等待微服务B之间返回微服务B可以等他空闲的时候来消费
响应时间相对更短无需等待服务B执行完成就返回响应。可以通过调节参数减少后续服务的并发量。
削峰填谷把高峰期的任务转移到低谷期执行。
qpskafkarocketmqrabbitmqactivemq
rabbitmq有可靠的消息确认机制并且吞吐量还行10w左右。
基础
消息发送端生产者 消息消费端消费者
TCP连接三握四挥
为了连接复用建立了channel。
broker示例搭建一个rabbitmq就叫一个brokerbroker分成很多个虚拟机
1.流程
生产者---------》channel---------》exchange交换机中转消息--------》queue队列暂存消息---------》channel-----------》消费者
2.交换机怎么知道把消息存放在那个队列中
交换机通过binding队列
5672客户端交互 15672图形化界面交互
3.rabbitmq的使用模式
默认的交换机
1简单工作队列模式生产者–队列----消费者
2工作队列生产者—默认交换机----队列----多个消费者轮询竞争
3发布订阅模式生产者----fanout类型交换机-----多个队列-----指定消费者监听
fanout交换机广播将消息发布到多个队列。多个消费端对于队列的关系是竞争关系。路由键是空。
交换机类型fanout广播、diret定向、topic通配符
(4)路由模式生产者----direct交换机-----使用多个不同的ronuting key绑定队列-----多个消费者
交换消息的时候指定交换机、路由键。channel和队列绑定指定路由键。
5主题模式生产者----topic交换机-----使用多个不同的ronuting key绑定队列-----多个消费者
在路由模式的基础上使用通配符匹配。
使用
可靠性
故障消息没有存放在消息队列保存在队列内存服务器宕机丢失消息没有消费成功。
1.消息没有发送到消息队列
解决
在生产者端进行确认如果失败就重试。
1生产者端交换机和队列的确认机制:配置文件开启确认机制配置类对mq模板增强。
2备份交换机制:目标交换器故障备份交换机可以执行目标交换机的业务或者做日志通知运维人员故障。在创建交换器的时候可视化界面可以指定备份交换机需要使用fanout类型。
2.消息队列服务器宕机内存数据丢失。
将消息持久化默认是持久化的
3.消费端宕机或者消息没有消费成功
消费成功消费端给mq返回ACK信息消息队列删除该消息。
消费失败消费端给mq返回NACK信息重试消费端的接口支持幂等性。
配置手动确认返回ack通知。
削峰填谷
yml配置prefetch参数每次取出的消息数量
死信
消费者拒收消息requeuefalse不把消息放到原目标队列
消息队列溢出消息放满了还放
消息超时rabbitmq服务器会自动删除过期的消息可以在创建队列时指定该队列存放消息的过期时间也可以对消息指定过期时间。
解决
丢弃、入库、监听进入死信队列:消费者监听死信队列做日志报警、人工干预。
延迟队列
消息超时时间死信队列某一个消息队列不监听设置一个超时时间。超时之后进入死信队列被消费者捕获到。
事务消息
当生产者代码出现错误的时候发送消息就会回滚注解RollBackture。默认开启回滚事务。