I am evaluating building microservices using Spring Boot and Spring Cloud (Zuul and Eureka) running in separate docker containers, deployed in separate Amazon EC2 instances.
I have a simple REST service that registers with Eureka, and have configured Zuul to route requests to this service by looking it up in Eureka.
I can get this to work running locally (i.e. not in Amazon/EC2) on my Mac using boot2docker, but when deployed on EC2, Zuul cannot find the service, and reports a 'Forwarding error' (status 500).
In EC2, everything is configured to run on port 80 (just while evaluating so I can easily access through our firewall). I can see both Zuul and my service in the Eureka system status page (although none of the links work!).
The clients are configured to find Eureka with a full AWS domain name, so I can see how they find Eureka OK. e.g.
client:
serviceUrl:
defaultZone: http://ift.tt/1MGOWl8
But, the clients seem to be registering themselves with their internal docker IP address (based on the Eureka system status links).
The edgeserver link points to http://172.17.0.2/info The trialservice link points to http://172.17.0.3/info
I'm guessing this is incorrect and that other EC2 instances don't know to get to this address.
I've read this page http://ift.tt/1MGOYJP which suggests using AWS EC2 Elastic IP addresses, but I was hoping I wouldn't have to do this.
I've also seen there is a current discussion around this subject here, http://ift.tt/1fYtOJe
Has anyone managed to get this type of setup working, and if so, how did they configure the Eureka properties?
Aucun commentaire:
Enregistrer un commentaire