<commit_before>= JGroups HTTP/2 protocol

[link=http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22de.mklinger.jgroups%22%20AND%20a%3A%22jgroups-http2%22]
image::https://img.shields.io/maven-central/v/de.mklinger.jgroups/jgroups-http2.svg[]


== What is it?

This is a http://jgroups.org/[JGroups] protocol implementation based on HTTP/2.

JGroups is a messaging toolkit to form clusters. Nodes can discover each other,
reliably send messages to other nodes or to the whole cluster and detect failure
of other nodes.

JGroups is often used on a UDP-based node communication protocol, which has the
advantage of being really fast, but still reliable. Using JGroups over HTTP/2
may look like a strange idea, but it has enormous advantages:

- A bullet proof web server (like Tomcat or Jetty) can be used to handle incoming
  messages
- Transport encryption over HTTPS is secure, not too hard to do right and used 
  everywhere today.
- Cloud applications that listen to a HTTPS port anyway, don't need another
  open port to handle cluster messages 
- All authorization and authentication methods provided by the Servlet web server
  of your choice or by third party frameworks can be used for cluster messaging.
  This includes client certificates for authentication and Spring Security for 
  authentication and authorization.
- The HTTP/2 protocol is size optimized, compared to earlier HTTP versions.
- With HTTP/2, there is only one open socket connection when communicating with 
  another node. Connections are re-used by default and there is no connection
  pool. One connection can be used pseudo-concurrently, thanks to HTTP/2 frames.


== License

This projects is licensed under https://www.apache.org/licenses/LICENSE-2.0[Apache License 2.0].


== Usage

Maven dependency:

[source,xml]
----
<dependency>
  <groupId>de.mklinger.jgroups</groupId>
  <artifactId>jgroups-http2</artifactId>
  <version>2.0</version>
</dependency>
----

Deploy `JGroupsServlet` into your Jetty, Tomcat or similar web server. 
HTTP/2 should be enabled on the web server to get best performance.
<commit_msg>Bump Maven dependency version<commit_after>= JGroups HTTP/2 protocol

[link=http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22de.mklinger.jgroups%22%20AND%20a%3A%22jgroups-http2%22]
image::https://img.shields.io/maven-central/v/de.mklinger.jgroups/jgroups-http2.svg[]


== What is it?

This is a http://jgroups.org/[JGroups] protocol implementation based on HTTP/2.

JGroups is a messaging toolkit to form clusters. Nodes can discover each other,
reliably send messages to other nodes or to the whole cluster and detect failure
of other nodes.

JGroups is often used on a UDP-based node communication protocol, which has the
advantage of being really fast, but still reliable. Using JGroups over HTTP/2
may look like a strange idea, but it has enormous advantages:

- A bullet proof web server (like Tomcat or Jetty) can be used to handle incoming
  messages
- Transport encryption over HTTPS is secure, not too hard to do right and used 
  everywhere today.
- Cloud applications that listen to a HTTPS port anyway, don't need another
  open port to handle cluster messages 
- All authorization and authentication methods provided by the Servlet web server
  of your choice or by third party frameworks can be used for cluster messaging.
  This includes client certificates for authentication and Spring Security for 
  authentication and authorization.
- The HTTP/2 protocol is size optimized, compared to earlier HTTP versions.
- With HTTP/2, there is only one open socket connection when communicating with 
  another node. Connections are re-used by default and there is no connection
  pool. One connection can be used pseudo-concurrently, thanks to HTTP/2 frames.


== License

This projects is licensed under https://www.apache.org/licenses/LICENSE-2.0[Apache License 2.0].


== Usage

Maven dependency:

[source,xml]
----
<dependency>
  <groupId>de.mklinger.jgroups</groupId>
  <artifactId>jgroups-http2</artifactId>
  <version>2.1</version>
</dependency>
----

Deploy `JGroupsServlet` into your Jetty, Tomcat or similar web server. 
HTTP/2 should be enabled on the web server to get best performance.

{'fraction_non_alphanumeric': 0.07322872087494056, 'fraction_numerical': 0.016167379933428434, 'mean_word_length': 4.352417302798982, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 19, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2516569', 'n_tokens_mistral': 1224, 'n_tokens_neox': 1145, 'n_words': 519}