# Spring Cloud and ServiceCall EIP Example

This example show how to use Camel with ServiceCall EIP with spring-cloud and consul.

This example includes two maven modules:

 - service that exposes a number of services
 - consumer that consumes services

= Configuration

The consumer is configured in the src/main/resources/application.properties

== Build

You can build this example using

    mvn compile

== Run the example

Using multiple shells:

 - start consul:

  $ cd service
  $ src/main/bash/consul-run-linux.sh    (for linux)
  $ src/main/bash/consul-run-osx.sh      (for mac osx)

 - start the service:

  $ cd service
  $ mvn spring-boot:run

  - start the consumer

  $ cd consumer
  $ mvn spring-boot:run

== Test the example:

In a new shell:

  $ curl localhost:8080/camel/serviceCall/service1
  Hi!, I'm service-1 on camel-1/route1
  $ curl localhost:8080/camel/serviceCall/service2
  Hi!, I'm service-1 on camel-1/route2

If you keep calling the http endpoint you'll notice they are consumed using a round robin policy and that only the services matching specific tags are consumed.

== Web console

You can open the Consul web console

     http://localhost:8500/ui

Where you can find information about the services and its state.

== More information

You can find more information about Apache Camel at the website: http://camel.apache.org/

