如何查看网站访问量(PV)和独立访客数(UV),以及网站建设的成效如何?
摘要:怎么查看网站的pv uv,网站建设这个工作怎么样,wordpress欢迎邮件代码,奖券世界推广网站一、概述 消息队列中间件(MQ)是不同系统之间消息传递&#xff0
怎么查看网站的pv uv,网站建设这个工作怎么样,wordpress欢迎邮件代码,奖券世界推广网站一、概述
消息队列中间件#xff08;MQ#xff09;是不同系统之间消息传递#xff0c;异步通信的常见组件#xff0c;RabbitMQ、Kafka和RocketMQ是目前业界常见的3种消息中间件#xff0c;本文重点阐述了他们特性差异、架构设计和处理常见问题的方案。
二、特性比较
Ra…一、概述
消息队列中间件MQ是不同系统之间消息传递异步通信的常见组件RabbitMQ、Kafka和RocketMQ是目前业界常见的3种消息中间件本文重点阐述了他们特性差异、架构设计和处理常见问题的方案。
二、特性比较
RabbitMQ适合于中小规模的使用场景是目前业界使用最广泛的一种MQ其完全实现了AMQP的协议实现了非常丰富的消息可靠性的保障机制和其他MQ相比其在可靠性方面是最强的但也正是由于可靠性方面实现机制过于沉重导致其吞吐量并不高在生产环境经常会出现消息积压的问题。
Kafka适合于实时流处理的使用场景在大数据处理领域经常见到可以用来处理海量的日志数据和IoT海量数据采集由于其基于文件顺序读写的存储架构和基于zero-copy的IO处理策略使得他的吞吐量非常之高性能非常之好能够达到百万级别的数据处理吞吐量其可靠性保障主要是基于多副本这种策略所以可靠性方面明显不如RabbitMQ。
RabbitMQKafkaRocketMQ使用场景中小规模的使用场景实时流处理、海量日志数据处理性能均衡优势在分布式事务场景可靠性高AMPQ协议保障低基于多副本机制保障中等基于事务的保障吞吐量低万级别高基于顺序读写的存储架构百万级别中等十万级别时效性毫秒级别毫秒级别毫秒级别优点可靠性非常高吞吐量非常大性能非常好集群高可用性能和功能全面擅长分布式事务方向缺点吞吐量比较低消息积累会影响性能基于erlang开发不好定制数据可靠性保障较低会存在数据丢失客户端只支持Java官方文档支持较少
三、常见问题处理策略
1.可靠性保障
RabbitMQ
持久化机制。RabbitMQ通过消息持久化机制来确保消息的可靠传递。生产者可以选择将消息标记为持久化使得即使在消息队列服务器故障后消息也能被保存并传递给消费者。RabbitMQ生产者提供的可靠性机制包括发布确认Publish Confirm、事务机制Transaction生产者可以通过发布确认和事务机制获取消息是否成功被RabbitMQ接收和处理的确认RabbitMQ生产者提供的可靠性保障机制包括消息确认机制ACK消费者可以通过消息确认机制来保障消息的可靠消费。
void basicAck(long deliveryTag, boolean multiple)//确认消息
void basicNack(long deliveryTag, boolean multiple, boolean requeue)//拒绝消息
void basicRecover(boolean requeue)//重发消息
Kafka
持久化。kafka的消息在发送前会被持久化存储到磁盘上即使在服务器重启后也不会丢失。但也需要对kafka的持久化消息设置失效时间保障存储空间的充足。多副本。Kafka采用多副本机制将消息复制到多个Broker节点上即使其中一个Broker节点故障仍然可以从其他副本节点读取和传递消息。
RocketMQ 和kafka类似。
总结RabbitMQ相比Kafka和RocketMQ他有跟丰富的可靠性保障机制包括保障生产者消息的可靠发送、数据的持久化还有消费者的可靠消费。
2.流控措施
流控措施主要是为了解决消息积压的问题如果生产者生成消息速率过快而消费者消费消息的速率过慢则会在MQ中形成消息挤压如果不及时处理就会造成MQ服务不可用或者OOM等问题。
RabbitMQ
调整消费者消息消费速率。主要是用来控制消费任务的条数。可以使用QoSQuality of Service机制设置每个消费者的预取计数限制每次从队列中获取的消息数量以控制消费者的处理速度。调整消费者消息消费流量。主要是用来控制消费消息的大小。通过设置basic.qos或basic.consume命令的参数来控制消费者的处理速度避免消息过多导致积压。
