技术标签: springcloud
代码地址:https://github.com/AJ-Spade/cloud2020/tree/master
使用步骤:
接口+注解,微服务调用接口[email protected];
新建cloud-consumer-feign-order80,注意:Feign是在消费端使用的;
POM、YML,然后在主启动类上,添加注解@EnableFeignClient,表示激活并开启Feign;
在业务类中:
业务逻辑接口[email protected]配置调用provider服务(与服务提供者中的业务逻辑层中暴露出来的接口对应,但是具体返回结果,需要看服务提供者中的控制层的对应方法(直接拷贝控制层中的方法也也行,不需要具体内容);@FeignClient相当于使用Feign;
新建PaymentFeignService接口并新增注解@FeignClient;
//服务提供者的业务层接口
public interface PaymentService {
public int create(Payment payment);
public Payment getPaymentById(@Param("id") Long id);
}
//服务提供者的控制层对应内容
@GetMapping(value="/payment/get/{id}")
public CommonResult getPaymentById(@PathVariable("id") Long id){
Payment payment = paymentService.getPaymentById(id);
log.info("*********查询结果"+payment);
if(payment!=null){
return new CommonResult(200,"查询成功,serverPort:"+serverPort,payment);
}else{
return new CommonResult(444,"没有对应记录,查询id:"+id,null);
}
}
//消费者的业务逻辑接口[email protected]配置
@Component
@FeignClient(value="CLOUD-PAYMENT-SERVICE")//找这个微服务下的如下方法
public interface PaymentFeignService {
@GetMapping(value="/payment/get/{id}")微服务的具体调用地址,找的则是8001或8002服务的对应方法
public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id);
}
控制层Controller:在controller包下添加OrderFeignController:
@RestController
@Slf4j
public class OrderFeignController {
@Resource
private PaymentFeignService paymentFeignService;
@GetMapping(value = "/consumer/payment/get/{id}")
public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id){
return paymentFeignService.getPaymentById(id);
}
}
OpenFeign超时控制:
起因:因为是消费端调用服务提供者对外暴露的URL接口,所以可能服务提供者的方法处理运行了3秒钟,但是消费端只能等2秒钟,就会发生报错;默认Feign客户端只等待1秒钟。
步骤:
设置Feign客户端的超时时间,在yml开启配置:
server:
port: 80
eureka:
client:
register-with-eureka: true
service-url:
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
#设置feign客户端超时时间(OpenFeign默认支持ribbon)
ribbon:
#表示建立连接所用的时间
ReadTimeout: 5000
#表示建立连接后从服务器读取到可用资源的时间,5s
ConnectTimeout: 5000
OpenFeign的日志打印功能:
目的:对Feign接口的调用情况进行监控和输出;
Feign提供日志打印功能,可用通过配置来调整日志级别,从而了解Feign中Http请求的细节。
日志级别:
步骤:
配置日志bean;
//创建一个config包,其中方法如下:
@Configuration
public class FeignConfig {
@Bean
Logger.Level feignLoggerLevel() {
return Logger.Level.FULL;
}
}
YML文件中,开启日志的Feign客户端;
logging:
level:
# feign日志以什么级别监控哪个接口,这里是以debug形式
com.atguigu.springcloud.service.PaymentFeignService: debug
后台查看日志;
接口也是可以被注入的,因此在需要被注入的接口上,也要添加@Component,如该module下的OrderFeignController类就注入了PaymentFeignService接口。
//消费者的业务逻辑接口[email protected]配置
@Component
@FeignClient(value="CLOUD-PAYMENT-SERVICE")//找这个微服务下的如下方法
public interface PaymentFeignService {
@GetMapping(value="/payment/get/{id}")微服务的具体调用地址,找的则是8001或8002服务的对应方法
public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id);
}
上面代码,有点类似在消费者端编写接口,然后用@FeignClient(value=…)指示程序去服务提供者(如CLOUD-PAYMENT-SERVICE)中找具体的实现类,只是有的返回结果不太一样,一般遵循服务提供者中控制层对应的方法。
Feign的方法,让消费端继续沿用了控制层(controller)调用业务层(Service)的规则。
stm32F4系列的芯片相对与以前M3内核的芯片最大的不同是对时钟进行了很多的优化,采用了两个锁相环,一个用于IIS,不知道在音频处理上面会有什么效果,另一个则是用于M4核心和大部分外设。 官方的库中system_stm32f4xx.c文件中已经给我们提供了时钟配置函数,其中我们只要修改文件头中的定义就可以修改系统频率: #define PLL_M 8
玩转git分支https://www.cnblogs.com/sunshine-anycall/p/4342520.html 搞个代码的管理工具,居然不弄上分支啥的东西。这简直太low了。尤其是在使用了传说中得很牛X的Git的时候,尤其显得low。拿着青龙偃月刀当烧火棍子使,关公知道了还不重反人间教育你!?远程分支要说分支就一定要从分支产生的最遥远的历史谈起。这一切开始于你用c...
最近一个项目用了水晶报表开发报表,其中涉及到了生成的多张pdf文件合并的问题,最近一直在研究这个。也没有找到太好的实现方法,自己写一套Class实在是太费劲了,最好的解决方案还是用了其他的dll。没有太深入的研究,找到可以很简单实现的dll包括前文所说的那个pdfkit,还有一个easyPDF SDK,实现起来都很简单,比如这个easyPDF SDK:在工程中引入BEPPROCLib后,
一、概述 在本篇文章中将对四种聚类算法(K-means,K-means++,ISODATA和Kernel K-means)进行详细介绍,并利用数据集来真实地反映这四种算法之间的区别。 首先需要明确的是上述四种算法都属于"硬聚类”算法,即数据集中每一个样本都是被100%确定得分到某一个类别中。与之相对的"软聚类”可以理解为每个样本是以一定的概率被分到某一个类别中。 先简...
一、理解void的能否定义变量 二、void作为函数返回值以及函数参数 三、void指针的用法
事情是这样的,一个朋友问我,能不能帮忙看看手机淘宝的商品详情接口和一些联盟的接口。他想直接调用手机app的接口去处理一些业务。我看了下。手机淘宝app的架构做的真不错。说干就干。hook架构:netty+spring boot+xposed首先root手机或者下载手机模拟器 安装xposed,安装手机淘宝app vs创建一个xposed框架 hook手淘的入口(代码就不贴了,百度下一堆) hook签名参数 注入广播 反射拿到签名方法和签名结果...
*相关软件的版本:gcc版本:gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52)Linux版本:红帽企业版 5.51.概述:在之前的“Linux上使用套接字(socket)来发送信息”的文章中我们讲了套接字的相关相关的属性和相关的函数,但是我们在之前的文章中写的服务端的实例写的都是阻塞模式的套接字,而且我们之前编写的套接字的实例只能使用于单个
Non-deep NetworkAnkit Goyal1,2 Alexey Bochkovskiy2 Jia Deng1 Vladlen Koltun21Princeton University 2 Intel Labs[pdf] [github]Figure 1: Top-1 accuracy on ImageNet vs. depth (in log scale) of various models. ParNet performs competitively ...
...8./Database/#newasp.mdb关键词:NewAsp SiteManageSystem Version9.用挖掘机 关键字:Powered by WEBBOY页面:/upfile.asp10.baidu中搜索关键字Ver5.0 Build 0519(存在上传漏洞)11.Upfile_Article.asp bbs/upfile.asp 输...
**.apply(lambda x: format(x,'f')
经验总结:4.1 的 copycat 不可怕,比起判定你是马甲的 4.3 来,要好受的多。首先 4.1 基本是人审,人审就比较好讲道理,而机审就很难,因为现在苹果审核就是机器的小弟,全听机器的;其次首先自己腰板要直,只要充分考虑过侵权这个问题,并做过相应处理,底气就更足,也比较好和审核叫板;第三点,不要急于修改,先理论,提出自己多观点,要学会平视审核,不要学很多网友搞的自己苦兮兮的,说了一堆卖可怜的话,论据没有重点。最后一点,要认命,如果真的苹果审核死咬不放,那就不要纠结了,趁早放弃保号稳妥。
不错的yolo的介绍:https://blog.csdn.net/m0_37192554/article/details/81092514https://blog.csdn.net/Dongjiuqing/article/details/84763430https://www.cnblogs.com/fariver/p/7446921.htmlhttps://blog.csdn.net...