当前位置: 首页 > wzjs >正文

大连网站推广招聘建网站一般需要多少钱

大连网站推广招聘,建网站一般需要多少钱,西安市官网,科技为了上大学上交可控核聚变一、RabbitMQ 消息可靠传输机制RabbitMQ 消息传递的三层可靠性保障生产者到 Broker:发布确认(Publisher Confirm):生产者发送消息后,Broker 通过confirm机制异步通知消息接收状态(ack/nack)&…
一、RabbitMQ 消息可靠传输机制
  1. RabbitMQ 消息传递的三层可靠性保障
  • 生产者到 Broker:
    • 发布确认(Publisher Confirm):
      • 生产者发送消息后,Broker 通过confirm机制异步通知消息接收状态(ack/nack);
      • 支持批量确认(减少网络开销)和异步监听(通过addConfirmListener)。
  • Broker 内部存储:
    • 持久化:队列(durable: true)、消息(deliveryMode: 2)、交换机均需设置持久化,结合fsync策略确保落盘。
  • 消费者接收消息:
    • 消费者 ACK(Acknowledgement):
      • 消费者处理完消息后需显式发送 ACK(basic.ack),否则 Broker 会重新投递(默认autoAck=false);
      • 支持批量 ACK(multiple=true)和拒绝消息(basic.reject/basic.nack)。
  1. 死信队列(Dead Letter Queue, DLQ)的原理与应用
  • 触发条件:
    • 消息被拒绝(basic.reject/basic.nackrequeue=false);
    • 消息超时未消费(通过x-message-ttl设置过期时间);
    • 队列达到最大长度(x-max-length)。
  • 实现步骤:
    1. 创建死信交换机和队列;
    2. 正常队列设置x-dead-letter-exchange指向死信交换机;
    3. 消息进入死信队列后,可通过人工处理或自动重试机制(如设置死信队列的x-dead-letter-exchange为原交换机实现重试)。
  1. RabbitMQ 如何保证消息不丢失?
  • 生产者防丢失:启用发布确认,记录未确认消息,定时重试;
  • Broker 防丢失:开启持久化(队列、消息、交换机),部署集群(镜像队列mirrorQueue);
  • 消费者防丢失:关闭autoAck,处理成功后再发送 ACK。
二、Kafka 高吞吐量设计与场景
  1. Kafka 高吞吐量的核心技术点
  • 顺序读写:消息追加到分区末尾,利用磁盘顺序读写速度接近内存(约 600MB/s vs 100MB/s 随机读写);
  • 零拷贝(Zero Copy):通过sendfile系统调用,避免用户态与内核态数据拷贝(如 Linux 下sendfile直接将文件数据发送到网络);
  • 批量发送:将多条消息合并为一个批次(Batch)发送,减少网络开销(通过batch.size参数配置);
  • 分区并行:每个 Topic 划分为多个分区,消费者组内多实例并行消费不同分区。
  1. Kafka 的 ISR、AR、OSR 概念及作用
  • ISR(In-Sync Replicas):与 leader 副本保持同步的 follower 副本集合;
  • AR(Assigned Replicas):分区的所有副本(包括 leader 和 follower);
  • OSR(Out-of-Sync Replicas):落后 leader 太多的 follower 副本,会被移出 ISR;
  • 作用:ISR 机制保证消息至少被写入一个副本,当 leader 宕机时从 ISR 中选新 leader,避免数据丢失。
  1. Kafka 消费者如何保证消费顺序?
  • 单分区顺序:同一分区内的消息按生产顺序存储,单消费者实例消费时保持顺序;
  • 跨分区顺序:若需要全局顺序,需将同一业务数据路由到同一分区(如key=user_id),且该分区仅由一个消费者消费。
三、RocketMQ 事务消息特性与实现
  1. RocketMQ 事务消息的两阶段提交流程
  • 阶段一:发送半消息
    • 生产者发送半消息(对消费者不可见)到 Broker;
    • Broker 存储半消息并返回成功。
  • 阶段二:执行本地事务
    • 生产者执行本地事务(如数据库操作);
    • 根据事务结果发送CommitRollback到 Broker:
      • Commit:半消息对消费者可见;
      • Rollback:Broker 删除半消息。
  • 阶段三:事务状态回查
    • 若 Broker 未收到阶段二结果,会定期回查生产者事务状态(默认 6 次,间隔 10 秒),确保最终一致性。
  1. RocketMQ 与 Kafka、RabbitMQ 的适用场景对比
中间件
吞吐量
延迟
可靠性
典型场景
RabbitMQ
中低
低(ms 级)
强可靠性(ACK、DLQ)
电商订单、实时通信
Kafka
中(ms 级)
最终一致性
日志收集、实时分析
RocketMQ
强可靠性 + 事务消息
金融交易、分布式事务
四、面试高频问题与实战场景
  1. RabbitMQ 的 ACK 机制如何避免重复消费?
  • 幂等性设计:
    • 消息携带唯一 ID(如 UUID),消费者处理前检查是否已消费(可存 Redis 或数据库);
    • 业务操作设计为幂等(如数据库主键冲突时忽略插入)。
  • 示例代码:
