anchor.diff:      service-url:
         defaultZone: http://${eureka.host:localhost}:${eureka.port:8761}/eureka/ <2>
   ----
  -<1> `false` if this project is not meant to act as  a `service` to another client.
  -<2>  Specify the  registry URL, so this client  will know where to lookup the required service.
  -
  -* Use `EurekaClient` to get the coordinates of grpc service instance from Eureka:
  -
  - [source,java]
  - .GreeterServiceConsumerApplication.java
  - ----
  +
  +<1> `false` if this project is not meant to act as  a service to another client.
  +<2>  Specify the  registry URL, so this client  will know where to look up the required service.
  +
  +* Use EurekaClient to get the coordinates of gRPC service instance from Eureka.
  +
  +[source,java]
  +.GreeterServiceConsumerApplication.java
  +----
    @EnableEurekaClient
    @SpringBootApplication
    public class GreeterServiceConsumerApplication {
  -  public static void main(String[] args) {
  -      SpringApplication.run(GreeterServiceConsumerApplication.class, args);
  -  }
  - }
  - ----
  -
  - [source,java]
  - .GreeterServiceConsumer.java
  -  ----
  -  @EnableEurekaClient
  -  @Component
  -  public class GreeterServiceConsumer {
  +     public static void main(String[] args) {
  +       SpringApplication.run(GreeterServiceConsumerApplication.class, args);
  +     }
  + }
  +----
  +
  +
  +
  +[source,java]
  +.GreeterServiceConsumer.java
  +----
  +@EnableEurekaClient
  +@Component
  +public class GreeterServiceConsumer {
       @Autowired
       private EurekaClient client;
  -    public DeferredResult<String> foo(String name) {
  -        final InstanceInfo instanceInfo = client.getNextServerFromEureka("my-service-name", false);
  +    
  +    public void greet(String name) {
  +        final InstanceInfo instanceInfo = client.getNextServerFromEureka("my-service-name", false);<1>
           final ManagedChannel channel = ManagedChannelBuilder.forAddress(instanceInfo.getIPAddr(), instanceInfo.getPort())
                   .usePlaintext(true)
  -                .build();
  -        final GreeterServiceGrpc.GreeterServiceFutureStub stub = GreeterServiceGrpc.newFutureStub(channel);
  +                .build(); <2>
  +        final GreeterServiceGrpc.GreeterServiceFutureStub stub = GreeterServiceGrpc.newFutureStub(channel); <3>
           stub.greet(name);
   
       }
  -  }
  -  ----
  +}
  +----
  +<1> Get the information about the `my-service-name` instance.
  +<2> Build `channel` accordingly.
  +<3> Create stub using the `channel`.
  +
   
   
   == License
  
positive.code:     application:
          name: my-service-name <1>
  ----
  <1> Eureka's `ServiceId` by default is the spring application name, provide it before the service register itself with Eureka.
  
  [source,yaml]
  .application.yaml
  
negative.code:         serviceUrl:
              defaultZone: http://${eureka.host:localhost}:${eureka.port:8761}/eureka/ <3>
  ----
  
  <1> Specify the port number the gRPC is listening on.
  <2> Register the eureka service port to be the same as `grpc.port` so client will know where to send the requests to.
  <3> Specify the  registry URL, so the service will register itself with. 
  
    d
   * Expose the gRPC service as part of Spring Boot Application.
  
  
  [source,java]
  .EurekaGrpcServiceApp.java
  ----
   @SpringBootApplication
   @EnableEurekaClient
   public class EurekaGrpcServiceApp {
  
       @GRpcService
       public static class GreeterService extends GreeterGrpc.GreeterImplBase {
           @Override
           public void sayHello(GreeterOuterClass.HelloRequest request, StreamObserver<GreeterOuterClass.HelloReply> responseObserver) {
  
           }
       }
  
       public static void main(String[] args) {
           SpringApplication.run(DemoApp.class,args);
       }
  
   }
  ----
  
  ===  gRPC Client Project
  
  