theme theme
2024年12月05日 星期四

产品中心

  • RINT5311C

  • 更新时间:2024-12-05
  • 联系方式

    18030229050  /  0592-5709821

    欧阳 先生(销售

  • 举报
  • 收藏该店铺
  • 已收藏
详细信息

RINT5311C 实现细节与难点思考

下面就上面的方案涉及的几个技术细节进行进一步的解释。

1. 业务隔离

通过biz_type定义不同的业务类型,不同的biz_type可以定义不同的优先级(目前暂未支持),任务中保存biz_type信息。

业务信息(主键为biz_type)采用境外配置中心进行配置管理。方便新业务的接入和配置变更。业务接入时,需要在配置中添加诸如回调通知信息、回调重试次数限制、回调限频等参数。业务隔离的目的在于使各个接入业务不受其他业务的影响,这一点由于目前我们的定时器用于支持本团队内部业务的特点,仅采取对不同的业务执行不同业务限频规则的策略,并未做太多优化工作,就不详述了。

2. 时间轮空转问题

由于1000w分表,肯定是大部分Bucket为空,时间轮的指针推进存在低效问题。联想到在饭店排号时,常有店员来登记现场尚存的号码,就是因为可以跳过一些号码,加快叫号进度。同理,为了减少这种“空推进”,Kafka引入了DelayQueue,以bucket为单位入队,每当有bucket到期,即queue.poll能拿到结果时,才进行时间的“推进”,减少了线程空转的开销。在这里类似的,我们也可以做一个优化,维护一个有序队列,保存表不为空的时间戳。大家可以思考一下如何实现,具体方案不再详述。

3. 限频

由于定时器需要写kv,还需要回调通知业务方。因此需要考虑对调用下游服务做限频,保证下游服务不会雪崩。这是一个分布式限频的问题。这里使用到的是微信支付的限频组件。保证1.任务插入时不超过定时器管理员配置的频率。2.Notifier回调通知业务方时不超过业务方申请接入时配置的频率。这里保证了1.kv和事件中心不会压力太大。2.下游业务方不会受到超过其处理能力的请求量的冲击。

RINT5311C

RINT5311C

站内搜索

证书荣誉

当前暂无信息

联系我们

  • 联系人: 欧阳 先生
  • 位: 销售
  • 话: 0592-5709821
  • 机: 18030229050
  • 真: 0592-5917519

推荐系列

  • 资质公示 厦门光沃自动化设备有限公司 地址: 福建省 厦门市 厦门市海沧区沧湖东一里502号702室之一
  • 管理入口  技术支持:世铝网 长江有色
扫一扫,进入微商铺
您正在使用移动设备访问世铝网,您可以
浏览移动版,继续访问电脑版