java
// 消费者接收消息 channel.basicConsume(queueName, false, (consumerTag, delivery) -> { String messageId = delivery.getProperties().getHeaders().get("messageId").toString(); // 检查Redis是否已消费 if (redis.exists("processed:" + messageId)) { channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false); return; } try { // 处理业务逻辑 processMessage(delivery.getBody()); // 标记已消费 redis.setex("processed:" + messageId, 86400, "1"); channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false); } catch (Exception e) { channel.basicNack(delivery.getEnvelope().getDeliveryTag(), false, true); // 重新入队 } }, consumer -> {});
  1. Kafka 如何处理消息积压?
  • 临时扩容:增加分区数和消费者实例数,提升消费能力;
  • 批量处理:增大fetch.max.bytesmax.poll.records,减少拉取次数;
  • 跳过无效消息:若积压消息已过期,可重置消费偏移量(seek到最新位置);
  • 离线处理:将积压消息写入新 Topic,主流程处理实时消息,积压消息异步处理。
  1. RocketMQ 事务消息中的半消息状态异常如何处理?
  • 回查机制:
    • 生产者实现LocalTransactionState checkLocalTransactionState(Message message)方法,根据消息 ID 查询本地事务状态;
    • 若本地事务已提交,Broker 将半消息标记为可消费;若回滚则删除半消息。
  • 人工干预:
    • 若回查多次仍无法确定状态,可通过管理平台手动标记事务状态。
五、延伸:分布式消息队列的选型与优化
  1. 如何选择适合的消息队列?
  • 可靠性优先:RabbitMQ(ACK、DLQ)或 RocketMQ(事务消息);
  • 吞吐量优先:Kafka(分区并行 + 零拷贝);
  • 复杂路由需求:RabbitMQ(灵活的交换机类型);
  • 生态整合:Kafka 与 Flink/Spark Streaming 集成更紧密,RocketMQ 与 Spring Cloud Alibaba 兼容。
  1. 消息队列的性能优化方向
  • RabbitMQ:
    • 启用confirm模式减少生产者等待;
    • 使用lazy queue将非活跃消息持久化到磁盘,释放内存。
  • Kafka:
    • 调整batch.sizelinger.ms平衡吞吐量与延迟;
    • 启用compression.type(如 Snappy)减少网络传输量。
  • RocketMQ:
    • 配置sendMessageThreadPoolNums优化发送线程数;
    • 利用Dledger模式实现主从自动切换,提升可用性。
六、总结:消息队列核心能力
  • RabbitMQ:聚焦可靠性与灵活路由,适合企业级业务场景;
  • Kafka:擅长高吞吐低延迟的数据流转,适合大数据场景;
  • RocketMQ:在可靠性与吞吐量间平衡,支持分布式事务等企业级特性。
http://www.dtcms.com/wzjs/9110.html

相关文章:

  • 和文化有关的吉网站建设模板百度代理推广
  • 网站建设与管理实训心得保定关键词优化软件
  • 网站建设感恩四川成都最新消息
  • 网页开发入门百度seo排名优化系统
  • 做网站的字体一键优化清理加速
  • 徐州品牌网站建设|徐州网站优化|徐州网络公司-徐州启思信息科技新产品推广方案怎么写
  • 名费网站制作视频教程网站推广建站
  • 简述网站建设基本流程怎么在百度做网站推广
  • 东莞优化公司收费天津搜索引擎seo
  • 网站的外部链接怎么做网站优化排名软件哪些最好
  • 在线教育网站策划方案关键词搜索优化外包
  • 犀牛云做网站做网站需要多钱简述影响关键词优化的因素
  • 怎么做云购网站吗站长网站查询工具
  • 宿州公司网站建设seodao cn
  • 美容加盟网站建设网站制作流程和方法
  • 什么网站能找到做展览的工人酒店推广渠道有哪些
  • 网站模板后台爱站工具seo综合查询
  • 新万网站建设重庆排名优化整站优化
  • dw怎么做phpcms网站百度seo在线优化
  • 网站建设与管理好处域名站长工具
  • 做防水施工 上什么网站找廊坊seo排名扣费
  • 小学门户网站建设方案百度霸屏培训
  • 买网站模板福州seo推广公司
  • 网站建设2019关键词自动优化工具
  • 海南网站建设方面seo效果分析
  • 怎么样注册网站图片外链工具
  • 变身变装 wordpress云南优化公司
  • 沈阳定制网站方案洛阳搜索引擎优化
  • 做谷歌网站使用什么统计代码seo简介
  • 上海找做网站公司好seo新闻