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

小程序模板下载安装重庆seo排

小程序模板下载安装,重庆seo排,江门网站优化经验,哪家做网站好 成都一、发送事务消息案例 事务消息共有三种状态,提交状态、回滚状态、中间状态: TransactionStatus.CommitTransaction: 提交事务,它允许消费者消费此消息。TransactionStatus.RollbackTransaction: 回滚事务,它代表该消息将被删除…

一、发送事务消息案例

        事务消息共有三种状态,提交状态、回滚状态、中间状态: 

  • TransactionStatus.CommitTransaction: 提交事务,它允许消费者消费此消息。
  • TransactionStatus.RollbackTransaction: 回滚事务,它代表该消息将被删除,不允许被消费。
  • TransactionStatus.Unknown: 中间状态,它代表需要检查消息队列来确定状态。

        1.1创建事务性生产者

        使用 TransactionMQProducer类创建生产者,并指定唯一的 ProducerGroup,就可以设置自定义线程池来处理这些检查请求。执行本地事务后、需要根据执行结果对消息队列进行回复。回传的事务状态在上面说的。

    /*** 发送事务消息* @throws Exception*/@Testpublic void testTransactionProduce() throws Exception {TransactionListener transactionListener = new TransactionListenerImpl();TransactionMQProducer producer = new TransactionMQProducer("please_rename_unique_group_name");ExecutorService executorService = new ThreadPoolExecutor(2, 5, 100, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(2000), new ThreadFactory() {@Overridepublic Thread newThread(Runnable r) {Thread thread = new Thread(r);thread.setName("client-transaction-msg-check-thread");return thread;}});producer.setExecutorService(executorService);producer.setTransactionListener(transactionListener);producer.start();String[] tags = new String[] {"TagA", "TagB", "TagC", "TagD", "TagE"};for (int i = 0; i < 10; i++) {try {Message msg =new Message("TopicTest1234", tags[i % tags.length], "KEY" + i,("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET));SendResult sendResult = producer.sendMessageInTransaction(msg, null);System.out.printf("%s%n", sendResult);Thread.sleep(10);} catch (MQClientException | UnsupportedEncodingException e) {e.printStackTrace();}}for (int i = 0; i < 100000; i++) {Thread.sleep(1000);}producer.shutdown();}

2.事务监听接口

        当发送半消息成功时,我们使用 executeLocalTransaction 方法来执行本地事务。它返回前一节中提到的三个事务状态之一。checkLocalTransaction 方法用于检查本地事务状态,并回应消息队列的检查请求。它也是返回前一节中提到的三个事务状态之一。

 class TransactionListenerImpl implements TransactionListener {private AtomicInteger transactionIndex = new AtomicInteger(0);private ConcurrentHashMap<String, Integer> localTrans = new ConcurrentHashMap<>();/*** 本地事务*/@Overridepublic LocalTransactionState executeLocalTransaction(Message msg, Object arg) {int value = transactionIndex.getAndIncrement();int status = value % 3;localTrans.put(msg.getTransactionId(), status);return LocalTransactionState.UNKNOW;}/*** 状态回查*/@Overridepublic LocalTransactionState checkLocalTransaction(MessageExt msg) {Integer status = localTrans.get(msg.getTransactionId());if (null != status) {switch (status) {case 0:return LocalTransactionState.UNKNOW;case 1:return LocalTransactionState.COMMIT_MESSAGE;case 2:return LocalTransactionState.ROLLBACK_MESSAGE;}}return LocalTransactionState.COMMIT_MESSAGE;}
}

1.3事务消息使用上的限制

  1. 事务消息不支持延时消息和批量消息。
  2. 为了避免单个消息被检查太多次而导致半队列消息累积,我们默认将单个消息的检查次数限制为 15 次,但是用户可以通过 Broker 配置文件的 transactionCheckMax参数来修改此限制。如果已经检查某条消息超过 N 次的话( N = transactionCheckMax ) 则 Broker 将丢弃此消息,并在默认情况下同时打印错误日志。用户可以通过重写 AbstractTransactionalMessageCheckListener 类来修改这个行为。
  3. 事务消息将在 Broker 配置文件中的参数 transactionTimeout 这样的特定时间长度之后被检查。当发送事务消息时,用户还可以通过设置用户属性 CHECK_IMMUNITY_TIME_IN_SECONDS 来改变这个限制,该参数优先于 transactionTimeout 参数。
  4. 事务性消息可能不止一次被检查或消费
  5. 提交给用户的目标主题消息可能会失败,目前这依日志的记录而定。它的高可用性通过 RocketMQ 本身的高可用性机制来保证,如果希望确保事务消息不丢失、并且事务完整性得到保证,建议使用同步的双重写入机制。
  6. 事务消息的生产者 ID 不能与其他类型消息的生产者 ID 共享。与其他类型的消息不同,事务消息允许反向查询、MQ服务器能通过它们的生产者 ID 查询到消费者。
http://www.khdw.cn/news/39112.html

相关文章:

  • 网页设计与网站建设完全教程济南seo优化公司助力网站腾飞
  • 漯河哪个网站推广效果好外链发布论坛
  • wordpress获取本文地址和标题竞价关键词优化软件
  • 做网站公司怎么找西安官网seo
  • 网站建设和运营的课程网站营销推广
  • 新能源电动汽车价格安卓神级系统优化工具
  • 宗亲网站建设建议四年级2023新闻摘抄
  • 做汽车价格的网站江苏seo和网络推广
  • 网站开发用户登录前 登录后3天网站seo优化成为超级品牌
  • 网站建设定制网站建设公司哪家好今日头条新闻头条
  • 做b2b网站可以和对方还价吗seo关键词有哪些类型
  • 集团定制网站建设公司广州白云区疫情实时动态
  • 怎样自己建立一个网站2022当下社会热点话题
  • 珠海外贸网站建设网站优化方案怎么写
  • 如何搭建一个公司网站百度指数三个功能模块
  • 自有服务器可以做网站吗怎样做公司网站推广
  • wordpress 生成水印网站优化建设
  • 网站推广规范免费刷赞网站推广免费
  • 用什么做网站开发seo网站地图
  • 石家庄网站建设推广公司哪家好北京seo邢云涛
  • 什么是营销网络百度seo是什么意思呢
  • 镇江外贸网站建设电商网站排名
  • 杭州哪家公司做网站如何结合搜索检索与seo推广
  • 网站建设投标人资质长春网站建设推广
  • 做古风人物小图的网站或软件友情链接模板
  • 网站制作的流程包括明星百度指数排名
  • 网站开发的工具百度竞价排名规则
  • 做教育机构的设计哪些网站好网站推广app
  • 广东省南粤交通投资建设有限公司网站百度seo排名点击器app
  • 网页编辑器在线使用seo网络营销技术