1,启动各个服务:
2,访问以下地址:
http://localhost:5001/product/purchase/1/1/1000
浏览器输出:
控制台输出:
这里随机调用的端口号使用了轮询的方式
从服务治理中心拉去一份服务实例清单,然后通过某种负载均衡的算法选择具体的实例
Product核心逻辑代码:
@RestController
@RequestMapping("/product")
public class ProductController {
@Autowired
private RestTemplate restTemplate;
@GetMapping("/purchase/{userId}/{productId}/{amount}")
public ResultMessage purchaseProduct(@PathVariable("userId") Long userId,
@PathVariable("productId") Long productId,
@PathVariable("amount") Double amount){
System.out.println("扣减产品--");
//FUND代表fund微服务,调用fund中的服务
String url="http://FUND/fund/account/balance/{userId}/{amount}";
//封装请求参数
Map<String,Object> params=new HashMap<>();
params.put("userId",userId);
params.put("amount",amount);
ResultMessage resultMessage = restTemplate.postForObject(url, null, ResultMessage.class, params