Sentinel整合OpenFeign
2024-01-08 09:37:13
1、配置文件
feign: sentinel: enabled: true
2、 编写一个工厂类
import com.cart.cartservice.client.ItemClient;
import com.cart.cartservice.entity.Item;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.http.ResponseEntity;
@Slf4j
public class ItemClientFallbackFactory implements FallbackFactory<ItemClient> {
@Override
public ItemClient create(Throwable cause) {
return new ItemClient() {
@Override
public ResponseEntity<Item> queryById(Integer id) {
log.error("查询对象失败", cause);
//返回一个空对象
return ResponseEntity.ok(new Item());
}
};
}
}
需要实现FallbackFactory接口,其中ItemClient为客户端接口。?
3、声明这个类
import com.cart.cartservice.factory.ItemClientFallbackFactory;
import org.springframework.context.annotation.Bean;
public class DefaultFeignConfig {
@Bean
public ItemClientFallbackFactory getItemClientFallbackFactory(){
return new ItemClientFallbackFactory();
}
}
4、ItemClient上添加openFeign注解的属性fallbackFactory = ItemClientFallbackFactory.class)
import com.cart.cartservice.entity.Item;
import com.cart.cartservice.factory.ItemClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@FeignClient(value = "item-service",fallbackFactory = ItemClientFallbackFactory.class)
public interface ItemClient {
@GetMapping("item/{id}")
ResponseEntity<Item> queryById(@PathVariable("id") Integer id);
}
这样就可以在Sentinel里面配置限流了。
文章来源:https://blog.csdn.net/qq_42251944/article/details/135396462
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!