通过RestTemplate进行微服务间(通过服务名)的调用

样例:

@Slf4j
@RestController
@RequestMapping(path = "/test")
public class TestController {

    @Autowired
    @LoadBalanced
    private RestTemplate restTemplate;


    @ApiOperation(value = "test", notes = "test")
    @GetMapping(path = "/test")
    public void test() {
        Map<String, String> paramMap = new HashMap<>();
        paramMap.put("channel", "11111");
        paramMap.put("id", "22222");
        String url = "http://SERVICE/auth-api/v1/inn/getInnRandomId?channel={channel}&id={id}";
        ResponseEntity<JSONObject> responseEntity = restTemplate.getForEntity(url, JSONObject.class, paramMap);
        if (responseEntity.getStatusCode().is2xxSuccessful()) {
            Map<String, Object> innInfoBody = responseEntity.getBody();
            innInfoBody.forEach((k, v) -> log.debug("key:" + k + "value:" + v));
        } else {
            log.debug("接口访问失败");
        }
    }
}

在这里插入图片描述

注意
1.微服务间的访问可以通过http://服务名/映射链接 这种方式来访问
2.如果调用的服务存在上下文,那么则要通过http://服务名/服务上下文/映射链接 这种方式来访问。
3.当项目application.yml配置了服务上下文,但是在访问链接不想带上服务配置的上下文访问,可以通过以下配置方式来实现(增加eureka.instance.home-page-url-path配置)。

eureka:
  client:
    service-url:
      defaultZone: http://172.11.62.183:6600/eureka/,http://172.11.62.184:6600/eureka/,http://172.11.62.185:6600/eureka/,http://172.25.62.50:7200/eureka/
  instance:
    home-page-url-path: ${server.servlet.context-path}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值