Q1:如果用户产生了一条消息,我是直接存入到数据库中呢?还是等待达到一定的数量了,我再存入数据库中呢?如果是第二种的话,我将数据存在内存中,是不是还需要开一个线程监听内存中的消息数量啊?还有就是此时如果用户想要查看历史记录,实现起来会不会很麻烦啊?
Q2:最近学习了下disruptor,了解了disruptor的原理,现在有一点不太明白,怎么才能让消费者是多线程的呢?好像例子里面都是单个消费者,那么如果任务量太多的话,应该会很慢吧?难道在消费者里面开辟多个线程吗?望板桥老师指点:)
Q1:如果用户产生了一条消息,我是直接存入到数据库中呢?还是等待达到一定的数量了,我再存入数据库中呢?如果是第二种的话,我将数据存在内存中,是不是还需要开一个线程监听内存中的消息数量啊?还有就是此时如果用户想要查看历史记录,实现起来会不会很麻烦啊?
Q2:最近学习了下disruptor,了解了disruptor的原理,现在有一点不太明白,怎么才能让消费者是多线程的呢?好像例子里面都是单个消费者,那么如果任务量太多的话,应该会很慢吧?难道在消费者里面开辟多个线程吗?望板桥老师指点:)
多个消费者和多个线程没有必然关系,就像守护socket是一个线程,而响应socket传过来的事件是多线程一样。
多个消费者和多个线程没有必然关系,就像守护socket是一个线程,而响应socket传过来的事件是多线程一样。 ...
感谢banq老师的回答,我现在打算把message放在disruptor的ringbuffer里面,然后然一个消费者来消费,然后在消费者里面开一个线程池 让这里面的线程来实现数据的存储。您看这样好么?
其实我最初的打算是使用多个消费者,然后一个消费者一个线程,然后实现功能。我就把一个消费者看成一个线程了。现在disruptor里面不就是一个消费者一个线程嘛。