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

Reply via email to