一、创建服务提供者
1、创建order
2、启动类上添加属性
@EnableDiscoveryClient
3、修改配置文件,注册到euraka, 使用profiles设置两个端口
spring:
profiles:
active: order8020
application:
name: order
eureka:
instance:
hostname: eureka8001.com
client:
service-url:
defaultZone: http://eureka8002.com:8002/eureka/,http://eureka8001.com:8001/eureka/
---
server:
port: 8020
spring:
config:
activate:
on-profile: order8020
---
server:
port: 8021
spring:
config:
activate:
on-profile: order8021
4、创建订单服务类
@RestController
public class OrderController {
Logger logger = LoggerFactory.getLogger(OrderController.class);
@GetMapping("/order")
public String getOrder(String userName){
logger.info("订单");
return userName+"的订单";
}
}
5、默认有一个配置是8020端口的,添加一个启动配置8021
二、创建消费者
1、创建项目
2、启动类上添加属性
@EnableDiscoveryClient
3、修改配置文件
server:
port: 8010
spring:
application:
name: customer
eureka:
instance:
hostname: eureka8001.com
client:
service-url:
defaultZone: http://eureka8002.com:8002/eureka/,http://eureka8001.com:8001/eureka/
4、添加服务发现实体类,
@LoadBalanced,可以提供负载均衡支持,如果有两个服务提供者,则默认是轮询访问服务。
@Configuration
public class RespTemplateConfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
5、添加服务消费类,
http://ORDER, 这个ORDER就是上面服务的名称,通过这个名称在euraka中查找对应注册的地址,来进行负载均衡
@RestController
public class CustomerController {
@Resource
private RestTemplate restTemplate;
@GetMapping("/customer")
public String getCustomer(){
Map<String,String> map = new HashMap<>();
map.put("userName","cww");
String result = restTemplate.getForObject("http://ORDER/order?userName={userName}",
String.class,map);
return "Hello ,"+result;
}
}
三、启动