Top Banner
Welcome to the Reactive Revolution: RSocket & Spring Cloud Gateway Spencer Gibb, Co-founder and Lead of Spring Cloud Core @spencerbgibb Contributions from Ben Hale @nebhale, Rossen Stoyanchev @rstoya05, and Cora Iberkleid
40

RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Mar 16, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Welcome to the Reactive Revolution: RSocket & Spring Cloud Gateway

Spencer Gibb, Co-founder and Lead of Spring Cloud Core@spencerbgibb

Contributions fromBen Hale @nebhale, Rossen Stoyanchev @rstoya05, and Cora Iberkleid

Page 2: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Safe Harbor StatementThe following is intended to outline the general direction of Pivotal's offerings. It is intended for information purposes only and may not be incorporated into any contract. Any information regarding pre-release of Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal and is subject to change. This information is provided without warranty or any kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions regarding Pivotal's offerings. These purchasing decisions should only be based on features currently available. The development, release, and timing of any features or functionality described for Pivotal's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to update forward looking information in this presentation.

2

Page 3: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Agenda

● Introduction● Reactive Architecture● Reactive Communication● RSocket Protocol

● Spring Cloud Gateway RSocket● Demo● Recap

Page 4: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Reactive ArchitectureHighly Efficient and Fundamentally Non-blocking

Page 5: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Reactive Inter-process Communication● Reactive has no opinion on synchronous vs asynchronous● Key differentiator is back pressure (Reactive pull/push)

Request

Response

can be sync or async

Page 6: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Back Pressure

SURE THING

GIMME!Responder Requester

HELP !!!!

Responder

BETTER?

ReactiveSubscriberReactiveSubscriberReactiveSubscriberRequester

Requester

Page 7: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Reactive Java Building Blocks

● Reactive Streams○ Standard for async stream processing with non-blocking

back pressure○ Publisher/Subscriber/Subscription/Processor

● Project Reactor○ Implementation of the Reactive Streams specification for the

JVM■ Adds Flux and Mono operators■ Java 8 integration (Stream, CompletableFuture, Duration)

Page 8: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Roadblocks

• But there are still some barriers to using Reactive everywhere*

• Data Access• MongoDB, Apache Cassandra, and Redis • Relational database access (R2DBC)

• Cross-process back pressure (networking)

8

Page 9: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

http://rsocket.io

9

Page 10: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

RSocket• RSocket is a bi-directional, multiplexed, message-based, binary protocol

based on Reactive Streams back pressure

• It provides out of the box support for four common interaction models• Request-Response (1 to 1)• Fire-and-Forget (1 to 0)• Request-Stream (1 to many)• Request-Channel (many to many)

Transport Agnostic: TCP, WebSocket, UDP, HTTP2 ...

10

Page 11: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

RSocket vs HTTP - Key DifferencesRSocket

Efficient and Responsive

● Single, shared long-lived connection

● Multiplexes messages

● Communicates back pressure

● Either party can initiate requests (flexible requester/responder roles)

● Supports canceling/resuming streams

HTTPSlowly Improving

● New connection per request (HTTP 1.0)

● Pipelines messages (HTTP 1.1)

● Does not communicate back pressure

● Only client can initiate requests (fixed client/server roles)

● Does not support canceling/resuming streams

Page 12: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

RSocket vs HTTP - Key DifferencesRSocket

Efficient and Responsive

● Single, shared long-lived connection

● Multiplexes messages

● Communicates back pressure

● Either party can initiate requests (flexible requester/responder roles)

● Supports canceling/resuming streams

HTTPSlowly Improving

● New connection per request (HTTP 1.0)

● Pipelines messages (HTTP 1.1)

● Does not communicate back pressure

● Only client can initiate requests (fixed client/server roles)

● Does not support canceling/resuming streams

Page 13: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Multiplexed• Connections that are only used for a single request are massively

inefficient (HTTP 1.0)• Pipelining (ordering requests and responses sequentially) is a naive

attempt solving the issue, but results in head-of-line blocking (HTTP 1.1)

• Multiplexing solves the issue by annotating each message on the connection with a stream id that partitions the connection into multiple "logical streams"

13

Page 14: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

RSocket vs HTTP - Key DifferencesRSocket

Efficient and Responsive

● Single, shared long-lived connection

● Multiplexes messages

● Communicates back pressure

● Either party can initiate requests (flexible requester/responder roles)

● Supports canceling/resuming streams

HTTPSlowly Improving

● New connection per request (HTTP 1.0)

● Pipelines messages (HTTP 1.1)

● Does not communicate back pressure

● Only client can initiate requests (fixed client/server roles)

● Does not support canceling/resuming streams

Page 15: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Reactive Streams Back Pressure• Network protocols generally send a single request, and receive an

arbitrarily large response in return• There is nothing to stop the responder (or even the requestor) from

sending an arbitrarily large amount of data and overwhelming the receiver• In cases where TCP back pressure throttles the responder, queues fill with

large amounts of un-transferred data

• Reactive Streams (pull-push) back pressure ensures that data is only materialized and transferred when receiver is ready to process it

15

Page 16: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

RSocket vs HTTP - Key DifferencesRSocket

Efficient and Responsive

● Single, shared long-lived connection

● Multiplexes messages

● Communicates back pressure

● Either party can initiate requests (flexible requester/responder roles)

● Supports canceling/resuming streams

HTTPSlowly Improving

● New connection per request (HTTP 1.0)

