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

简述网站建设的基本过程网站备案 备注关联性

简述网站建设的基本过程,网站备案 备注关联性,视频搜索引擎网站开发方法,百度推广代理商与总公司的区别这篇文章#xff0c;主要接收消息队列RabbitMQ七种模式之Publisher Confirms发布确认模式。 目录 一、消息队列 1.1、发布确认模式 1.2、案例代码 #xff08;1#xff09;引入依赖 #xff08;2#xff09;编写生产者【消息确认--单条确认】 #xff08;3#xf… 这篇文章主要接收消息队列RabbitMQ七种模式之Publisher Confirms发布确认模式。 目录 一、消息队列 1.1、发布确认模式 1.2、案例代码 1引入依赖 2编写生产者【消息确认--单条确认】 3编写生产者【消息确认--批量确认】 4编写生产者【消息确认--异步确认】 一、消息队列 1.1、发布确认模式 RabbitMQ消息队列中生产者发送消息给RabbitMQ的时候可能会出现发送失败的情况如果不进行处理此时这一条消息就将丢失。如何确保生产者一定能够将消息发送到RabbitMQ里面呢 RabbitMQ提出了一种发布确认模式这种模式大致思想是生产者发送消息给RabbitMQ时候如果RabbitMQ正确接收到消息后需要发给一个ACK标识给生产者生产者接收到ACK标记后就可以确认这一条消息发送成功啦。如果生产者没有接收到ACK标识则可以重复发送这一条消息给RabbitMQ这就可以确保消息不丢失。 发布确认模式有三种实现分别是逐条确认机制、批量确认机制、异步确认机制。 1.2、案例代码 1引入依赖 !-- 引入 RabbitMQ 依赖 -- dependencygroupIdcom.rabbitmq/groupIdartifactIdamqp-client/artifactIdversion5.16.0/version /dependency 2编写生产者【消息确认--单条确认】 生产者发送消息的时候需要调用【confirmSelect()】方法开启消息确认机制。生产者将消息发送完成之后需要调用【waitForConfirms()】方法阻塞等待RabbitMQ消息队列返回ACK标识。这个方法返回一个boolean类型true表示RabbitMQ接收消息成功false表示接收失败。【waitForConfirms()】方法还可以指定一个超时时间如果在这个超时时间里面RabbitMQ还没有返回ACK标识那么该方法将抛出一个InterruptedException中断异常。 package com.rabbitmq.demo.confirm;import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory;/*** version 1.0.0* Date: 2023/2/25 16:23* Copyright (C) ZhuYouBin* Description: 消息生产者*/ public class Producer {public static void main(String[] args) {// 1、创建连接工厂ConnectionFactory factory new ConnectionFactory();// 2、设置连接的 RabbitMQ 服务地址factory.setHost(127.0.0.1); // 默认就是本机factory.setPort(5672); // 默认就是 5672 端口// 3、获取连接Connection connection null; // 连接Channel channel null; // 通道try {connection factory.newConnection();// 4、获取通道channel connection.createChannel();// TODO 开启消息确认机制channel.confirmSelect();// 5、声明 Exchange如果不存在则会创建String exchangeName exchange_direct_2023;channel.exchangeDeclare(exchangeName, direct);// 6、发送消息for (int i 0; i 10; i) {// 路由键唯一标识String routingKey error;if (i % 3 0) {routingKey info;} else if (i % 3 1) {routingKey warn;}String message 这是发布确认模式发送的第【 (i1) 】条【 routingKey 】消息数据;channel.basicPublish(exchangeName, routingKey, null, message.getBytes());// 等待RabbitMQ返回ACK标识boolean wait channel.waitForConfirms();System.out.println(RabbitMQ是否接收成功: wait);if (!wait) {// 消息发送失败则可以重新发送channel.basicPublish(exchangeName, routingKey, null, message.getBytes());}}} catch (Exception e) {e.printStackTrace();} finally {if (null ! channel) {try {channel.close();} catch (Exception e) {}}if (null ! connection) {try {connection.close();} catch (Exception e) {}}}} }3编写生产者【消息确认--批量确认】 前一种方式是一条消息就调用一次【waitForConfirms()】方法阻塞等待RabbitMQ的ACK确认标识。但是这种方式是非常耗时的当需要发送的消息非常多的时候会严重影响系统性能所以为了解决这个问题提出了批量确认的方法。批量确认调用【waitForConfirmsOrDie()】方法此时会等待一批消息的ACK确认标识如果这一批消息中存在一个消息没有被RabbitMQ成功接收此时该方法将抛出一个【IOException】异常。所以可以通过捕获IOException异常来判断消息是否发送成功。这种方式的缺点当一批消息出现失败的情况时候我们没办法知道是哪一条消息失败了只能够重新将这一批消息重新发送。 package com.rabbitmq.demo.confirm;import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory;import java.io.IOException;/*** version 1.0.0* Date: 2023/2/25 16:23* Copyright (C) ZhuYouBin* Description: 消息生产者*/ public class ProducerBatch {public static void main(String[] args) {// 1、创建连接工厂ConnectionFactory factory new ConnectionFactory();// 2、设置连接的 RabbitMQ 服务地址factory.setHost(127.0.0.1); // 默认就是本机factory.setPort(5672); // 默认就是 5672 端口// 3、获取连接Connection connection null; // 连接Channel channel null; // 通道try {connection factory.newConnection();// 4、获取通道channel connection.createChannel();// TODO 开启消息确认机制channel.confirmSelect();// 5、声明 Exchange如果不存在则会创建String exchangeName exchange_direct_2023;channel.exchangeDeclare(exchangeName, direct);// 6、发送消息int batchSize 3;int count 0;for (int i 0; i 10; i) {// 路由键唯一标识String routingKey error;if (i % 3 0) {routingKey info;} else if (i % 3 1) {routingKey warn;}String message 这是发布确认模式发送的第【 (i1) 】条【 routingKey 】消息数据;channel.basicPublish(exchangeName, routingKey, null, message.getBytes());// 批量确认if (count batchSize) {// 等待RabbitMQ返回ACK标识channel.waitForConfirmsOrDie();count 0;}count;}} catch (IOException e) {System.out.println(消息发送失败啦);} catch (Exception e) {e.printStackTrace();} finally {if (null ! channel) {try {channel.close();} catch (Exception e) {}}if (null ! connection) {try {connection.close();} catch (Exception e) {}}}} }4编写生产者【消息确认--异步确认】 异步确认在消息发送之后调用【addConfirmListener()】方法该方法介绍两个参数第一个参数是成功接收到ACK标识的回调方法第二个参数是失败接收到NACK标识的回调方法。注意一定要先调用【addConfirmListener()】监听方法然后再发送消息如果两者顺序反了则监听方法不生效。 package com.rabbitmq.demo.confirm;import com.rabbitmq.client.Channel; import com.rabbitmq.client.ConfirmCallback; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory;import java.io.IOException;/*** version 1.0.0* Date: 2023/2/25 16:23* Copyright (C) ZhuYouBin* Description: 消息生产者*/ public class ProducerAsync {public static void main(String[] args) {// 1、创建连接工厂ConnectionFactory factory new ConnectionFactory();// 2、设置连接的 RabbitMQ 服务地址factory.setHost(127.0.0.1); // 默认就是本机factory.setPort(5672); // 默认就是 5672 端口// 3、获取连接Connection connection null; // 连接Channel channel null; // 通道try {connection factory.newConnection();// 4、获取通道channel connection.createChannel();// TODO 开启消息确认机制channel.confirmSelect();// 5、声明 Exchange如果不存在则会创建String exchangeName exchange_confirm_2023;channel.exchangeDeclare(exchangeName, direct);// TODO 一定要先调用监听接口在发送消息channel.addConfirmListener(new ConfirmCallback() {Overridepublic void handle(long deliveryTag, boolean multiple) throws IOException {System.out.println(RabbitMQ接收成功啦.....消息的标识deliveryTag deliveryTag ,批量发送多条消息multiple multiple);}}, new ConfirmCallback() {Overridepublic void handle(long deliveryTag, boolean multiple) throws IOException {System.out.println(RabbitMQ接收失败啦.....);}});for (int i 0; i 10; i) {// 6、发送消息String message 这是发布确认模式发送的消息数据;channel.basicPublish(exchangeName, queue_confirm_2023, null, message.getBytes());}} catch (IOException e) {System.out.println(消息发送失败啦);} catch (Exception e) {e.printStackTrace();} finally {if (null ! channel) {try {channel.close();} catch (Exception e) {}}if (null ! connection) {try {connection.close();} catch (Exception e) {}}}} }到此RabbitMQ消息队列中的发布确认模式就介绍完啦。 综上这篇文章结束了主要接收消息队列RabbitMQ七种模式之Publisher Confirms发布确认模式。
文章转载自:
http://www.morning.tbzcl.cn.gov.cn.tbzcl.cn
http://www.morning.grryh.cn.gov.cn.grryh.cn
http://www.morning.mfzyn.cn.gov.cn.mfzyn.cn
http://www.morning.gbqgr.cn.gov.cn.gbqgr.cn
http://www.morning.gqfks.cn.gov.cn.gqfks.cn
http://www.morning.rhkgz.cn.gov.cn.rhkgz.cn
http://www.morning.cwwts.cn.gov.cn.cwwts.cn
http://www.morning.jynzb.cn.gov.cn.jynzb.cn
http://www.morning.brzlp.cn.gov.cn.brzlp.cn
http://www.morning.qtzk.cn.gov.cn.qtzk.cn
http://www.morning.fwdln.cn.gov.cn.fwdln.cn
http://www.morning.krkwh.cn.gov.cn.krkwh.cn
http://www.morning.lhrcr.cn.gov.cn.lhrcr.cn
http://www.morning.dzqr.cn.gov.cn.dzqr.cn
http://www.morning.grbgn.cn.gov.cn.grbgn.cn
http://www.morning.srbfp.cn.gov.cn.srbfp.cn
http://www.morning.rnnts.cn.gov.cn.rnnts.cn
http://www.morning.pttrs.cn.gov.cn.pttrs.cn
http://www.morning.xsfny.cn.gov.cn.xsfny.cn
http://www.morning.wmhqd.cn.gov.cn.wmhqd.cn
http://www.morning.dpbdq.cn.gov.cn.dpbdq.cn
http://www.morning.hprmg.cn.gov.cn.hprmg.cn
http://www.morning.wqmyh.cn.gov.cn.wqmyh.cn
http://www.morning.mqfhy.cn.gov.cn.mqfhy.cn
http://www.morning.mmqng.cn.gov.cn.mmqng.cn
http://www.morning.gfrtg.com.gov.cn.gfrtg.com
http://www.morning.sdecsd.cn.gov.cn.sdecsd.cn
http://www.morning.junyaod.com.gov.cn.junyaod.com
http://www.morning.bfjtp.cn.gov.cn.bfjtp.cn
http://www.morning.bzqnp.cn.gov.cn.bzqnp.cn
http://www.morning.bkgfp.cn.gov.cn.bkgfp.cn
http://www.morning.0small.cn.gov.cn.0small.cn
http://www.morning.bpmdx.cn.gov.cn.bpmdx.cn
http://www.morning.rljr.cn.gov.cn.rljr.cn
http://www.morning.rfwrn.cn.gov.cn.rfwrn.cn
http://www.morning.dndjx.cn.gov.cn.dndjx.cn
http://www.morning.pwgzh.cn.gov.cn.pwgzh.cn
http://www.morning.bsqth.cn.gov.cn.bsqth.cn
http://www.morning.rjrh.cn.gov.cn.rjrh.cn
http://www.morning.skrww.cn.gov.cn.skrww.cn
http://www.morning.zbgqt.cn.gov.cn.zbgqt.cn
http://www.morning.dmfdl.cn.gov.cn.dmfdl.cn
http://www.morning.rptdz.cn.gov.cn.rptdz.cn
http://www.morning.rfrx.cn.gov.cn.rfrx.cn
http://www.morning.xpzrx.cn.gov.cn.xpzrx.cn
http://www.morning.banzou2034.cn.gov.cn.banzou2034.cn
http://www.morning.ztnmc.cn.gov.cn.ztnmc.cn
http://www.morning.kwqqs.cn.gov.cn.kwqqs.cn
http://www.morning.ypqwm.cn.gov.cn.ypqwm.cn
http://www.morning.lddpj.cn.gov.cn.lddpj.cn
http://www.morning.ztmnr.cn.gov.cn.ztmnr.cn
http://www.morning.cwyfs.cn.gov.cn.cwyfs.cn
http://www.morning.qrlkt.cn.gov.cn.qrlkt.cn
http://www.morning.pqrhb.cn.gov.cn.pqrhb.cn
http://www.morning.dqpd.cn.gov.cn.dqpd.cn
http://www.morning.bhgnj.cn.gov.cn.bhgnj.cn
http://www.morning.xyjlh.cn.gov.cn.xyjlh.cn
http://www.morning.pbtrx.cn.gov.cn.pbtrx.cn
http://www.morning.wjlhp.cn.gov.cn.wjlhp.cn
http://www.morning.rqgbd.cn.gov.cn.rqgbd.cn
http://www.morning.kyflr.cn.gov.cn.kyflr.cn
http://www.morning.xnpml.cn.gov.cn.xnpml.cn
http://www.morning.mmsf.cn.gov.cn.mmsf.cn
http://www.morning.plhyc.cn.gov.cn.plhyc.cn
http://www.morning.rcjyc.cn.gov.cn.rcjyc.cn
http://www.morning.dmnqh.cn.gov.cn.dmnqh.cn
http://www.morning.mmplj.cn.gov.cn.mmplj.cn
http://www.morning.yfrbn.cn.gov.cn.yfrbn.cn
http://www.morning.dnqliv.cn.gov.cn.dnqliv.cn
http://www.morning.rccbt.cn.gov.cn.rccbt.cn
http://www.morning.nbwyk.cn.gov.cn.nbwyk.cn
http://www.morning.ckwxs.cn.gov.cn.ckwxs.cn
http://www.morning.bpmtr.cn.gov.cn.bpmtr.cn
http://www.morning.phgz.cn.gov.cn.phgz.cn
http://www.morning.yrnyz.cn.gov.cn.yrnyz.cn
http://www.morning.qwyms.cn.gov.cn.qwyms.cn
http://www.morning.lmpfk.cn.gov.cn.lmpfk.cn
http://www.morning.hqrkq.cn.gov.cn.hqrkq.cn
http://www.morning.trjp.cn.gov.cn.trjp.cn
http://www.morning.kdrly.cn.gov.cn.kdrly.cn
http://www.tj-hxxt.cn/news/266561.html

