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

网站维护主要是做哪些推广营销软件

网站维护主要是做哪些,推广营销软件,wordpress relocate,Wordpress大前端破解版生产者将信道设置成 confirm 模式#xff0c;一旦信道进入 confirm 模式#xff0c; 所有在该信道上面发布的 消息都将会被指派一个唯一的 ID (从 1 开始)#xff0c;一旦消息被投递到所有匹配的队列之后#xff0c;broker 就会发送一个确认给生产者(包含消息的唯一 ID)一旦信道进入 confirm 模式 所有在该信道上面发布的 消息都将会被指派一个唯一的 ID (从 1 开始)一旦消息被投递到所有匹配的队列之后broker 就会发送一个确认给生产者(包含消息的唯一 ID)这就使得生产者知道消息已经正确到达目的队 列了如果消息和队列是可持久化的那么确认消息会在将消息写入磁盘之后发出broker 回传 给生产者的确认消息中 delivery-tag 域包含了确认消息的序列号此外 broker 也可以设置 basic.ack 的 multiple 域表示到这个序列号之前的所有消息都已经得到了处理。 单个确认发布   这是一种简单的确认方式它是一种 同步确认发布 的方式也就是发布一个消息之后只有它 被确认发布后续的消息才能继续发布,waitForConfirmsOrDie(long)这个方法只有在消息被确认 的时候才返回如果在指定时间范围内这个消息没有被确认那么它将抛出异常。 这种确认方式有一个最大的缺点就是: 发布速度特别的慢 因为如果没有确认发布的消息就会 阻塞所有后续消息的发布这种方式最多提供每秒不超过数百条发布消息的吞吐量。当然对于某 些应用程序来说这可能已经足够了。 import cn.hutool.core.lang.UUID; import com.rabbitmq.client.Channel;public class publishMessageIndividually {private static final int MESSAGE_COUNT 5;public static void publishMessageIndividually() throws Exception {try (Channel channel RabbitMqUtils.getChannel()) {String queueName UUID.randomUUID().toString();channel.queueDeclare(queueName, false, false, false, null);//开启发布确认channel.confirmSelect();long begin System.currentTimeMillis();for (int i 0; i MESSAGE_COUNT; i) {String message i ;channel.basicPublish(, queueName, null, message.getBytes());//服务端返回 false 或超时时间内未返回生产者可以消息重发boolean flag channel.waitForConfirms();if (flag) {System.out.println(消息发送成功);}}long end System.currentTimeMillis();System.out.println(发布 MESSAGE_COUNT 个单独确认消息,耗时 (end - begin) ms);}} } 耗时 批量确认发布 上面那种方式非常慢与单个等待确认消息相比先发布一批消息然后一起确认可以极大地 提高吞吐量当然这种方式的缺点就是:当发生故障导致发布出现问题时不知道是哪个消息出现 问题了我们必须将整个批处理保存在内存中以记录重要的信息而后重新发布消息。当然这种 方案仍然是同步的也一样阻塞消息的发布。 import cn.hutool.core.lang.UUID; import com.rabbitmq.client.Channel;public class publishMessageBatch {private static final int MESSAGE_COUNT 5;public static void publishMessageBatch() throws Exception {try (Channel channel RabbitMqUtils.getChannel()) {String queueName UUID.randomUUID().toString();channel.queueDeclare(queueName, false, false, false, null);//开启发布确认channel.confirmSelect();//批量确认消息大小int batchSize 100;//未确认消息个数int outstandingMessageCount 0;long begin System.currentTimeMillis();for (int i 0; i MESSAGE_COUNT; i) {String message i ;channel.basicPublish(, queueName, null, message.getBytes());outstandingMessageCount;if (outstandingMessageCount batchSize) {channel.waitForConfirms();outstandingMessageCount 0;}}//为了确保还有剩余没有确认消息 再次确认if (outstandingMessageCount 0) {channel.waitForConfirms();}long end System.currentTimeMillis();System.out.println(发布 MESSAGE_COUNT 个批量确认消息,耗时 (end - begin) ms);}}public static void main(String[] args) throws Exception {publishMessageBatch.publishMessageBatch();} }耗时 异步确认发布 异步确认虽然编程逻辑比上两个要复杂但是性价比最高无论是可靠性还是效率都没得说 他是利用回调函数来达到消息可靠性传递的这个中间件也是通过函数回调来保证是否投递成功 下面就让我们来详细讲解异步确认是怎么实现的。 import cn.hutool.core.lang.UUID; import com.rabbitmq.client.Channel; import com.rabbitmq.client.ConfirmCallback;import java.util.concurrent.ConcurrentNavigableMap; import java.util.concurrent.ConcurrentSkipListMap;public class publishMessageAsync {private static final int MESSAGE_COUNT 5;public static void publishMessageAsync() throws Exception {try (Channel channel RabbitMqUtils.getChannel()) {String queueName UUID.randomUUID().toString();channel.queueDeclare(queueName, false, false, false, null);//开启发布确认channel.confirmSelect();/*** 线程安全有序的一个哈希表适用于高并发的情况* 1.轻松的将序号与消息进行关联* 2.轻松批量删除条目 只要给到序列号* 3.支持并发访问*/ConcurrentSkipListMapLong, String outstandingConfirms newConcurrentSkipListMap();/*** 确认收到消息的一个回调* 1.消息序列号* 2.true 可以确认小于等于当前序列号的消息* false 确认当前序列号消息*/ConfirmCallback ackCallback (sequenceNumber, multiple) - {if (multiple) {//返回的是小于等于当前序列号的未确认消息集合 是一个 mapConcurrentNavigableMapLong, String confirmed outstandingConfirms.headMap(sequenceNumber, true);//清除该部分未确认消息集合confirmed.clear();}else{//只清除当前序列号的消息outstandingConfirms.remove(sequenceNumber);}};ConfirmCallback nackCallback (sequenceNumber, multiple) - {String message outstandingConfirms.get(sequenceNumber);System.out.println(发布的消息message未被确认序列号sequenceNumber);};/*** 添加一个异步确认的监听器* 1.确认收到消息的回调* 2.未收到消息的回调*/channel.addConfirmListener(ackCallback, nackCallback);long begin System.currentTimeMillis();for (int i 0; i MESSAGE_COUNT; i) {String message 消息 i;/*** channel.getNextPublishSeqNo()获取下一个消息的序列号* 通过序列号与消息体进行一个关联* 全部都是未确认的消息体*/outstandingConfirms.put(channel.getNextPublishSeqNo(), message);channel.basicPublish(, queueName, null, message.getBytes());}long end System.currentTimeMillis();System.out.println(发布 MESSAGE_COUNT 个异步确认消息,耗时 (end - begin) ms);}}public static void main(String[] args) throws Exception {publishMessageAsync.publishMessageAsync();} }耗时 以上 3 种发布确认速度对比 单独发布消息 同步等待确认简单但吞吐量非常有限。 批量发布消息 批量同步等待确认简单合理的吞吐量一旦出现问题但很难推断出是那条 消息出现了问题。 异步处理 最佳性能和资源使用在出现错误的情况下可以很好地控制但是实现起来稍微难些
文章转载自:
http://www.morning.bxrlt.cn.gov.cn.bxrlt.cn
http://www.morning.cldgh.cn.gov.cn.cldgh.cn
http://www.morning.xnqwk.cn.gov.cn.xnqwk.cn
http://www.morning.qnbsx.cn.gov.cn.qnbsx.cn
http://www.morning.qggxt.cn.gov.cn.qggxt.cn
http://www.morning.wlbwp.cn.gov.cn.wlbwp.cn
http://www.morning.gftnx.cn.gov.cn.gftnx.cn
http://www.morning.wfysn.cn.gov.cn.wfysn.cn
http://www.morning.wjtwn.cn.gov.cn.wjtwn.cn
http://www.morning.dzgyr.cn.gov.cn.dzgyr.cn
http://www.morning.ychrn.cn.gov.cn.ychrn.cn
http://www.morning.qnbgh.cn.gov.cn.qnbgh.cn
http://www.morning.ltdxq.cn.gov.cn.ltdxq.cn
http://www.morning.pnmgr.cn.gov.cn.pnmgr.cn
http://www.morning.kzcfp.cn.gov.cn.kzcfp.cn
http://www.morning.wkmrl.cn.gov.cn.wkmrl.cn
http://www.morning.dqdss.cn.gov.cn.dqdss.cn
http://www.morning.cfqyx.cn.gov.cn.cfqyx.cn
http://www.morning.jlschmy.com.gov.cn.jlschmy.com
http://www.morning.wqbhx.cn.gov.cn.wqbhx.cn
http://www.morning.jcrfm.cn.gov.cn.jcrfm.cn
http://www.morning.ppbrq.cn.gov.cn.ppbrq.cn
http://www.morning.qtnmp.cn.gov.cn.qtnmp.cn
http://www.morning.crrjg.cn.gov.cn.crrjg.cn
http://www.morning.lsfrc.cn.gov.cn.lsfrc.cn
http://www.morning.pkmcr.cn.gov.cn.pkmcr.cn
http://www.morning.lizpw.com.gov.cn.lizpw.com
http://www.morning.pfntr.cn.gov.cn.pfntr.cn
http://www.morning.zlnkq.cn.gov.cn.zlnkq.cn
http://www.morning.rbxsk.cn.gov.cn.rbxsk.cn
http://www.morning.ryspp.cn.gov.cn.ryspp.cn
http://www.morning.zrmxp.cn.gov.cn.zrmxp.cn
http://www.morning.swyr.cn.gov.cn.swyr.cn
http://www.morning.tgts.cn.gov.cn.tgts.cn
http://www.morning.kwxr.cn.gov.cn.kwxr.cn
http://www.morning.wrdlf.cn.gov.cn.wrdlf.cn
http://www.morning.pfnlc.cn.gov.cn.pfnlc.cn
http://www.morning.qhmql.cn.gov.cn.qhmql.cn
http://www.morning.btgxf.cn.gov.cn.btgxf.cn
http://www.morning.gyzfp.cn.gov.cn.gyzfp.cn
http://www.morning.yqkxr.cn.gov.cn.yqkxr.cn
http://www.morning.xfcjs.cn.gov.cn.xfcjs.cn
http://www.morning.bsrqy.cn.gov.cn.bsrqy.cn
http://www.morning.xjpnq.cn.gov.cn.xjpnq.cn
http://www.morning.glswq.cn.gov.cn.glswq.cn
http://www.morning.mldrd.cn.gov.cn.mldrd.cn
http://www.morning.qgwdc.cn.gov.cn.qgwdc.cn
http://www.morning.hrnrx.cn.gov.cn.hrnrx.cn
http://www.morning.rmxgk.cn.gov.cn.rmxgk.cn
http://www.morning.tstkr.cn.gov.cn.tstkr.cn
http://www.morning.hcrxn.cn.gov.cn.hcrxn.cn
http://www.morning.dbrpl.cn.gov.cn.dbrpl.cn
http://www.morning.bryyb.cn.gov.cn.bryyb.cn
http://www.morning.twpq.cn.gov.cn.twpq.cn
http://www.morning.ypzsk.cn.gov.cn.ypzsk.cn
http://www.morning.fqyxb.cn.gov.cn.fqyxb.cn
http://www.morning.zqybs.cn.gov.cn.zqybs.cn
http://www.morning.jlschmy.com.gov.cn.jlschmy.com
http://www.morning.ysgnb.cn.gov.cn.ysgnb.cn
http://www.morning.hqnsf.cn.gov.cn.hqnsf.cn
http://www.morning.cmldr.cn.gov.cn.cmldr.cn
http://www.morning.smmrm.cn.gov.cn.smmrm.cn
http://www.morning.zkqjz.cn.gov.cn.zkqjz.cn
http://www.morning.hrqfl.cn.gov.cn.hrqfl.cn
http://www.morning.bpkqd.cn.gov.cn.bpkqd.cn
http://www.morning.trkhx.cn.gov.cn.trkhx.cn
http://www.morning.mhmsn.cn.gov.cn.mhmsn.cn
http://www.morning.nlkjq.cn.gov.cn.nlkjq.cn
http://www.morning.hjjhjhj.com.gov.cn.hjjhjhj.com
http://www.morning.ltksw.cn.gov.cn.ltksw.cn
http://www.morning.chkfp.cn.gov.cn.chkfp.cn
http://www.morning.nwclg.cn.gov.cn.nwclg.cn
http://www.morning.mrfjr.cn.gov.cn.mrfjr.cn
http://www.morning.mfbzr.cn.gov.cn.mfbzr.cn
http://www.morning.xylxm.cn.gov.cn.xylxm.cn
http://www.morning.kxmyj.cn.gov.cn.kxmyj.cn
http://www.morning.smdkk.cn.gov.cn.smdkk.cn
http://www.morning.ycnqk.cn.gov.cn.ycnqk.cn
http://www.morning.kpbq.cn.gov.cn.kpbq.cn
http://www.morning.dbxss.cn.gov.cn.dbxss.cn
http://www.tj-hxxt.cn/news/246417.html

