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

南宁市建设工程造价信息网西安seo霸屏

南宁市建设工程造价信息网,西安seo霸屏,加强政府网站信息内容建设的实施意见,宁津县建设局网站背景 需要通过flink同时向测试和线上的RocketMQ中写入数据 现象 在程序中分别创建了两个MqProducer,设置了不同的nameServerAddr,分别调用不同的producer向不同环境发消息,返回发送成功,但是在线上MQ中却查不到数据&#xff0…

背景

需要通过flink同时向测试和线上的RocketMQ中写入数据

现象

在程序中分别创建了两个MqProducer,设置了不同的nameServerAddr,分别调用不同的producer向不同环境发消息,返回发送成功,但是在线上MQ中却查不到数据,测试环境是有的。
代码如下:

private DefaultMQProducer testEnvProducer;
private DefaultMQProducer prodEnvProducer;
@Override
public void open(Configuration parameters) throws Exception {if (testEnvProducer == null) {testEnvProducer = new DefaultMQProducer("_test");testEnvProducer.setNamesrvAddr(SINK_ADDRESS);testEnvProducer.start();}if (prodEnvProducer == null) {prodEnvProducer = new DefaultMQProducer("_prod");prodEnvProducer.setNamesrvAddr(SOURCE_ADDRESS);prodEnvProducer.start();}
}

在这里插入图片描述

解决过程及方案

由于不了解flink的运行机制,尝试将发送MQ的逻辑拆分为两个sink,无济于事,在中间遇到了创建DefaultMQProducer时设置的是同一个group,理论上是不同的环境不会有问题,prodProducer在start时却报该group的实例已经创建,当时就有点怀疑是不是两个producer是同一个。后又通过在消息体中增加profile明确区分开线上和测试的数据,发现应该发送到线上的数据却发送到了测试环境,此时断定是两个producer为同一个实例。
查看RocketMQ Client源码发现了factory这个参数
image.png
在这里插入图片描述

那问题大概率就是这个工厂导致的,工厂内做了缓存,让我们来看一看
image.png
内部通过构建了ClientId,再通过clinetId去缓存中查询是否有对应实例,有则直接返回,此时我们肯定要看一看构造clientId是否有可定义的参数
image.png
得知是通过ip及instanceName等参数构造的,instanceName又是系统变量,那我们需要做的就是在创建producer实例之前先修改该系统变量,修改后问题解决

public void open(Configuration parameters) throws Exception {if (testEnvProducer == null) {//需要覆盖该环境变量,因为mq client有内部缓存,使用了该环境变量作为获取client instance的条件,详情见 org.apache.rocketmq.client.ClientConfig#buildMQClientIdSystem.setProperty("rocketmq.client.name", "SEND_TO_TEST_CLIENT");testEnvProducer = new DefaultMQProducer(JOB_TAG + "_test");testEnvProducer.setNamesrvAddr(SINK_ADDRESS);testEnvProducer.start();}if (prodEnvProducer == null) {//需要覆盖该环境变量,因为mq client有内部缓存,使用了该环境变量作为获取client instance的条件,详情见 org.apache.rocketmq.client.ClientConfig#buildMQClientIdSystem.setProperty("rocketmq.client.name", "SEND_TO_PROD_CLIENT");prodEnvProducer = new DefaultMQProducer(JOB_TAG + "_prod");prodEnvProducer.setNamesrvAddr(SOURCE_ADDRESS);prodEnvProducer.start();}
}

大家在实际开发中如果有这种场景的话也要注意哦!
在这里插入图片描述

http://www.ds6.com.cn/news/116536.html

相关文章:

  • 做目的旅游网站的怎样打开网站
  • 网站开发公司能不能去网络优化工程师工资
  • 最大的开源网站惠州seo推广外包
  • discuz轉wordpress石家庄seo扣费
  • 婚庆网站模板免费下载品牌推广方案范文
  • jsp购物网站开发环境滴滴友链
  • 云南网站建设优选平台南宁网站seo排名优化
  • 河东天津网站建设网站推广该怎么做
  • 西安做网站的公司有seo自学网官网
  • 做告状网站百度竞价投放
  • 重庆秀山网站建设报价网络营销策略分析
  • 网站要怎么做的web网站模板
  • 深圳专业极速网站建设公司域名注册查询
  • wordpress怎么用模版山西seo推广
  • 哈尔滨餐饮网站建设网站推广是做什么的
  • 成都专业网站建设aso优化重要吗
  • 网站制作方案怎么写百度第三季度财报2022
  • 网站如何做更新小红书推广渠道
  • 网站怎么申请微博登录沧州网络推广公司
  • 建设一个视频网站的成本世界搜索引擎大全
  • 校园网网站建设规划书网站统计分析工具的主要功能
  • 北京网络网站建设价格幽默软文经典案例300
  • b站播放量自助下单百度热议排名软件
  • 商丘做网站的电话企业为何选择网站推广外包?
  • 网站的客服一般怎么做百度网址大全
  • wordpress 全站ajaxqq空间秒赞秒评网站推广
  • 湖北公司网站建设多少钱互联网营销师培训费用是多少
  • 合肥网站设计制作怎么让某个关键词排名上去
  • 阿里巴巴做网站找谁最新战争新闻事件今天
  • 网站建设质量保证清远新闻最新