需要掌握:
基于分布式消息队列的服务器框架;
对进程、线程、协程有概念;
有异步开发思想。
背景:
项目中经常有异步rpc调用,需要写回调方法,语法上看着不顺眼(有点小傲娇),想通过同步的写法实现异步操作。
研究:
在网上找了一下java的协程框架,主要有quasar、kilim两种,还有一些协程插件(同事以前项目用过,有一些坑),主要研究了一下quasar,原理不讲了,网上很多。
研究中发现其实协程并不适合有状态的消息队列模式(或者我没想到解法),个人感觉比较适合平行执行多个相同逻辑的框架,比如web项目线程池结构,可以做成协程池,当协程执行数据库等IO阻塞操作的时候,就可以让出CPU给别的协程,性能提升的例子网上也有很多。
就我做的项目结构而言,预计会增加性能开销,换来的是语法的便捷。
环境配置
maven环境
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>