1 第一步
1)创建eureka服务中心 //相当于dubbo使用zookeeper的原理
pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
- application.properties
eureka.client.service-url.defaultZone= http://localhost:8761/eureka/
server.port=8001
eureka.instance.hostname=eureka-server
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
3)在主应用中启用eureka @EnableEurekaServer
测试结果
2 创建服务提供者的应用
1)pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
- application.properties
server.port=8002
spring.application.name=provider
#使用服務的ip地址來進行注冊
eureka.instance.prefer-ip-address=true
eureka.client.service-url.defaultZone:http://127.0.0.1:8761/eureka/
- 创建提供的服务内容 @Service public class BookService { public String getBook(){ return "少年,还好吗?"; } }
4)创建向外提供服务的controller @RestController
public class BookController {
@Autowired
BookService bookService;
@GetMapping("/book")
public String getBook(){
return bookService.getBook();
} }
3 创建消费者
1)pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
- application.properties
spring.application.name=consumer
server.port=8200
eureka.instance.prefer-ip-address=true
eureka.client.service-url.defaultZone:http://localhost:8761/eureka/
3)编写调用服务的controller
@RestController
public class helloController {
@Autowired
RestTemplate restTemplate;
@GetMapping("/hello")
public String UserBook(String name){
String s= restTemplate.getForObject("http://PROVIDER/book",String.class);
return name+"购买了"+s;
} }
4)启用从远程调用服务 @EnableDiscoveryClient
@SpringBootApplication
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
} }
测试结果: