java
文章平均质量分 74
天心有情
这个作者很懒,什么都没留下…
展开
-
基于Thrift的分布式Hive数据源连接器
最近要写一个通过thrift连接hive的工具,传统的jdbc代码是不能获取日志的,因此需要定制一个可以获取hive 执行日志的客户端。我的连接是在节点A获取的,然后在节点A上执行了查询。那么我下次继续请求更新的日志信息的时候,请求可能到达了节点B。由于spring项目内已经注册的有Hazelcast集群,所以我们仅仅在此处检测JVM内存在的Hazelcast资源即可,检测到之后取出来就可以使用。问题的根源就是请求日志或者数据的时候请求是异步的,请求之后立马返回,下次请求具体到达什么节点是不确定的。...原创 2022-08-15 20:08:43 · 1083 阅读 · 1 评论 -
浅谈IOC编程思想
IOC 是的缩写表示控制反转在整个系统中IOC就相当于哆啦A梦的口袋,任何对象可以通过这个口袋中拿到。有了IOC容器之后再看c对象的依赖,它虽然还是依赖于a和b但是情况却不一样了fill:#333;color:#333;color:#333;fill:none;}IOC容器abc如图所示,此时的情况相当于cc的依赖交由IOC容器进行管理,在程序运行时IOC容器主动的将a和b进行注入到c中。这时候c由主动创建a和b两个依赖的行为被反转为被动接受IOC容器注入a和b依赖思考一下?......原创 2022-08-03 15:46:07 · 475 阅读 · 0 评论 -
SpringBoot分布式共享内存
最新开发一个数据平台,平台本身为分布式部署,但是各个节点都是有一份缓存,缓存存储了全量数据,每次数据更新都会需要广播请求更新每一个节点的缓存。如果某一个请求失败那么内存中的数据就会造成不一致的情况,导致请求如果分配到这个没有更新内存的节点出现的结果将是不可预期的。曾经考虑过使用redis但是由于是赋能项目,所以不能导致因为赋能项目让客户必须部署redis才可以使用。因此redis方案就此夭折。...原创 2022-07-19 11:30:07 · 969 阅读 · 0 评论 -
SpringBoot多数据源
mybitsplus用户使用双数据源是很方便的可以直接使用mybits的双数据源大家可以点进去看官方文档,但是有些文档地方是没有的或者收费的。先看mybitsplus的实现 【官方文档节选】当你想要切换数据源时可以使用注解可以使用在方法上面或者类上面。当然也可以手动切换数据源, mybitsplus提供了来进行手动切换当然里面放的参数名为你配置文件里写的数据源名称,如上面配置的,,使用之前调用push将数据源推进去,使用完成之后调用poll。的实现是一个栈因此将数据源使用的时候push进去原创 2022-07-08 10:04:36 · 657 阅读 · 0 评论 -
Could not find acceptable representation 原因探究
日志是一条warn信息,但是下面的报错就是重新定向到/error路径了,因此可以断定项目出错的地方在这个warn类型日志上主要的功能是Excel文件下载,文件下载时设置但是设置之后却会出现错误,项目内其他json类型却可以正常返回不受影响,受影响的仅仅为下载接口。对代码进行debug,数据正常组装到但是在返回的时候Spring的返回类型仅仅只有json类型。那么可能就时SpringBoot结果转换器出现问题。 查看以前覆写的 当初为了支持Iong类型精度不丢失重写了结果转换器,当时仅考虑到json类型,对于原创 2022-06-16 10:42:04 · 2100 阅读 · 1 评论 -
SpringBoot自定义Spring路由
SpringBoot 的路由调度是由DispatcherServlet类进行调度的 调度流程是由 给request添加一系列请求属性后调用方法这里的调用实际上就是查找handlerMapping的handlerHandleMapping的实例AbstractHandlerMapping也是RequestMappingHandlerMapping的父类,实现了这个方法可以看出调用方法获取了请求具体的handler,这个方法的作用就是去查找url对应的方法,如下可以看出该方法调用了方法去查找path对应原创 2022-06-08 14:58:29 · 3729 阅读 · 0 评论 -
JAVA自带插件机制
JAVA 插件机制 - java SPIjava 官方提供自己的插件机制 【点击进入官方插件机制文档】本文内容是对官方文档的理解加实践。文章目录JAVA 插件机制 - java SPI实现java SPI大约需要三个步骤定义插件接口编写插件加载插件实现java SPI大约需要三个步骤定义插件接口实现Spi 首先要定义一个SPI接口,以后的拓展插件都需要实现这个接口个人理解:设计模式的六大原则之一: 依赖倒置原则上层模块不应该依赖底层模块,它们都应该依赖于抽象。抽象不应该依赖于细节,细原创 2022-04-12 15:32:20 · 734 阅读 · 0 评论 -
Hasor Dataway 实现原理
Hasor Dataway 实现原理文章目录Hasor Dataway 实现原理引言请求流程结束语引言最近搞接口可配置发布的服务,类似于Megic-Api,但是最近看到一个框架Hasor感觉这个框架很厉害,尝试分析一下他的实现原理,借鉴一波。请求流程先看简化流程图#mermaid-svg-VIlLRH68zREspnlL .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)原创 2022-02-22 15:39:40 · 599 阅读 · 0 评论 -
深入理解JAVA虚拟机 脑图
深入理解JAVA虚拟机最近读了《深入理解Java虚拟机》感觉,深深感受到了JAVA语言的强大。下面是整理的脑图,仅供参考。如果看不清,链接【点击进入】原创 2020-11-03 11:43:13 · 209 阅读 · 0 评论 -
如何用scala写出java8的函数BiConsumer等匿名函数
使用scala写出java的BiConsumer最近做一个项目需要使用scala调用java的API,但是java的api上面的输入参数为BiComsumer接口,这种接口在java中写很简单,比如这样(m,n)-> System.out.println(m+n)但是在Scala中调用就没有那么简单了于是我就查看了Biconsumer的源码,发现他有着两个方法,其中一个方法已经实现...原创 2019-02-14 15:25:03 · 1391 阅读 · 1 评论 -
身份证校验算法
package util;import java.text.SimpleDateFormat;import java.util.Date;/** * Created by LiuWenSheng on 2018/1/11. */public class CheckIdCard { private final static int NEW_CARD_NUMBER_LENGTH原创 2019-07-02 12:42:40 · 308 阅读 · 0 评论 -
LinkedBlockingDeque
LinkedBlockingDequeJDK上面介绍:是一个基于已链接节点的、任选范围的阻塞双端队列。可选的容量范围构造方法参数是一种防止过度膨胀的方式。如果未指定容量,那么容量将等于 Integer.MAX_VALUE。只要插入元素不会使双端队列超出容量,每次插入后都将动态地创建链接节点。大多数操作都以固定时间运行(不计阻塞消耗的时间)。异常包括 remove、removeFirstOccurre原创 2017-09-13 14:56:15 · 370 阅读 · 0 评论