After investigating the above three frameworks, none of them could fit my needs, then I tried netty and implemented my needs on netty.
Now I am going to switch the framework of apisix-java-plugin-runner from reactor-netty to netty. I will be submitting a PR for review soon. I would like to hear your suggestions. *ZhengSong Tu* My GitHub: https://github.com/tzssangglass Apache APISIX: https://github.com/apache/apisix tzssangglass <[email protected]> 于2021年12月15日周三 15:34写道: > > Hi folks, > > I'm implementing a new feature of apisix-java-plugin-runner[1]. I am > having some problems. > > Now apisix-java-plugin-runner is based on reactor-netty[2] framework > to implement Unix Domain Socket communication with APISIX. > > The role of apisix-java-plugin-runner is server-side and the role of > APISIX is client-side. They worked well before. > > The problem I encountered while implementing the new feature is as follows: > > 1. request A enters apisix-java-plugin-runner and when processing > request A, create request B to APISIX > 2. get the response of request B from APISIX > 3. continue processing request A, and retuen response to APISIX > > I have tried to implement step 1 and 2, but step3 is difficult and I > can't interrupt processing request A due to the limitation of > reactor-netty framework. > > I also tried to contact the developers of reactor-netty and they > suggested me to choose a new framework[3]. > > I've done some research and the current optional implementations are > > 1. rsocket-java: https://github.com/rsocket/rsocket-java > 2. native Unix Domain Socket support based on JDK16: > https://openjdk.java.net/jeps/380 > 3. junixsocket: https://github.com/kohlschutter/junixsocket > > At this stage I prefer to use the Unix Domain Socket support native to JDK16. > > I'm doing a POC on these frameworks. > > I hope to get your guidance. > > [1]https://github.com/apache/apisix-java-plugin-runner > [2]https://github.com/reactor/reactor-netty > [3]https://github.com/reactor/reactor-netty/issues/1916 > > > > *ZhengSong Tu* > My GitHub: https://github.com/tzssangglass > Apache APISIX: https://github.com/apache/apisix
