The HTTP/2 protocol is the latest evolution of the HTTP protocol addressing the issue of HTTP/TCP impedance mismatch. Web applications have been working around this problem for years employing techniques like concatenation or css spriting to reduce page load time and improve user experience. HTTP/2 is also a game changer on the server enabling increased concurrency. This talk will focus on the impact HTTP/2 will have on the server and examine how particularly well adapted the Vert.x concurrency model is to serve HTTP/2 applications.
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Better performances with HTTP/2
1. Better performances with HTTP/2
and Eclipse Vert.x
Thomas Segismont, Senior Software Engineer, Red Hat
2. Agenda
• Improving web performance with HTTP/2
• Scalable service architectures with HTTP/2
3. Who am I?
• tsegismont @ GitHub / Twitter / Gmail / Freenode
• Vert.x core team since August 2016
• At Red Hat since November 2012 (RHQ and Hawkular)
10. HTTP/2
• A better TCP transport for actual HTTP request and responses
• Same HTTP semantics
• RFC7540 : Hypertext Protocol version 2
• RFC7541 : Header Compression for HTTP/2
11. HTTP/2
• H2
– TLS/SSL
– Mandatory for browsers
– ALPN extension to negotiate HTTP/1 or HTTP/2
• H2C
– Clear text
– Via HTTP/1 upgrade or directly
12. Framed protocol
• Defines a set of frames encoded in binary on a single
connection
– Settings
– Headers
– Data
– Flow control
– Push, Priority, Ping
– Reset
13. Settings frames
• First frame exchanged by client and server
– Max concurrency
– Max frame size
– … etc
28. Eclipse Vert.x is a toolkit for
building reactive and polyglot
applications for the JVM
29. Vert.x
• Latest and greatest Vert.x 3.4.1
– Scala and Kotlin support
– RxJava improvements
– MQTT server
– Kafka client
– gRPC support
– Web client
– Infinispan cluster manager
– … and much more!
43. Conclusion
• Unleash concurrency with HTTP/2
• Keep the good old HTTP/1 semantics
• Non blocking is a key factor for high concurrency
• Vert.x is a great fit for HTTP/2
– Reactive ecosystem
– Easy to scale