Я понимаю, что HTTP2 в Jetty в основном связан с уровнями Connector, Transport и Channel.Каков наилучший способ реализации сервлета HTTP2 в Jetty?
Я пытаюсь решить, какая комбинация будет лучшим для транспортировки двоичных данных между клиентом и сервером:
- сервера Jetty http2 с асинхронным сервлетом + Jetty http2 клиентом сервера
- Jetty http2 с синхронизацией сервлета + Jetty http2 клиент
- Jetty http2 сервер с асинхронным сервлетом + Нетти http2 клиентом
- КПГРЫ клиент и сервер (оба по умолчанию Netty основы)
Деталь:
Я хотел бы передать двоичные данные моего клиенту, и я хотел бы соединение быть неблокирующим/асинхронным. Количество одновременных запросов клиентов может быть высоким, и сервер может занять несколько секунд (несколько раз) для ответа на некоторые запросы.
Каждый ответ представляет собой небольшой фрагмент двоичных данных. Мне бы понравилось, если бы я мог отправить Netty ByteBufs
непосредственно в качестве ответа вместо копирования на byte[]
или ByteBuffer
, но это напрямую не связано с этим вопросом.
Метод № 4 не мой любимый из-за ProtoBuf wrapping (link)limitation (link).
ссылки Jetty:
- http://download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/http2/client/HTTP2Client.html
- https://github.com/eclipse/jetty.project/tree/jetty-9.4.x/jetty-http2/http2-server/src/main/java/org/eclipse/jetty/http2/server
- https://github.com/fstab/http2-examples/blob/master/multiplexing-examples/jetty-client/src/main/java/de/consol/labs/h2c/examples/client/jetty/JettyClientExample.java
- https://groups.google.com/forum/#!topic/grpc-io/z0rhhetN1rE