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绝对值得一试。
领取专属 10元无门槛券
私享最新 技术干货