4 布碗

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 1w+

OpenFeign学习(九):Spring Cloud OpenFeign的加载配置原理 II

说明在上篇博文《OpenFeign学习(八):Spring Cloud OpenFeign的加载配置原理》中,我简单介绍了Spring Cloud 是如何通过注解对Feign Client进行加载配置的。主要介绍了通过FeignClientsRegistrar类,对所有使用@FeignClient注解的类进行加载配置,实现Feign Client的配置类Bean的注册和相对应Client的FeignClientFactoryBean的注册。同时还提到在spring.factories配置文件中,配置了有关

2020-07-04 20:28:24

OpenFeign学习(八):Spring Cloud OpenFeign的加载配置原理

说明在上篇博文《OpenFeign学习(七):Spring Cloud OpenFeign的使用》中,我介绍了Spring Cloud OpenFeign的简单用法。在本篇博文中,我将继续对Spring Cloud OpenFeign进行学习,通过源码介绍Spring Cloud是如何对OpenFeign进行集成支持,如何进行加载配置。正文注解的使用在阅读源码前,我们先通过文档简单了解下Spring对OpenFeign进行了那些扩展支持:Spring Cloud adds support for

2020-06-29 22:57:09

OpenFeign学习(七):Spring Cloud OpenFeign的使用

说明通过之前的几篇博文,我简单介绍了OpenFeign的使用及其工作原理。OpenFeign的易用性和扩展性让人印象深刻。接下来,我将继续学习Spring是如何对OpenFeign进行集成支持,使其在Spring Cloud 微服务体系中发挥着重要的作用。在本篇博文中,我将结合官方文档介绍Spring Cloud OpenFeign,了解其基本使用方式及功能特性。进行服务间的调用无外乎HTTP请求或者RPC调用,在Spring Cloud 微服务体系中也支持了这两种方式。分别是以HTTP请求为基础的Sp

2020-05-31 23:45:53

OpenFeign学习(六):OpenFign进行表单提交参数或传输文件

说明在之前的博文《OkHttp的高级封装Feign学习(一): Feign注解的使用》中,我简单介绍了OpenFeign的使用方式。其中在请求传递参数时,可以使用@Param和@QueryMap注解。本篇博文我将介绍学习如何使用OpenFeign进行表单参数提交或者传输文件。正文我们先看下之前示例中只使用@Param和@QueryMap的局限性:@Param注解用来解析其他注解中的参数表达式,一般用于restful风格的请求方式中。@QueryMap注解则是用来定义参数的Map集合或者是POJO。这

2020-05-16 18:34:38

OpenFeign学习(五):OpenFeign请求结果处理及重试控制

#说明在上篇博文《OpenFeign学习(四):OpenFeign的方法同步请求执行》一文中,我对OpenFeign的同步请求的执行的原理进行了介绍和学习。本篇博文我将继续通过源码对请求之后结果的封装解码及失败重试进行介绍和学习。正文在上篇博文中提到,OpenFeign通过SynchronousMethodHandler进行同步方法请求处理,在介绍executeAndDecode方法源码时,...

2020-04-25 15:32:26

OpenFeign学习(四):OpenFeign的方法同步请求执行

说明在上篇博文《OpenFeign学习(三):OpenFeign配置生成代理对象》中,我对OpenFeign的整体工作流程做了简单的介绍,并且通过源码,介绍学习了OpenFeign配置创建代理对象的原理。在本篇博文中,我将继续通过源码对OpenFeign的方法请求工作流程的原理进行介绍学习。正文在阅读请求部分的源码前,我们先回顾下上篇博文的内容,包括OpenFeign的整体工作流程图和配置创...

2020-04-19 16:32:58

OpenFeign学习(三):OpenFeign配置生成代理对象

说明在之前的两篇博文《OkHttp的高级封装Feign学习(一): Feign注解的使用》和《OpenFeign学习(二):高级用法自定义配置组件HttpClient / SLF4J / RequestInterceptor等》中,我简单介绍了OpenFeign的使用方法。在本篇博文中,我将通过源码来学习记录OpenFeign的工作原理。正文工作流程在阅读源码前,我们先通过流程图来了解Op...

2020-04-06 16:39:34

RabbitMQ学习(二十一):使用消息有效期TTL和死信路由DLX实现消息延迟重试消费的限制

说明在之前的一篇博文《springboot学习(十三):RabbitMQ的使用 实现消息延迟消费》中,我简单介绍了使用Rabbitmq的消息有效期和死信路由的特性实现消息的延迟消费。在后续的使用中,希望通过这两种特性实现针对消息自定义过期时间实现延迟消费,但是发现Rabbitmq并不支持。本篇博文将对使用中出现的问题进行总结记录。正文在之前延迟消费一文的示例代码中,每个消息都设置了5s的有效...

2020-03-29 15:08:56

OpenFeign学习(二):高级用法自定义配置组件HttpClient / SLF4J / RequestInterceptor等

说明在项目开发中,避免不了通过HTTP请求进行对第三方服务的调用,在上篇博文OkHttp的高级封装Feign学习(一): Feign注解的使用中,我对Feign注解基本使用进行了学习总结。本篇博文我将继续对feign的其他特性及高级用法进行学习总结。正文feign具有很强的扩展性,允许用户根据需要进行定制,如HTTP客户端OkHttp, HTTP/2 client, SLF4J日志的使用, ...

2020-02-26 22:56:18

