多机摆设,负载均衡-LoadBalance

[复制链接]
发表于 2026-1-16 09:51:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
多机摆设,负载均衡-LoadBalance

1. 开启多个服务





多复制两个服务,将服务全部启动起来

此时多次访问原来的接口,发现

调用的还是同一个
我们对代码举行修改:
  1. @Service
  2. public class OrderService {
  3.    
  4.    
  5.     private static final Logger log = LoggerFactory.getLogger(OrderService.class);
  6.     @Autowired
  7.     private OrderMapper orderMapper;
  8.     @Resource
  9.     private DiscoveryClient discoveryClient;
  10.     @Autowired
  11.     private RestTemplate restTemplate;
  12.     private static AtomicInteger atomicInteger = new AtomicInteger(1);
  13.     private static List<ServiceInstance> instances;
  14.     @PostConstruct
  15.     public void init() {
  16.    
  17.    
  18.         instances = discoveryClient.getInstances("product-service");
  19.     }
  20.     public  OrderInfo getOrderList(int orderId){
  21.    
  22.    
  23.         OrderInfo orderInfo = orderMapper.getOrderList(orderId);
  24.         int index = atomicInteger.getAndIncrement() % instances.size();
  25.         EurekaServiceInstance instance = (EurekaServiceInstance) instances.get(index);
  26.         String url = instance.getUri() + "/product/getProduct?productId=" + orderInfo.getProductId();
  27.         log.info(url);
  28.         ProductInfo productInfo = restTemplate.getForObject(url,ProductInfo.class);
  29.         orderInfo.setProductInfo(productInfo
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表