Skip to content
This repository
Browse code

Compromise on URL's!

  • Loading branch information...
commit 0a2de683c8b73e8d51a87526587316bdee585a42 1 parent 7269eba
mccue mccue authored

Showing 1 changed file with 4 additions and 4 deletions. Show diff stats Hide diff stats

  1. +4 4
Source Rendered
@@ -325,7 +325,7 @@ Use the Finagle library to implement asynchronous Remote Procedure Call (RPC) cl
325 325
326 326 Finagle extends the stream-oriented [Netty]( model to provide asynchronous requests and responses for remote procedure calls (RPC). Internally, Finagle manages a service stack to track outstanding requests, responses, and the events related to them. Finagle uses a Netty pipeline to manage connections between the streams underlying request and response messages. The following diagram shows the relationship between your RCP client or server, Finagle, Netty, and Java libraries:
327 327
328   -![Relationship between your RCP client or server, Finagle, Netty, and Java Libraries (](
  328 +![Relationship between your RCP client or server, Finagle, Netty, and Java Libraries (doc/FinagleRelationship.png)](
329 329
330 330 Finagle manages a [Netty pipeline]( for servers built on Finagle RCP services. Netty itself is built on the Java [NIO]( library, which supports asynchronous IO. While an understanding of Netty or NIO might be useful, you can use Finagle without this background information.
331 331
@@ -402,7 +402,7 @@ Finagle makes streaming and pubsub-like RPCs easy. Streams rely on a generalizat
402 402
403 403 In Finagle, RPC servers are built out of a `Service` and zero or more `Filter` objects. You apply filters to the service request after which you execute the service itself:
404 404
405   -![Relationship between a service and filters](
  405 +![Relationship between a service and filters (doc/Filters.png)](
406 406
407 407 Typically, you use a `ServerBuilder` to create your server. A `ServerBuilder` enables you to specify the following general attributes:
408 408
@@ -725,13 +725,13 @@ Note: You do not need to be concerned with long-running or CPU intensive operati
725 725
726 726 Consider the following diagram, which shows how a client uses the Finagle event loop:
727 727
728   -![Relationship between your threads and Finagle](
  728 +![Relationship between your threads and Finagle (doc/ThreadEx.png)](
729 729
730 730 Your threads, which are shown on the left, are allowed to block. When you call a Finagle method or Finagle calls a method for you, it dispatches execution of these methods to its internal threads. Thus, the Finagle event loop and its threads cannot block without degrading the performance of other clients and servers that use the same Finagle instance.
731 731
732 732 In complex RCP operations, it may be necessary to perform blocking operations. In these cases, you must set up your own thread pool and use `Future` or `FuturePool` objects to execute the blocking operation on your own thread. Consider the following diagram:
733 733
734   -![Handling operations that block](
  734 +![Handling operations that block (doc/ThreadExNonBlockingServer.png)](
735 735
736 736 In this example, you can use a `FuturePool` object to provide threads for blocking operations outside of Finagle. Finagle can then dispatch the blocking operation to your thread. For more information about `FuturePool` objects, see <a href="#Using Future Pools">Using Future Pools</a>.
737 737

0 comments on commit 0a2de68

Please sign in to comment.
Something went wrong with that request. Please try again.