服务之间远程调用

SpringCloud中服务之间RPC调用主要有RestTemplate+Ribbon和Feign客户端调用

RestTemplate+Ribbon所需的依赖

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>	
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

使用RestTemplate调用需在启动类加注解加载

	@LoadBalanced
	@Bean
	RestTemplate restTemplate() {
		return new RestTemplate();
	}

在业务层中调用方式

@Service
public class OrderService {
	@Autowired
	private RestTemplate restTemplate;
	
	public String call() {
		return this.restTemplate.getForObject("http://service-user/api/user/home", String.class);
	}
}

这里getForObject第一个参数调用服务接口url地址,即 应用服务名 + 接口api相对地址,第二个参数为返回结果类型

使用Feign客户端调用其他服务需引入Feign依赖:

		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
        </dependency>

启动类加 @EnableFeignClients 注解
然后写个对应的接口类

@FeignClient(value="service-user")
public interface UserFeign {

	@RequestMapping(value="/api/user/home")
	String home();
}

@FeignClient的value是在application.yml中定义的其他服务的服务名
Controller接入层中使用Feign调用

	@Autowired
	UserFeign userFeign;

	@RequestMapping(value="/user_home")
	@ResponseBody
	public String userHome() {
		return userFeign.home();
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

设计师Linda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值