使用openfeign
消费端:
1.导入依赖
2.启动类加@EncableFeignClients注解(开启openfeign)
3.编写feign接口加上@FeignClient注解(绑定服务提供方)
4调用接口
1.依赖
org.springframework.cloud spring-cloud-starter-openfeignorg.springframework.cloud spring-cloud-starter-netflix-hystrixorg.springframework.cloud spring-cloud-starter-netflix-eureka-clientcom.atguigu.springcloud cloud-api-commons${project.version} org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-actuatororg.springframework.boot spring-boot-devtoolsruntime true org.projectlombok lomboktrue org.springframework.boot spring-boot-starter-testtest
2.主启动类添加注解
@SpringBootApplication
@EnableFeignClients
@EnableHystrix
public class OpenFeignApp
{
public static void main(String[] args)
{
SpringApplication.run(OrderHystrixMain80.class,args);
}
}
3.feign接口
@Component
@FeignClient("SERVICE-PROVIDER")
public interface ProductFeignService {
//通过控制层url进行帮订。
@RequestMapping("/provider/product/findAll")
public List findAll();
@RequestMapping("/provider/product/findByPid")
public String findByPid(@RequestParam("pid") Integer pid);
}
4.另外的服务调用接口
@RestController
@Slf4j
public class PaymentController {
@Resource
private ProductFeignService productFeignService; // 注入 service 中 通过 @FeignClient 定义好的接口
@GetMapping("/feign/payment/get/{id}")
public RespResult getPayment(@PathVariable("id") Integer id) {
log.info("<<<<<<<<<<< 我是通过feign >>>>>>>>>>>>");
return productFeignService.findByPid(id);
}
}
使用Dubbo远程调用
1.生产者消费者添加dubbo依赖
2.使用org.apache.dubbo.config.annotation.Service注解标记要远程引用的service
3.消费者使用@Refence注解注入Service
1.生产者消费者添加dubbo依赖
com.alibaba.cloud spring-cloud-starter-dubbo
2.使用org.apache.dubbo.config.annotation.Service注解标记要远程引用的service
//dubbo里的@Service注解
import org.apache.dubbo.config.annotation.Service;
@Service
public class AppServiceImpl implements IAppService {
@Autowired
AppMapper appMapper;
@Override
public AppDTO createApp(AppDTO appDTO) throws BizException {
return null;
}
3.消费者使用@Refence注解注入Service
@Slf4j
@RestController
public class AppController {
//远程调用
@Reference
IAppService appService;
public AppDTO createApp(@RequestBody AppVo appVo){
return appService.createApp(appDTO);
}



