关于reactor:聊聊Kafka-Reactor线程模型
1、是否简略形容下reactor线程模型?三个点,事件驱动、一个或者多个数据源、多路复用事件驱动简略了解 : 场景1 : 比如说小A HR要招聘一个NB的程序员,既要Java根底厉害,又波及大数据畛域(不单单只会皮毛的)的人,忽然小A在xxx招聘网站看到了一个小B,发现小B就是我想要找的人哈,怎么办?打个电话吧?嘟嘟嘟...,接通了,聊了聊,挺好,过去下班吧场景2 : 还有一种状况就是,小A和小B聊了聊,小A说,你先关注订阅一下咱们公司,咱们有新音讯了告诉你,因为我本人做不了主,须要主管看看,一个工夫,主管看了看,桌子一拍,唉吆喂,这不就是我想要找的人么,回调发一个邮件,来下班吧,小A收到邮件,高高兴兴来下班了 同步了解音讯驱动 :HR 小A在各种招聘网站都看,要么Java根底不行的,要么大数据不会的,肿么办?要不在xxx上公布一个招聘音讯吧,一旦有这样能力的人看到,说不定会分割我 总结 :简略了解 : 事件驱动就是我是被动的,比如说RPC,我被动来调用你,你有事件告诉我 ; 音讯驱动,我把音讯处理完毕了,放到这里了,你想生产就生产哈 一个或者多个数据源 : NIO 多路复用能够反对百万client连贯,承受客户端的Accept、Read、Write事件 多路复用 : client channel的注册到一个selector,轮询channel事件,事件处理 2、Kafka的 reactor线程模型能说说么?最好画个图吧?简略说说,Acceptor线程疯狂的承受客户端的连贯,come on,来和我建设连贯吧,Acceptor领有Processor线程的援用,过去了,是吧。好,打入到Processor线程中,一直的轮询打。一旦客户端有新的事件,我要读,好,Processor线程感知到了,而后又摔到一个线程平安的队列中,Handler线程池中,感知到了,会从队列中获取,比如说真正的IO操作(磁盘读/写操作,可能很浪费时间,没事,搞到线程池中,你干你的,不要阻塞我上游的线程),一旦Handler线程操作实现,因为Handler线程领有Processor中的响应队列援用,间接写回去,Processor线程在轮询的时候,吆,Handler处理完毕了,好吧,我写给客户端,好的,客户端实现了一次读取操作 欢送点赞加关注,用最简略的话,聊艰涩难懂的技术