spring boot
文章平均质量分 58
cxylikui
这个作者很懒,什么都没留下…
展开
-
springdoc文档不显示
二、如何配置都正确的情况下,访问doc.html不显示接口文档,那么在配置文件中添加。一、使用Tag注解,接口文档会显示中文和类名,解决办法:使用@Api(tag)原创 2024-02-28 17:34:09 · 540 阅读 · 2 评论 -
RabbitMQ在生产中的实际应用
怎么确保消息的可靠性要确保消息的可靠性,主要从这两方面去确认消息成功到达Exchange消息成功到达Queue如果这两步中任一步骤出现问题,那么消息就没有成功送达,此时我们可能要通过重试等方式去重新发送消息,多次重试之后,如果消息还是不能到达,则可能就需要人工介入了。经过上面的分析,我们可以确认,要确保消息成功发送,我们只需要做好三件事就可以了:确认消息到达 Exchange。确认消息到达 Queue。开启定时任务,定时投递那些发送失败的消息。生产者保证消息可靠先来看第一步,确认原创 2022-04-06 19:38:12 · 1464 阅读 · 0 评论 -
dubbo学习笔记(8):注册中心源码剖析
核心流程前面在服务暴露与引用分析的时候,我们是基于直连的方式,没有使用注册中心,这就需要将url写死,这显然不符合我们的实际开发。实际开发中,rpc的核心流程应该是这样的:代理协议有了注册中心后,就引出了RegistryProtocol这个概念,它继承了Protocol,但是它并不具备远程通信的能力,所以在它内部代理了一个Protocol,所以它是一个代理协议。通过下图来看看它和注册中心,DubboProtocol的关系此时的url就类似于下面这种"zookeeper://192.168.6原创 2021-03-28 23:12:10 · 266 阅读 · 1 评论 -
dubbo学习笔记(7):服务暴露与引用
功能架构首先通过一张图来了解整个功能架构下面是rpc的核心流程服务暴露首先分析服务暴露的过程,通过源码来理解通过协议的方式来暴露服务: String urlText="dubbo://127.0.0.1:20880/cxylk.dubbo.UserService?timeout=6000"; // 暴露服务测试 @Test public void exportTest() throws IOException, IOException { Dub原创 2021-03-28 23:01:44 · 277 阅读 · 0 评论 -
dubbo学习笔记(6):dubbo服务治理
控制后台监控中心搭建dubbo-admin就是后台服务,不过这里使用旧版本,也就是2.6以前的。它包括:控制后台,监控中心,简单注册中心。而新版的话是控制后台,控制后台包含了服务节点和前台,采用了前后端分离,但是不太稳定。下载:目前是到github上的dubbo-admin模块下载分支0.2.0的代码下载完后进入dubbo-monitor-simple目录,使用以下命令打包:mvn clean -Dmaven.test.skip=true package打包之后会生成一个target目录,在该原创 2021-03-28 22:44:57 · 116 阅读 · 0 评论 -
dubbo学习笔记(5):远程传输协议和序列化
RPC协议在一个典型的RPC使用场景中,包含了服务发现、负载、容错、网络传输、序列化等组件,其中RPC协议就指明了程序如何进行网络传输和序列化。也就是说一个RPC协议的实现就等于一个非透明的远程调用实现。通过下面一张图来理解:RPC协议组成分别说下每个部分的作用:1.地址:服务提供者的地址和端口2.运行服务:用于网络传输实现,常用的服务有:nettyminaRMI服务servlet容器(jetty、Tomcat、Jboss)3.报文编码:协议报文编码,分为请求头和请求体两部分原创 2021-03-20 17:55:30 · 676 阅读 · 0 评论 -
实现InitializingBean接口并且在重写方法中无法使用ConCurrentHashMap
由于需要做一个抢单业务,所以想在SpringBoot初始化完成后把未被抢单的任务查出来,然后通过一个本地缓存标记来判断当前任务是否被抢,如果被抢,就不去交互数据库。这里的本地缓存使用ConcurrentHashMap实现,当前类实现InitializingBean接口,并且重写afterPropertiesSet方法,然后在该方法中将数据放入缓存。但是在启动过程中就会报错无法创造当前类的bean,当我把ConcurrentHashMap换成HashMap后就不会报错了,网上搜索也没有答案。但我又想使用Co原创 2021-03-19 15:17:31 · 185 阅读 · 0 评论 -
dubbo学习笔记(4):dubbo调用机制和容错策略
先通过一张图来了解大概的关系远程调用机制基本过程:客户端向服务端发送参数,并等待获取结果。如果调用过程出错则需要对异常进行处理。dubbo默认是使用同步调用的,还支持异步调用、并行调用、广播调用。同步调用对远程接口方法调用就属于同步调用。原理:向远程服务端发送参数后,整个线程将会阻塞,知道服务端将结果返回。dubbo远程调用传输是由专门的IO线程(非阻塞)完成的,调用线程把结果传递给IO线程后,会构建一个CompletableFuture,并通过它阻塞当前线程去等待结果返回,当服务端返回结原创 2021-03-17 17:15:15 · 880 阅读 · 0 评论 -
关于@Autowired无法注入静态字段的问题
由于一个方法被多个类所使用,所以为了重构代码,就该方法单独放在一个类中,那么为了方便调用,这个方法就不可避免的成为静态方法。而在该方法中又需要引入一个service来调用其方法,所以需要注入service方法字段。并且为了能在静态方法中调用,该字段就必须为静态字段但是当使用@Autowired主键注入的时候,就报空指针异常,换@Resource注解注入注解提示该注解不能加在静态字段上。解决办法很简单,新建一个非静态的set方法,然后将@Autowired注解加在方法上就可以了。每天记录一下代码异常。。原创 2021-03-09 17:36:46 · 422 阅读 · 0 评论 -
swagger日期参数校验不通过的解决办法
如果前端需要传入一个Date类型的参数来查询,比如createdTime,如果按swagger给的日期参数,那么是会报错的。解决办法就是在参数上面加上:@JsonFormat(timezone="GMT+8", pattern="yyyy-MM-dd")比如我的参数是封装在vo里面的,那么就在vo中的日期参数上面就上就好了。...原创 2021-03-04 10:51:42 · 1348 阅读 · 1 评论 -
关于@GetMapping注解不能和@RequestBody注解一起用的问题
前几天犯了一个低级错误,在使用@GetMapping的接口上面使用了@RequestBody注解来传递参数,导致参数校验一直不通过,报RequestBody missing的错误。特此记录下原创 2021-03-03 16:42:17 · 1133 阅读 · 1 评论