OkHttp的高级封装Feign学习(一): Feign注解的使用

说明在项目开发中,避免不了通过HTTP请求进行对第三方服务的调用,在之前的两遍博文《OkHttp使用踩坑记录总结(一):OkHttpClient单例和长连接Connection Keep-Alive》和《OkHttp使用踩坑记录总结(二):OkHttp同步异步请求和连接池线程池》中,我对OkHttp使用过程中遇到的一些问题进行了总结记录。在微服务架构体系中,我们通常使用netflix开源的sp...

2020-02-23 22:54:57

OkHttp使用踩坑记录总结(二):OkHttp同步异步请求和连接池线程池

说明在项目中对第三方服务的调用,使用了OkHttp进行http请求,这当中踩了许多坑。本篇博文将对OkHttp使用过程遇到的问题进行总结记录。正文同步请求SyncRequest 异步请求AsyncRequest通过简单示例了解OkHttp如何进行http请求:SyncRequest:private static void syncRequest(String url) throws ...

2020-01-20 17:57:36

OkHttp使用踩坑记录总结(一):OkHttpClient单例和长连接Connection Keep-Alive

说明在项目中对第三方服务的调用,使用了OkHttp进行http请求,这当中踩了许多坑。本篇博文将对OkHttp使用过程遇到的问题进行总结记录。正文OkHttpClient 单例在刚开始使用时,没有将OkHttpClient单例化,造成的后果就是服务器OOM异常,can’t create native thread…为什么会出现OOM,提示无法创建本地线程?通过查看资料文档发现,每个cl...

2020-01-20 17:02:52

EasyExcel使用总结(一):写Excel

说明最近有很多数据要处理,需要导出Excel表格。在使用POI时发现非常耗内存,在GitHub上发现阿里开源的Easy Excel项目,基于java的读写Excel,十分省内存。本篇博文主要是总结记录了使用EasyExcel进行写Excel的方法。正文引入依赖在pom.xml文件引入easyexcel依赖,我使用的是2.1.4版本,目前最新是2.1.6。<dependency&gt...

2020-01-11 21:46:02

写在2019年末

19年的最后两天,北京真的好冷。又到了年底总结的时候。脑袋里把19年的事情,像电影一样回放了一遍,发现并没有像18年那样,有很多记忆深刻的东西。从18年毕业转正到现在,算上实习,工作了已经有20个月又10天。工作后,最大的感触就是时间太快了,人生太艰难了。先把19年的流水账记下吧。首先,工作上今年的加班比去年多了,但是相较于业内的996,加班这块还是比较幸福的。从实习到现在,公司上的业务也熟悉...

2019-12-31 21:31:39

Array.asList()踩坑记录之java.lang.UnsupportedOperationException

说明本篇博文主要记录了在使用Arrays.asList()方法时遇到的问题,并通过源码了解其背后的原理。正文问题描述:在将Arrays.asList()方法生成的list集合,作为参数传递到方法中,但在运行中出现了一下bug。java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList...

2019-12-27 23:39:09

Apollo学习(六):自定义Meta Server地址定位逻辑

说明在之前的一篇博文《Apollo学习(二): Java客户端使用》中,我简单地总结了Apollo配置中心的java客户端使用方法,其中有几个重要步骤,如确定项目的AppId,设置Meta Server的地址,设置本地缓存路径的地址等。在之前的博文中,对Meta Server地址的设定是通过项目内的app.properties配置文件和系统配置环境参数来进行设置的,这种方式在实际使用中,有很多...

2019-11-30 21:02:33

Apollo学习(五):docker容器化分布式部署

说明在之前的文章《Apollo学习(三): 分布式部署》中,我简单介绍了在Windows环境下,实现Apollo配置中心的分布式部署。本篇博文我将对如何实现Apollo的docker容器化分布式部署的步骤进行记录总结。正文目的根据源码定制安装包,修改默认端口,日志输出地址、等级,jvm等参数的默认值使用独立的docker部署的注册中心集群使用容器化部署的MySQL数据库容器化部署A...

2019-11-24 21:03:54

RabbitMQ学习(二十):消费者优先级和优先级队列

说明在之前的博文中我对RabbitMQ的一些扩展特性进行了翻译学习,本篇博文我将继续翻译学习RabbitMQ的消费者优先级(Consumer Priorities)和优先级队列(Priority Queues)相关内容。正文消费者优先级(Consumer Priorities)消费者的优先级可以确保在不同优先级消费者都活跃消费消息时,高优先级的消费者会首先接收消息,只有在高优先级的消费者阻...

2019-10-27 20:39:28

Kafka学习(一):消费者实现对分区的并发消费

说明在上篇博文《springboot学习(十七):了解spring - kafka配置工作原理》中,我们简单了解了spring-kafka的配置工作原理。通过源码可以看到spring在实现并发消费时,采用的是线程封闭的策略,也就是一个groupid中,根据配置的concurrency来创建多个消费者线程,每个消费者消费一个或多个分区,来实现整个topic消息的消费处理。本篇博文将对上篇博文中最后...

2019-10-19 19:22:08

springboot学习(十七):了解spring - kafka配置工作原理

说明在上篇博文《springboot学习(十六):了解springboot自动装配kafka原理》中,我对springboot自动装配kafka的原理进行了简单介绍,在文末说到springboot通过初始化配置类org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration实现了对kafa的自动装配。而该类又通过注解间接引入...

2019-10-02 12:28:18

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。