摘要:
背景 原方法在Redis内存储条数过多时效率较低,尝试进行改良。修改模糊查询方式后有效提高查询效率。 改良步骤 原方法 原模糊查询方法采用ScanOptions匹配key的前缀,但并未设置游标步进值,导致其实际效率可能跟使用keys命令相同。 改进 改用lettuce api RedisAsynCo 阅读全文
摘要:
背景 项目中有些分支暂时不需要用到kafka的消费监听,但以后可能会用到。于是需要一个方法可以动态开关kafka相关功能。 解决方案 通过注解@ConditionalOnProperty或注解@ConditionalOnBean实现,推荐使用@ConditionalOnProperty。 @Cond 阅读全文
摘要:
背景 当一次拉取接收数据过多时,会出现消费过慢超过默认超时时间,导致消费积压,消费者心跳过期,离开消费组从而失去该消费组消费数据的情况。 解决方案 减少单次拉取消息条数,增加最大拉取间隔时间。 消费者配置中,减少单次拉取消息条数max.poll.records,增加获取消息后提交偏移量的最大时间ma 阅读全文
摘要:
背景 项目需求通过更改resources文件夹中的配置文件来动态更改配置,且对时间规格有要求,不能直接通过读文件来判断是否更改配置,所以需要监控该文件夹下文件的变化,有变化再读文件更改配置。 实现方案 通过FileAlterationObserver和FileAlterationMonitor建立文 阅读全文
摘要:
背景 项目需要动态更改topic,且不能将配置写在yml配置文件中,同时没有找到方法提取其他文件里的 topics 放入@KafkaListener注解中,因此不使用@KafkaListener注解,改为手动初始化消费者,开启消费者线程。 思路 在消费者线程里,每次循环都从配置源获取最新的topic 阅读全文
摘要:
#gerrit代码统计脚本 背景 自动创建git文件夹存放拉取项目及代码统计结果。 添加统计单一分支代码量功能。 可以只统计个人的单一/所有项目分支代码量。 实现 统计所有人单一/所有分支代码量 将开始时间、截止时间、被统计人gerrit名称从命令行作为参数输入,比如在Terminal中运行sudo 阅读全文
摘要:
背景 因项目需求要使用kafka实现消息队列,从零开始学习安装。 zookeeper安装 安装 从官网https://dlcdn.apache.org/zookeeper/上下载,这里选择3.7.0版本。 注意事项 zookeeper从3.5.5开始,带有bin名称的包才是编译后的二进制的包,而之前 阅读全文
摘要:
背景 每个人在每个分支中会有多次提交记录,去重只取一次名字。 uniq和sort -u两种去重方法区别 uniq会删除连续出现的重复记录,若没有连续出现,则不会删除。 sort -u会先排序再删除连续出现的重复记录,因此不会有遗漏。 举例: 对于文件test jason jason fffff ja 阅读全文
摘要:
format后参数含义 参数 含义 %H 提交对象(commit)的完整哈希字串 %h 提交对象的简短哈希字串 %T 树对象(tree)的完整哈希字串 %t 树对象的简短哈希字串 %P 父对象(parent)的完整哈希字串 %p 父对象的简短哈希字串 %an 作者(author)的名字 %ae 作者 阅读全文
摘要:
背景 pwd |awk -F '/' '{print "["$NF"]:\t"}' 各命令含义 pwd:获取当前目录 | :以管道传输到后面命令 awk:逐行读取文本,默认通过空格和tab键分隔,将分隔所得的各个字段保存到内建变量中,按模式或条件执行编辑命令 -F /:以 ’/’ 分开域 $NF 表 阅读全文