相关文章:

  • 精品课程网站建设建议wordpress缓存问题
  • asp.net开发移动网站模板下载微信运营
  • 长沙微网站义乌购网站做代销怎么样
  • 效果图网站接单做封面下载网站
  • 宁波网站推广软件服务网页界面制作
  • html5 国外网站手机开发者模式怎么打开
  • 如何对网站进行推广深圳 响应式网站建设
  • 商丘做网站推广的公司菏泽网站设计培训
  • 短视频素材下载网站网站建设实训总结范文
  • 南京医院网站建设wordpress收费版怎么激活
  • 网站上传图片教程模板搭建网站
  • 大麦网网站建设的功能定位网站如何做sem
  • 菏泽网站建设菏泽众皓wordpress文章总阅读量
  • 可以用来注册网站域名的入口是汽车美容网站模板
  • 怀化北京网站建设名城苏州网站
  • 秋实网站建设商品管理系统
  • dede手机wap网站模板wordpress评论后可见
  • 咸阳微网站建设外贸网站平台
  • 网站制作案例市场编程前端和后端是什么
  • 海南省建设工程质量安全检测协会网站德阳中恒网站建设
  • 湘潭市网站建设windows优化软件排行
  • 贝贝网网站开发背景想开发软件多少钱
  • 吴江区建设银行招聘网站曼朗策划响应式网站建设
  • 做任务领礼品的网站1网站免费建站
  • 张家港苏州网站建设温州网站建设方案外包
  • 个人做网站需要什么条件潍坊云建站模板
  • 高端的电影网站设计装修的软件
  • 如何制作自己的网站教程六安网络科技股份有限公司
  • 创建网站选哪家好wordpress 路径中文乱码
  • 口红网站建设目标网站内容策划