相关文章:

  • 苏宁易购网站建设建议广告生成器在线制作
  • 合肥餐饮网站建设把网站内的文本保存到txt怎么做
  • 可以做exe的网站山东网站推广有限公司
  • 浙江省龙泉市建设局网站株洲外贸网站建设
  • 金华 网站建设婚礼现场布置效果图
  • 企业信息查询免费长春seo关键词排名
  • 南宁做企业网站一站式网站手机端怎么做
  • 北京的建设网站公司佛山公司做网站
  • 小而美企业网站建设字体怎么安装wordpress
  • 金融直播室网站建设又拍网站怎么做
  • 网站色彩的应用wordpress dosortcode
  • 专业建设金融行业网站的公司邱县手机网站建设
  • wordpress作企业网站好吗wordpress段落缩进
  • 网站如何做付费网络营销师课程
  • ajax网站潍坊专升本教育机构
  • 一流的永州网站建设黑帽seo软件
  • 门户网站关于建设公司网站的建议
  • 农业网站建设招标书金融网站建站
  • 阿里云网站建设方案书模板伪静态 wordpress
  • 东莞网站建设58优秀的网站建设公司
  • 网站开发最流行的语言南京网站建设一条龙
  • 阿里云二级域名网站怎么建设景安网站
  • php网站开发最新需求广州行业门户网站建设
  • 专业商城网站建设微信网站建设定制
  • 受欢迎的邯郸网站建设石牌桥网站建设
  • 学平面设计网站宁波网络营销咨询
  • 网站建设用哪个北京网页设计公司
  • 网站描述标签dede微电影网站模板下载
  • 找图做素材啥网站好自己的店铺如何弄小程序
  • 企业网站建设计什么科目广告网页制作