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

建立网站的基本流程有哪些步骤体育网站模版

建立网站的基本流程有哪些步骤,体育网站模版,360指数在线查询,做网站的IT行业消息队列中的可靠性主要是分为三部分#xff1a; 消息不丢失#xff1a;确保消息从生产者发送到消费者消息不丢失消息不重复#xff1a;确保消息不被重复消费消息顺序性#xff1a;确保消费的顺序性 解决方案主要有以下几部分#xff1a; 消息不丢失 生产者确认机制持久…消息队列中的可靠性主要是分为三部分 消息不丢失确保消息从生产者发送到消费者消息不丢失消息不重复确保消息不被重复消费消息顺序性确保消费的顺序性 解决方案主要有以下几部分 消息不丢失 生产者确认机制持久化机制消费者确认机制高可用 消息不重复 消费者确认机制消息重试机制幂等性设计 消息顺序性 单消费者模式消息编号 生产者确认机制 作用 确保生产者发送的消息成功到达mq避免消息在传输过程中丢失 实现原理 生产者会发送消息之后mq会向生产者返回确认ack或未确认nack信号如果生产者收到ack说明消息已经成功发送 配置方式 开启生产者确认模式 Channel channel connection.createChannel(); channel.confirmSelect(); // 开启确认模式 处理确认和未确认 channel.addConfirmListener((sequenceNumber, multiple) - {// 消息确认System.out.println(Message confirmed: sequenceNumber); }, (sequenceNumber, multiple) - {// 消息未确认System.out.println(Message not confirmed: sequenceNumber); }); 适用场景 对消息可靠性要求高的场景如金融交易、订单处理等 持久化机制 作用 将消息和队列持久化到磁盘防止mq重启或者崩溃时消息丢失 实现原理 队列持久化将队列中的数据保存在磁盘消息持久化将消息内容保存到磁盘 配置方式 队列持久化 boolean durable true; channel.queueDeclare(my_queue, durable, false, false, null); 消息持久化 AMQP.BasicProperties properties new AMQP.BasicProperties.Builder().deliveryMode(2) // 2 表示持久化消息.build(); channel.basicPublish(, my_queue, properties, message.getBytes()); 适用场景 需要保证消息不丢失的场景如日志存储、重要数据同步 消费者确认机制 作用 确保消费者成功处理消息之后mq才会将消息从消息队列中删除避免消息丢失 实现原理 消费者处理完成消息后手动发送ack信号如果消费者未发送ackmq会将消息重新投递给其他消费者 配置方式 开启消费者确认 boolean autoAck false; // 关闭自动确认 channel.basicConsume(my_queue, autoAck, new DefaultConsumer(channel) {Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {// 处理消息System.out.println(Received: new String(body));// 手动发送 ackchannel.basicAck(envelope.getDeliveryTag(), false);} }); 适用场景 需要确保消息成功处理的场景如订单处理、消息通知等 死信队列 作用 处理无法正常消费的消息被拒绝或者过期避免消息丢失 实现原理 当消息无法被正常消费时mq将其转发到死信队列中死信队列可以配置独立的交换机和路由规则 配置方式 配置死信队列 MapString, Object args new HashMap(); args.put(x-dead-letter-exchange, my_dlx_exchange); // 设置死信交换机 args.put(x-dead-letter-routing-key, my_dlx_routing_key); // 设置死信路由键 channel.queueDeclare(my_queue, true, false, false, args); 适用场景 需要处理异常消息的场景如消息重试失败信息分析等 消息重试机制 作用 当消息处理失败的时候通过重试机制重新投递消息确保消息最终被成功处理 实现原理 消费者捕获异常并拒绝消息同时设置requeuetrue使用死信队列和TTL实现延迟重试 配置方式 拒绝消息重新入队 channel.basicConsume(my_queue, false, new DefaultConsumer(channel) {Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {try {// 处理消息System.out.println(Received: new String(body));channel.basicAck(envelope.getDeliveryTag(), false);} catch (Exception e) {// 处理失败拒绝消息并重新入队channel.basicNack(envelope.getDeliveryTag(), false, true);}} }); 适用场景 需要重试机制的场景如网络抖动、依赖服务不可用等 高可用性 作用 通过集群和经销队里额确保mq在节点出现故障仍然可以要运行避免消息丢失。 镜像队列结构是一主多从所有操作都是主节点完成然后同步给镜像节 点如果主节点宕机后镜像节点会替代成新的主节点 实现原理 集群多个mq节点组成的集群共享数据和队列状态镜像队列将队列镜像到多个节点确保队列的高可用性 配置方式 集群配置 rabbitmqctl join_cluster rabbitnode1 镜像队列配置 MapString, Object args new HashMap(); args.put(x-ha-policy, all); // 镜像到所有节点 channel.queueDeclare(my_queue, true, false, false, args); 适用场景 适用于高可用的场景如分布式系统、关键业务系统等 高可用性数据丢失怎么解决 在镜像队列主从同步的过程中会出现在主从同步完成前主节点就已经宕机可能出现数据丢失。 我们可以通过仲裁队列来进行解决和镜像队列一样都是主从模式支持主从数据同步但是不一样的点就是主从同步基于Raft协议强一致性 并且使用起来也非常简单不需要额外的配置在声明队列的时候只要指定 这个是仲裁队列即可
http://www.hkea.cn/news/14500488/

相关文章:

  • 做外围代理要有自己的网站速橙科技有限公司网站建设
  • 福州网络科技有限公司河北百度推广seo
  • 个人网站设计模板网站后台页面是什么
  • wordpress网站源码分享郑州网站定制
  • 网站建设北京市长沙定制网页设计
  • 自己做网站做淘宝联盟联锁酒店网站建设需求分析
  • 网站建设吉金手指专业13wordpress主题手动更新
  • 最好网站建站公司网站 建设 计划
  • 深圳网站运营托管wordpress开启报错
  • 免费网站怎么赚钱知名做网站
  • 建设一个购物网站要多少钱生活中常见的网络营销形式
  • 云优化网站建设山门做网站
  • 网站大小多少合适如何制作餐馆网站
  • 网络彩票代理怎么做社区网站网站开发实验心得
  • 长白山网站学做管理网站建设经费
  • 合川网站制作搜狗收录提交入口
  • 教你如何创建自己的网站海外seo托管
  • 举例行业门户网站班级优化大师功能介绍
  • 百度网站建立WordPress的登录页面
  • 百度站长统计山东住房和城乡建设厅网站主页
  • 深圳罗湖企业网站推广网站手机访问跳转代码
  • 做网站首页布局设计注意事项建设电商网站的总结
  • 做的比较炫的网站深圳招聘网站
  • 东莞软件网站推广2345网址导航删除办法
  • 免费建站哪个比较好免费做deal的网站
  • 北京矿建建设集团有限公司网站网站建设周期计划
  • 网站建设 豫icp备wordpress多站点用户互通
  • 网站服务器管理维护红酒网站建设方案范本
  • 芜湖网站建设网站制作公司成都小程序开发公司找哪家
  • wordpress网站会员太多绿植租摆网站建设