08 2020 档案
摘要:ConfigurationProperties主要用来对格式化配置信息进行整理,将多个相关的配置信息整理到一个类里,这个类可以被@ConfigurationProperties修饰,如果希望它启用,需要添加@Configuration这些注解,如果没有添加@Configuration注解,那么在启动
阅读全文
摘要:位运算控制数字范围 通过位运算,可以对一个数进行限制,保证这个数在2n-1(3,7,15,31,63,127,255...)范围内,当大于指定的数时,会取这个0到2n-1里的某个数,不会让它溢出。 之前我写过的位运算的文章 https://www.cnblogs.com/lori/p/3342781
阅读全文
摘要:HBase 的工作原理图 在上面的图中,我们需要注意几个我们之前没有提到的概念:Store、MemStore、StoreFile 以及 HFile。带着这几个新的概念,我们完整的梳理下整个 HBase 的工作流程。 首先我们需要知道 HBase 的集群是通过 Zookeeper 来进行机器之前的协调
阅读全文
摘要:HBase的组成 在这里,让我们了解下 HBase 都有哪些模块,以及大致的工作流程。前面我们提到过 HBase 也是构建于 HDFS 之上,这是正确的,但也不是完全正确。HBase 其实也支持直接在本地文件系统之上运行,不过这样的 HBase 只能运行在一台机器上,那么对于分布式大数据的环境是没有
阅读全文
摘要:查询条件 主要包含了以下几个 match_all match term range match match类型查询,会把查询条件进行分词,然后再查询,词条之间是or关系,按照相关性得分排序。 GET /lind/_search { "query": { "match":{ "name": "hell
阅读全文
摘要:IOC,把控制反转到业务端,这句话没什么问题,在springboot框架里,对象的管理是通过spring ioc来实现的,而开发人员的开发原则里总是说“面向接口编程”,而为什么要面向接口却没几个人能说出来,今天在写一个基于redis的手动分布锁时,对这个面向接口和控制反转又有了一个体会。 底层代码更
阅读全文
摘要:@SneakyThrows注解是由lombok为我们封装的,它可以为我们的代码生成一个try...catch块,并把异常向上抛出来,而你之前的ex.getStackTrace()是没有这种能力的,有时,我们从底层抛出的异常需要被上层统一收集,而又不想在底层new出一大堆业务相关的异常实例,这时使用@
阅读全文
摘要:ReentrantLock java除了使用关键字synchronized外,还可以使用ReentrantLock实现独占锁的功能。而且ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。这篇文章主要是从使用的角度来分析一下Reentra
阅读全文
摘要:通过lua脚本来运行redis命令主要体现在批量执行和跨语言方面,我们可以通过redis.call()函数来执行lua脚本,下面介绍几个lua里的参数 eval lua-script key-num [key1 key2 key3 ....] [value1 value2 value3 ....]
阅读全文
摘要:annotation就是注解的意思,在我们使用的拦截器时,可以通过业务层添加的某个注解,对业务方法进行拦截,之前我们在进行统一方法拦截时使用的是execution,而注解的拦截我们使用@annotation即可,我们可以做个例子,比如搞个防止重复提交的注解,然后在拦截器里去写防止重复提交的逻辑就好了
阅读全文
摘要:之前的文章说过通过sidecar实现fluentd插件在容器上的挂载,直接将容器某个目录的log文件收集到es里,(相关文章:https://www.cnblogs.com/lori/p/12559323.html)在这里就不在重复说了,今天主要说一下关于fluentd.config的配置,就是在k
阅读全文
摘要:对于springboot操作hbase来说,我们可以选择官方的依赖包hbase-client,但这个包的google类库很多时候会和你的项目里的google类库冲突,最后就是你的程序缺少类而无法启动,解决这个问题的方法很多,而最彻底的就是自己封装一个shade包,或者使用人家封装好的shade包,s
阅读全文
摘要:读和写是Hbase的两种常见的基本操作,这两种操作都会涉及到Hfile和Meta表,我们依次看看。 Hfile HFile是Hbase在HDFS中存储数据的格式,它有如下特性: 主标识是一个行健 key按照有序的方式进行存储 HFile仅仅分配给一个Region 行存储在Hfile上面,通过排好序的
阅读全文
摘要:@ConditionalOnMissingBean,它是修饰bean的一个注解,主要实现的是,当你的bean被注册之后,如果而注册相同类型的bean,就不会成功,它会保证你的bean只有一个,即你的实例只有一个,当你注册多个相同的bean时,会出现异常,以此来告诉开发人员。 代码演示 @Compon
阅读全文
摘要:键值对主要是面向对象语言里的字典,或者叫哈希表,它通过键(key)可以直接访问到值(value),所以它查找的时间复杂度是O(1),即一次查找即可找到目标;在.net里有Dictionary,而在java里有HashMap等结构来实现,而在NoSQL里也有redis为代表的键值存储数据库;而在js里
阅读全文
摘要:审记功能在Jpa框架里出现的,主要针对实体的几个字段进行自动化的赋值,让业务人员可以把关注点放在业务上,对于公用的,有规则的字段,由系统帮我们去处理。 原理 通过spring aop功能实现对es仓库接口方法的拦截,然后在方法处理之前,为实体的这些公用字段赋值即可,我们使用了jpa里的一些注解,如@
阅读全文
摘要:对某个类型中的方法进行拦截,然后加入固定的业务逻辑,这是AOP面向切面编程可以做的事,在springboot里实现aop的方法也有很多,spring-boot-starter-aop或者aspectjweaver都是可以实现的,不过我们在实现之前,先来看一下aop里的几个概念。 概念 切面(Aspe
阅读全文
摘要:之前写过shade解决mybatis包冲突的文章,主要讲了如何为一个第三方包去打一个shade包,然后它可以解决相同包的不同版本之间的冲突问题;而今天主要说一下在项目里如何引用这个包。 1 如果只是使用包里的资源,而不使用这个包的依赖包,需要这样引用即可 <dependency> <groupId>
阅读全文
浙公网安备 33010602011771号