400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

ribbon的调用方式和Feign实现远程调用

一:Feign

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了普兰免费建站欢迎大家使用!

创建FeignClient客户端

@FeignClient(name = "product")//www.1b23.com
public interface IProductClient {

    @GetMapping("/msg")
    String productMessage();

    @PostMapping("/product/listForOrder")
    List productInfoList(@RequestBody List productIdList);

    @PostMapping("/product/decreaseStock")
    void decreaseStock(List cartDtoList);
}

  1. 使用FeignClient客户端。

@Autowired
    private IProductClient productClient;

    @GetMapping("/getProductMsg")
    public String getProductMsg(){
        String response = productClient.productMessage();
        log.info("response={}",response);
        return response;
    }

注意,有时候会报找不到IProductClient这个bean,此时就需要添加扫描包,这个问题在调用时经常遇到。

@EnableFeignClients(basePackages = "com.springcloud.product.client")

二:ribbon

可以看到 Feign 调用步骤比较繁琐,并且传参数以及经过zuul 问题较多

再来看看ribbon 

 只需要在 implements 接口类里面引入一个 ribbon 均衡,再方法中调用即可

/**
 * www.1b23.com
 */
@Service
@Transactional //开启事物
public class UsersServiceImpl implements UsersService {
	
	@Autowired
	private LoadBalancerClient loadBalancerClient;//ribbon负载均衡器

    ......

   /**保存用户
	 * @param pd
	 * @throws Exception
	 */
	public void saveUser(PageData pd)throws Exception {
		usersMapper.saveUser(pd);
		pd.put("tokenKey", Tools.creatTokenKey("userAdd"));
		LoadBalancerUtil.responseByPost(this.loadBalancerClient, "fh-dbsync", "user/add", pd);	//请求数据库表同步微服务
	}

}

"fh-dbsync" 是注册到eurake里面的服务名称,“user/add”  微服务的 RequestMapping 完整路径  “pd” 就是map,存放参数用的


新闻标题:ribbon的调用方式和Feign实现远程调用
分享路径:http://www.bluegullmedia.com/article/jhhpde.html

其他资讯

让你的专属顾问为你服务

0.0484s