parent:
<modules> <module>eurekaServer</module> <module>eurekaClient</module> <module>eurekaConsumer</module> </modules>
<springcloud.version>Dalston.SR5</springcloud.version>
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${springcloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
eureka Server (服务治理) :
pom
<artifactId>eurekaServer</artifactId>
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> <version>1.4.2.RELEASE</version> </dependency> </dependencies>
配置
server.port:8761 eureka.instance.hostname: localhost eureka.client.registerWithEureka: false eureka.client.fetchRegistry: false eureka.client.serviceUrl.defaultZone: http://localhost:8761/eureka/
启动
@EnableEurekaServer @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
eureka Client (服务提供):
pom
<artifactId>eurekaClient</artifactId>
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>1.4.2.RELEASE</version> </dependency> </dependencies>
配置
server.port=18765 eureka.instance.hostname=localhost eureka.client.registerWithEureka=true eureka.client.fetchRegistry=true eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/ spring.application.name: eureka-client-first
启动
@EnableEurekaClient @SpringBootApplication public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }
具体服务
@RestController public class TestController { @RequestMapping("/test/hello") public Map<String, Object> hello(){ Map<String,Object> result = new HashMap<String,Object>(); result.put("name", "lulu"); result.put("age", "18"); return result; } }
eureka Consumer (服务消费):
pom
<artifactId>eurekaConsumer</artifactId>
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>1.4.2.RELEASE</version> </dependency> </dependencies>
配置
server.port=18766 eureka.instance.hostname=localhost eureka.client.registerWithEureka=true eureka.client.fetchRegistry=true eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/ spring.application.name: eureka-client-consumer
启动
@EnableEurekaClient @SpringBootApplication public class EurekaConsumerApplication { public static void main(String[] args) { SpringApplication.run(EurekaConsumerApplication.class, args); } @Bean @LoadBalanced RestTemplate restTemplate(){ return new RestTemplate(); } }
具体服务调用
@RestController public class TestController { @Autowired RestTemplate restTemplate; @RequestMapping("/test/hello") public Map<String, Object> hello(){ return restTemplate.getForEntity("http://eureka-client-first/test/hello",Map.class).getBody(); } }