沈阳网站建设公司多少钱代做道具网站
【spring cloud 3.0微服务部署】第四章:Nacos、LoadBalancer、GateWay、Ribbon集成之跨服务调用ribbon
- 链接
- 第一章:Nacos、LoadBalancer、GateWay、Ribbon集成之Nacos部署
- 第二章:Nacos、LoadBalancer、GateWay、Ribbon集成之负载均衡LoadBalancer部署
- 第三章:Nacos、LoadBalancer、GateWay、Ribbon集成之网关Gateway部署
- 第四章:Nacos、LoadBalancer、GateWay、Ribbon集成之跨服务调用ribbon
- 查看源码
- 正文
- 接前章
- 微服务myapp1调用myapp2
- RestTemplate 发送json
链接
第一章:Nacos、LoadBalancer、GateWay、Ribbon集成之Nacos部署
第二章:Nacos、LoadBalancer、GateWay、Ribbon集成之负载均衡LoadBalancer部署
第三章:Nacos、LoadBalancer、GateWay、Ribbon集成之网关Gateway部署
第四章:Nacos、LoadBalancer、GateWay、Ribbon集成之跨服务调用ribbon
查看源码
正文
接前章
微服务myapp1调用myapp2
修改MyApp1Controller.java,新增getApp2接口
package com.que5;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;/*** <p>* 用户列表 前端控制器* </p>** @author evan* @since 2024-11-28*/
@RestController
@RequestMapping("/cloud")
public class MyApp1Controller {@Value("${server.port}")private Integer port;@Value("${spring.application.name}")private String name;@GetMapping("/hello")public String hello(@RequestParam(name = "msg",required = false) String msg) {return "hello name:"+name+",port:"+port + " msg:" + msg;}@ResourceRestTemplate restTemplate;@GetMapping("/getApp2")public String getApp2() {return "getApp2:"+restTemplate.getForObject("http://myapp2/cloud/hello?msg=我来自myapp1",String.class);}
}
- 接着打开浏览器,访问http://localhost:8080/myapp1/cloud/getApp2,查看会发现成功访问myapp2,成功!
RestTemplate 发送json
GET请求:getForObject
POST请求:postForObject
HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);HttpEntity<String> entity = new HttpEntity<>(json, headers);String result = restTemplate.postForObject(url, entity, String.class); // 或者使用exchange方法获取更详细的响应信息System.out.println(result);
结语: ribbon是nacos默认集成,所以不需要额外引入,没有用open feign是因为想精简一些,虽然open feign看起来调用更简单一些。