马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
多机摆设,负载均衡-LoadBalance
1. 开启多个服务
多复制两个服务,将服务全部启动起来
此时多次访问原来的接口,发现
调用的还是同一个
我们对代码举行修改:
- @Service
- public class OrderService {
-
-
- private static final Logger log = LoggerFactory.getLogger(OrderService.class);
- @Autowired
- private OrderMapper orderMapper;
- @Resource
- private DiscoveryClient discoveryClient;
- @Autowired
- private RestTemplate restTemplate;
- private static AtomicInteger atomicInteger = new AtomicInteger(1);
- private static List<ServiceInstance> instances;
- @PostConstruct
- public void init() {
-
-
- instances = discoveryClient.getInstances("product-service");
- }
- public OrderInfo getOrderList(int orderId){
-
-
- OrderInfo orderInfo = orderMapper.getOrderList(orderId);
- int index = atomicInteger.getAndIncrement() % instances.size();
- EurekaServiceInstance instance = (EurekaServiceInstance) instances.get(index);
- String url = instance.getUri() + "/product/getProduct?productId=" + orderInfo.getProductId();
- log.info(url);
- ProductInfo productInfo = restTemplate.getForObject(url,ProductInfo.class);
- orderInfo.setProductInfo(productInfo
复制代码 |