● Pipelines messages (HTTP 1.1)

● Does not communicate back pressure

● Only client can initiate requests (fixed client/server roles)

● Does not support canceling/resuming streams

Page 17: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Bi-Directional• Many protocols (notably not TCP) have a distinction between the client

and server for the lifetime of a connection• This division means that one side of the connection must initiate all

requests, and the other side must initiate all responses• Even more flexible protocols like HTTP/2 do not fully drop the distinction

• Servers cannot start an unrequested stream of data to the client

• Once a client initiates a connection to a server, both parties can be requesters or responders to a logical stream

17

Page 18: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

RSocket vs HTTP - Key DifferencesRSocket

Efficient and Responsive

● Single, shared long-lived connection

● Multiplexes messages

● Communicates back pressure

● Either party can initiate requests (flexible requester/responder roles)

● Supports canceling/resuming streams

HTTPSlowly Improving

● New connection per request (HTTP 1.0)

● Pipelines messages (HTTP 1.1)

● Does not communicate back pressure

● Only client can initiate requests (fixed client/server roles)

● Does not support canceling/resuming streams

Page 19: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Message Driven Binary Protocol• Requester-Responder interaction is broken down into frames that

encapsulate messages• The framing is binary (not human readable like JSON or XML)

• Massive efficiencies for machine-to-machine communication• Downsides only manifest rarely and can be mitigated with tooling

• Payloads are bags of bytes• Can be JSON, XML, Protobuf, CBOR, etc... (it's all just 1's and 0's)

19

Page 20: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Metadata and Data in Frames• Each Frame has an optional metadata payload• The metadata payload has a MIME-Type but is otherwise unstructured

• Very flexible• Can be used to carry metadata about the data payload• Can be used to carry metadata in order to decode the payload• More specific announcement and routing metadata extensions

forthcoming• Generally means that payloads can be heterogenous and each message

decoded uniquely

20

Page 21: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Spring Support

•Spring Framework 5.2 Messaging Support•Spring Boot Auto-configuration•Spring Security (future)

21

Page 22: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Spring Cloud Gateway RSocket

Page 23: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Spring Cloud Gateway RSocket

23

Spring Cloud Gateway RSocket

RSocket Java Listener

Spring Cloud Gateway (HTTP)

HTTP Listener

● With RSocket Java, the network layer is also built with Project Reactor● Spring Boot auto-configures the RSocket listener

PROJECT REACTOR

vs.

Reactive Runtime + Reactive Network Protocol

Page 24: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Gateway Architecture

24

Gateway

JavaClient

JSClient

Gateway

Gateway

Gateway

Page 25: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Connecting to Gateway RSocket

● Client makes connection to Gateway Cluster● Sends connection level metadata

○ Who am I? Name and Id

25

Page 26: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Gateway Architecture

26

Gateway

JavaClient

JSClient

Gateway

Gateway

Gateway

Metadata: name=serviceA id=serviceA:1

Page 27: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Service Registry

27

Gateway

JavaClient

JSClient

Gateway

Gateway

Gateway

Metadata: name=serviceA id=serviceA:1

Page 28: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Making a request

● Client makes connection to Gateway Cluster● Request level metadata

○ Who do I want to call? Name and Destination*

28

Page 29: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Gateway Architecture

29

Gateway

JavaClient

JSClient

Gateway

Gateway

Gateway

Request● ex: Request Response● Metadata:

name=serviceA destination*=echo

Page 30: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Making a request

● No client side loadbalancer● No sidecar● No circuit breaker

30

Page 31: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Gateway Architecture

31

Gateway

JavaClient

Gateway

Gateway

Gateway

Request● Metadata:

name=serviceA destination*=echo

Page 32: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Requests to non-existant services

● Gateway creates a placeholder○ Applies 100% backpressure

● Avoids service startup ordering problems

32

Page 33: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Gateway Architecture

33

Gateway

JavaClient

Gateway

Gateway

Gateway

Request● Metadata:

name=serviceA destination*=echo

Page 34: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Requests are filtered

● Allows security at the request level○ Is “Service A” allowed to talk to “Service B”

● Metrics collected at request level

34

Page 35: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Demo

Page 36: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Demo setup

36

Gateway 1

PingClient 1

PongServer

Gateway 2

Page 37: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

To recap: Things you won’t need...

● Ingress permissions (except Gateway)● Separate Service Discovery● Message Broker● Circuit Breaker● Client-side load balancer● Sidecar● Startup ordering problems● Special cases for warmup ● Thundering Herd

37

Page 38: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

To recap: Additional Benefits

● via RSocket○ persistent, multiplexed connections○ multiple transports (TCP, Websockets, Http/2, etc…)○ polyglot

■ only need standardized connection and request metadata

● Metrics via Micrometer•

38

Page 39: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Roadmap

● Clustering Enhancements● Messaging Semantincs (topic vs queue)● Tracing integration● Routing optimization● Failure tolerance improvements● Release

○ Builds on Spring Framework 5.2 & Spring Boot 2.2○ Part of Spring Cloud Hoxton○ Targets Q3 2019

39

Page 40: RSocket & Spring Cloud Gateway Welcome to the Reactive ......RSocket Java Listener Spring Cloud Gateway (HTTP) HTTP Listener With RSocket Java, the network layer is also built with

Questions?http://rsocket.io

https://github.com/spring-cloud/spring-cloud-gatewayhttps://github.com/spencergibb/spring-cloud-gateway-rsocket-sample

@spencerbgibb