首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

(无密)Netty+Nacos+Disruptor自研企业级API网关香气依稀似梦波

Netty+Nacos+Disruptor自研企业级API网关

download:https://www.97yrbl.com/t-1672.html

Disruptor是一个高性能的并发框架,由LMAX公司开发并开源。它主要用于解决在高并发情况下,传统的线程池模型面临的各种问题。

在传统的线程池模型中,线程池维护一组线程

任务被提交到线程池中,然后由线程池中的线程执行。但是,在高并发情况下,这种模型会面临各种问题,例如线程切换开销大、锁争用等等。而Disruptor采用了一种完全不同的模型,将任务交给RingBuffer来管理,消费者从RingBuffer中获取任务并执行,生产者将任务放入RingBuffer中。这种模型避免了线程切换和锁等问题,同时也提升了系统的性能。

Disruptor的核心是RingBuffer

RingBuffer是一个环形队列,内部存储了所有的事件对象。RingBuffer可以被看做是一个循环数组,每个位置存储一个事件对象。当生产者向RingBuffer中添加事件时,它会将事件放入下一个可用的位置中,消费者从RingBuffer中获取事件时,它会从下一个可用的位置中取出事件。为了保证多个生产者和消费者之间的并发访问安全,需要使用序号屏障来进行控制,序号屏障可以保证不同的消费者和生产者之间的数据不会发生冲突。

Disruptor的另一个关键组件是事件处理器。

事件处理器用于从RingBuffer中获取事件并执行,每个事件处理器都有一个Sequence对象,用于记录处理到哪个位置了。当消费者从RingBuffer中获取事件时,它会将自己的Sequence对象更新为当前获取到的事件的位置。这样,就可以保证不同的消费者之间不会重复消费同一个事件。

总之,Disruptor是一个非常优秀的高性能并发框架,它的出现解决了传统线程池模型在高并发情况下所面临的各种问题。如果你需要构建一个高并发、高性能的系统,那么Disruptor绝对值得一试。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230523A066H300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券