You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2017/04/24 17:00:00 UTC
[6/8] camel git commit: ServiceCall: improve EIP documentation
ServiceCall: improve EIP documentation
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/419cbdc1
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/419cbdc1
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/419cbdc1
Branch: refs/heads/master
Commit: 419cbdc1dac00fcf5bc86ad4179c33ea00cc8149
Parents: 4b97e0a
Author: lburgazzoli <lb...@gmail.com>
Authored: Mon Apr 24 17:29:21 2017 +0200
Committer: lburgazzoli <lb...@gmail.com>
Committed: Mon Apr 24 17:29:21 2017 +0200
----------------------------------------------------------------------
.../src/main/docs/eips/serviceCall-eip.adoc | 104 +++++++++++++++++++
1 file changed, 104 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/419cbdc1/camel-core/src/main/docs/eips/serviceCall-eip.adoc
----------------------------------------------------------------------
diff --git a/camel-core/src/main/docs/eips/serviceCall-eip.adoc b/camel-core/src/main/docs/eips/serviceCall-eip.adoc
index 0874eef..0925c6b 100644
--- a/camel-core/src/main/docs/eips/serviceCall-eip.adoc
+++ b/camel-core/src/main/docs/eips/serviceCall-eip.adoc
@@ -115,6 +115,56 @@ The Service Call EIP can be configured through the following options:
In addition to ref/binding configuration style you can leverage specific configuration DSL to customize specific options:
+* *Static Service Discovery:*
++
+This service discovery implementation does not query any external services to find out the list of services associated to a named service but keep them in memory. Each service should be provided in the following form:
++
+[source]
+----
+ [service@]host:port
+----
++
+TIP: The ``service`` part is used to discrimintate aginst the services but if not provided it acks like a wildcard so each non named service will be returned whatever the service name is. This is useful if you ahve a single service so the service name is redundant.
++
+NOTE: this implementation is provided by ``camel-core`` artifact.
++
+*Available options:*
++
+[width="100%",cols="3,1m,6",options="header"]
+|=======================================================================
+| Name | Java Type | Description
+| servers | String | A comma separated list of servers in the form: [service@]host:port,[service@]host2:port,[service@]host3:port
+|=======================================================================
++
+[source,java]
+.Java DSL Example
+----
+from("direct:start")
+ .serviceCall("foo")
+ .staticServiceDiscovery()
+ .servers("service1@host1:80,service1@host2:80")
+ .servers("service2@host1:8080,service2@host2:8080,service2@host3:8080")
+ .end()
+ .to("mock:result");
+----
++
+[source,xml]
+.XML DSL Example
+----
+<camelContext xmlns="http://camel.apache.org/schema/spring">
+ <route>
+ <from uri="direct:start"/>
+ <serviceCall name="foo">
+ <staticServiceDiscovery>
+ <servers>service1@host1:80,service1@host2:80</servers>
+ <servers>service2@host1:8080,service2@host2:8080,service2@host3:8080</servers>
+ </staticServiceDiscovery>
+ </serviceCall
+ <to uri="mock:result"/>
+ </route>
+</camelContext>
+----
+
* *Consul Service Discovery:*
+
To leverage Consul for Service Discover, maven users will need to add the following dependency to their pom.xml
@@ -334,6 +384,60 @@ from("direct:start")
</camelContext>
----
+* *Blacklist Service Filter:*
++
+This service filter implementation removes the listed services from those found by the service discovery. Each service should be provided in the following form:
++
+[source]
+----
+ [service@]host:port
+----
++
+NOTE: The services are removed if they fully match.
++
+*Available options:*
++
+[width="100%",cols="3,1m,6",options="header"]
+|=======================================================================
+| Name | Java Type | Description
+| servers | String | A comma separated list of servers to blacklist: [service@]host:port,[service@]host2:port,[service@]host3:port
+|=======================================================================
++
+[source,java]
+.Java DSL Example
+----
+from("direct:start")
+ .serviceCall("foo")
+ .staticServiceDiscovery()
+ .servers("service1@host1:80,service1@host2:80")
+ .servers("service2@host1:8080,service2@host2:8080,service2@host3:8080")
+ .end()
+ .blacklistFilter()
+ .servers("service2@host2:8080")
+ .end()
+ .to("mock:result");
+----
++
+[source,xml]
+.XML DSL Example
+----
+<camelContext xmlns="http://camel.apache.org/schema/spring">
+ <route>
+ <from uri="direct:start"/>
+ <serviceCall name="foo">
+ <staticServiceDiscovery>
+ <servers>service1@host1:80,service1@host2:80</servers>
+ <servers>service2@host1:8080,service2@host2:8080,service2@host3:8080</servers>
+ </staticServiceDiscovery>
+ <blacklistServiceFilter>
+ <servers>service2@host2:8080</servers>
+ </blacklistServiceFilter>
+ </serviceCall
+ <to uri="mock:result"/>
+ </route>
+</camelContext>
+----
+
### Load Balancer
The Service Call EIP comes with its own Load Balancer which is istantiated by default if a custome one is not configured and glues Service Discovery, Service Filer, Service Chooser and Service Expression togheter to load balance requests among the available services.