What Java / Clojure SPDY clients work to connect App Engine for engine calculation?

recently included App Engine sockets , and Google opened the Compute Engine to everyone , so you can now use SPDY to connect App Engine applications to support Compute Engine servers.

But there may be a problem with the support of the SPDY library, because popular Java SPDY clients, such as Square okhttp use java.util.concurrent for ConnectionPool , which are not in the JRE whitelist .

Are there Java SPDY client libraries that Googlers recommend or that are known to work with App Engine?

UPDATE . I was mistaken - java.util.concurrent classes are in the white list of Google JRE.

I searched for "concurrent" on the whitelisted page and found java.util.ConcurrentModificationException ...

 java.util.Collection java.util.Collections java.util.Comparator java.util.ConcurrentModificationException java.util.Currency java.util.Date java.util.Deque 

... and didn’t understand that the page has more whole java.util.concurrent classes.

Thanks to @ jesse-wilson for pointing out that:

https://github.com/square/okhttp/issues/195

Jesse also said that he had just talked with someone from the I / O on the App Engine team about launching OkHttp on the App Engine, and the person from the App Engine said:

The big problem is that OkHttp needs some special SSL classes on the bootclasspath to run on the JVM. You will never get this on (too dangerous), so SPDY on the App Engine is non-starter for any library.

In addition, Jesse said that the SPDY client in OkHttp is an internal API that is changing, so it is not intended to be used as a standalone client.

However, this is SPDY for the backend RPC, so to solve the SSL problem in GAE, you should disable SSL and just transfer the raw SPDY frames to the Compute Engine servers, since the Compute Engine automatically encrypts the communication between the servers.

Ilya Grigorik ( @igrigorik ) discusses disabling SSL in his AirBnB TechTalk on SPDY. In the end, he is betting on using SPDY for modern backend RPCs instead of things like Thrift, etc. Cm....

"Creating a modern web stack"

So, I'm still hunting for the Java SPDY client that will run on the App Engine. This can mean branching one and deleting all SSL files, unless they can be made to work by excluding the SSL classes from the assembly.

Any pointers to good Java SPDY clients are welcome.

UPDATE 2 . The guys from the SPDY developers list said that Jetty and Netty now have standalone SPDY client libraries:

Jetty SPDY Client:

 ;; Clojure dependencies [org.eclipse.jetty.spdy/spdy-core "9.0.3.v20130506"] [org.eclipse.jetty.spdy/spdy-client "9.0.3.v20130506"] 

Netty SPDY Client:

 ;; Clojure dependency [io.netty/netty-codec-http "4.0.0.CR3"] 

There is also a Twitter Finagle SPDY client, which is based on Netty:

Finagle SPDY Client:

 ;; Clojure dependency ;; [com.twitter/finagle-spdy "6.4.0"] 

The Jetty SPDY client allows you to run it over SSL or explicitly , so that it can circumvent SSL restrictions for Engine Engine applications, and since Jetty is what App Engine uses for its servlet container, it may be officially blessed or adapted.

I added a feature request to the problem tracker with App Engine ...

"Add SPDY client to the SDK to connect to the engine computing servers" https://code.google.com/p/googleappengine/issues/detail?id=9398

+4
source share

Source: https://habr.com/ru/post/1482120/


All Articles