- 博客(48)
- 资源 (3)
- 收藏
- 关注
原创 docker 安装fastdfs
代码里面有fastdfs用来当做附件上传,但是我问了一圈没有找到有项目在用, 公司部署出去的项目什么情况也比较混乱(或者我权限不够没法查看)。反正是公司没有fastdfs,需要搭建一套。开搞。
2025-12-18 17:01:21
409
原创 MINIO升级版本至:RELEASE.2024-04-06T05-26-02Z
建议先阅读这篇博客,本文中只描述了关键信息,整体流程可以看下面文章。
2025-12-16 15:51:39
1002
原创 MongoDB: 升级版本至:5.0.28
限制因素: 服务器为centos7, sdk=1.8,springboot=2.7.18 ,spring-data-mongodb=3.4.18, mongodb-driver-core=4.6.1。下载地址:https://www.mongodb.com/try/download/community。# 初始化脚本执行 # copy数据库初始化语句(如果有建库创建用户等语句)# 风险点: 新版本的快照,老版本加载失败。# 解压老版本数据(如果原始文件夹未删除可忽略)# 验证服务是否启动成功。
2025-12-16 14:06:49
993
原创 redis升级至7.0.15版本
针对最新版本:7.2.4 使用的RESP3 协议,存在解析失败风险,以及ACL 认证异常。-- 返回字样: Done loading RDB, keys loaded: xxx, keys expired: xxxx.-- 如果存在appendonly yes 代表通过AOF加载数据,需要先rdb重启,再AOF重启(见备注),-- 如果存在appendonly no 或缺省,代表rdb加载数据,无需进行本小结的后续步骤。#风险点:新版本的快照,老版本加载失败。-- 关闭AOF启动服务。
2025-12-16 11:41:53
810
原创 中间件升级
path路径的绑定 systemd 的运行文件的绑定 项目中配置文件的引用等。3. 应用程序是否兼容,比如es需要升级新的java的sdk,新的java的sdk需要springboot版本和当前不一致。本次中间件升级,为了保证数据完整性,会进行数据备份,请提前计算好磁盘容量,防止备份,新服务启动导致磁盘容量不足。本次中间件升级,不要和业务升级一起执行, 防止出现问题难以定位中间件升级导致的问题还是业务代码的问题。风险点:历史版本不兼容新版本的数据,升级期间产生的数据可能会丢失,升级动作需在访问低峰期进行。
2025-12-16 09:49:42
588
原创 AWS 对接
项目中使用了oss存储服务, 各大厂商有自己的sdk, 并且sdk引用了其它的sdk,安全扫描时发现包需要升级,升级完了一团浆糊,大家既然都遵循AWS3的行业协议我为啥不使用AWS3的行业协议来对接呢?
2025-11-27 16:56:47
273
原创 线上访问慢,trace耗时不高
线上通过也访问是比较慢, 通过arthas的trace命令检测servcie的耗时比较短。差值月500ms。中间差值在哪里?
2025-11-19 11:01:25
200
原创 gateway配置自定义转发
项目上想要在线查看日志,但是又不想搭建elk服务组件。咋解决呢?所有的项目都引入一个日志模块,能拉取当前项目下的日志文件目录和提供在线查看和下载的功能。对外暴露出来的服务只有一个,那么就需要根据标识信息进行转发了,我们又两个路由转发负载均衡的组件,一个是gateway,一个是nginx。本文重点讲一下gateway。核心思路就是header中携带机器标识,当负载均衡进行转发时,如果能匹配到对应的header就转发到当前服务器。
2025-10-31 23:35:37
722
原创 租户日志打印(含全链路)
不同租户在请求的header里面会传递不同的租户id. 现在是自己写的AbstractOutputStreamAppender实现,将不同租户的日志打印到不同的目录下。一个涉密公司有有了一个新的需求,不能取服务器查看日志,将日志拉去到es中查看。详见:但是拉去过来的日志,租户标识,没有在日志中体现。实际体现在log.file.path字段。想要在具体的日志内容中体现租户标识。
2025-10-28 14:37:25
979
原创 ELK业务日志拉取到网页端展示
涉密项目,进出机房要登记,严禁挂在日志磁盘,我们项目的日志打印到了本地磁盘,项目出现异常,日志查验困难。需要将本地磁盘打印日志传输到es,通过kibana或grafana展示日志。
2025-10-21 15:48:23
1099
原创 单个服务器部署多个rabbitmq
真实部署环境是机房环境,不能携带手机,所以需要进行提前演练,我使用的docker镜像的方式进行构建。docker的环境搭建详见:两台服务器搭建三个节点-优快云博客不明原因导致的使用配置文件启动失败。vim /usr/lib/systemd/system/rabbitmq-server-3.service
2025-10-13 20:46:36
689
原创 两台服务器搭建三个节点
我们需要搭建redis/nacos/es/rabbitmq/mongodb等中间件服务。提出计划是要三台机器进行搭建。众所周知,为了防止脑裂,大部分中间件最少需要三个节点。但是甲方只给出了两台机器。两台机器构建三个节点,势必会让一个服务来构建两个节点。我们的安装程序是sudo rpm -ivh xxx-aarch64.rpm 直接进行安装的,不是解压安装包的方式,需要修改配置文件让支持两个节点运行。备用方案:单节点部署。
2025-10-10 18:58:18
315
原创 duckdb 使用报错:`GLIBC_2.23‘ not found
报错: Usage: scripts/create_local_extension_repo.py <duckdb_version> <duckdb_platform_out> <path/to/duckdb/build> <path/to/local_repo> <postfix>首先下载源码(github根据自己的需求下载):下载源码,不是duckdb_java. 我使用duckdb_java构建一直失败。终于构建出来一个能再glibc可以使用的duckdb_jdbc.jar文件,见附件。
2025-09-19 17:56:46
683
原创 记一次神通数据库的链接不释放问题
如何定位单个项目的链接不释放, 查看代码,检索关键词connection。发现没有手写的sql,唯一一个手写sql还是try包裹的自动释放,不存在链接不释放问题。单个项目的pod都不行,其他项目的pod正常,排除框架的问题。大部分线程数据sniped激活状态数据比较少, 排除程序死锁的问题。SNIPED:空闲待清理(2.2k+,当天创建=2.2k+)# 设置连接被遗弃的超时时间(单位:秒),根据业务场景调整。# 在回收被遗弃的连接时输出错误日志(记录堆栈跟踪)首先定位是否存在程序死锁的问题。
2025-09-15 20:08:23
279
原创 java同名同路径覆盖的应用
copy出来spring的bean工厂类,然后放到自己的项目,同名同路径覆盖,打印一下日志,完美解决。所以除了放到启动项目里面之外,其他的位置真的没法保证你的代码被优先加载,这类危险操作还是不要做的好。网上搜了一下maven的顺序,tomcat的顺序,各种容器的加载顺序都没有一个一致的规范。copy出来异常的类,然后放到自己的项目,同名同路径覆盖,修复一下问题。现在遇到了一个问题,我依赖一个三方的包,我要对三方的包其中的某些类做增强。项目启动报错,依赖的组件包中的某个类报错,想绕过去怎么办?
2025-08-23 11:43:53
219
原创 TDengine 初体验
超级表: 用来管理一组表。比如一个类型设备,该类型设置超级表,这个类型下的每个设备一张自己的表,超级表需要手动创建,子表无需手动创建。虚拟表: 类似mysql的视图,不真实存储数据,只进行数据的聚合展示。表: 一个采集点一张表。(相互独立,读写性能提升)是一个时序数据库,根据时间段存入每个具体业务侧对应的数据信息。官网:https://docs.taosdata.com/数据采集点: 数据来源的唯一标识。采集量: 随时间变动的数据信息。标签: 静态的附加信息。
2025-08-12 10:21:19
306
原创 一文看懂Spring的@Async
想要异步,你以为使用了@Async方法,就能万事大吉了嘛?错的离谱,里面很多坑。带你一起去看看。异步嘛!肯定是要搞一个池化的概念来进行数据处理才好。
2025-07-04 22:12:37
528
原创 记一次nacos搭建和使用
项目中使用nacos报错了,线上环境是一个2.0.3版本的,我们的测试环境没有对应版本,需要自己本地搭建一个nacos用来进行校验。
2025-06-11 16:07:16
901
原创 logstash拉取redisStream的流数据,并存储ES
为了保证后续支持kafka,MQ等消息组件, 我肯定期望是用现有框架,比如logstash来进行支持的。使用deepseek、豆包、文心一言等多种大数据检索,都告诉我支持stream. 结果我的本地项目愣是没有跑起来, 不确定是否是因为我用window跑的原因, 下次用linux跑以下试试,再来更新结论。先说结论, window验证logstash截至2025-06-06 是没有原生支持的。没有stream的支持,再下载jdk1.8版本支持的最高版本,logstash-7.9.3报错。
2025-06-06 17:52:53
481
原创 项目日志怎么存储
nodeName:使用容器部署服务,每个node都有一个自己的名称,不会重复,我们可以通过这个nodeName定位数据来源哪个具体的服务。${指定前缀}/${nodeName}/${yyyy-MM}/log-${yyyy-MM-dd-HH}.tar.gz。可以通过配置规则,书写注解等方式,让组件库监听,整合业务处理的关键消息到ES.稳定后,当出现新的异常,程序能及时推送给开发者,方便后续版本迭代中及时修复。线上很多服务,每个服务很多节点,我只有关键词,查询磁盘业务日志会比较困难。
2025-05-30 15:58:08
610
原创 记一次缓存填坑省市区级联获取的操作
只能在不合理的基础上进行优化。同时这个模型像是一个倒置的漏斗, 无论nginx接受了多少请求,相同的请求地址,一天最多放行了1个,撑住了绝大部分的请求流量,nginx每天放行的一个,也被本地缓存命中,减少了redis的查询。数据没有产生变更,用户持有的是最新的版本号,大部分场景下返回的都是空对象,减少了海量的io和网络资源的消耗。缓存的构建:当查询redis无数据时,双重检查锁防击穿,查询数据库,进行redis缓存的构建。缓存的构建:当前缓存无数据,根据redis查询的结果,进行本地缓存的重建。
2025-05-16 12:59:19
811
原创 fullGc那些年我们踩过的坑
日订单60万+,作为一个用户端后台的开发,数据量比传统行业大,要求300TPS的处理,平时对fullGc有过比较多的接触。每次都上当,当当不一样,踩过了很多坑,今天来分享一下。
2025-05-16 11:32:31
692
原创 记一次bug排查(.exe链接mysql失败)-每天学习一点点
哎!从来没有接手过的项目, .exe项目, 链接服务器失败 报错:"unable to connect to any of the specified mySQL hosts"虽然不懂c++的代码, 也没法反编译.exe项目, 还是像挑战尝试一下解决这个问题.明面看就是链接mysql失败. 但是mysql对应的服务器地址是啥呢?
2025-05-15 18:47:37
504
原创 不同的角度看缓存穿透/击穿/雪崩问题。强推大家看一下
缓存穿透:缓存和数据库都没有。这玩意一般都发生在被黑客攻击。(强调没数据)缓存击穿:缓存失效了,大并发请求到达服务器,同时进行一组相同数据的查询。(强调高并发)缓存雪崩:大部分数据缓存失效了,请求到达服务器,同时进行不同数据的查询。(强调不同数据的失效)咋解决呢?1. 缓存穿透:规则判定,布隆过滤器,缓存写空值。2. 缓存击穿:双重检查锁,让相同数据查询的大并发请求阻塞,只放行单个请求。3. 缓存雪崩:设置过期时间加随机数,不要批量一起过期,甚至热点数据不过期。听一遍看一遍眼熟吧!
2025-05-09 12:38:33
368
原创 关于hbaseRegion和hbaseRowKey的一些处理
hbase负载均衡不管用了,单个服务器资源试用过多,其他空闲。是不是你的rowKey创建的不对,一篇文章教你分析解决问题。
2025-04-25 19:01:33
1288
原创 写个单例遇到的破事(记一次DCL)
构建方法先判空,大概率直接返回了,不需要加锁浪费性能,初次构建时并发,大家一起抢锁,抢锁成功执行赋值,释放锁之后,其它抢锁的人执行,判断不为空,直接返回。两个线程并行执行, 一个线程进入了第一个判空,加锁,第二个判空,执行构建,构建方法执行一半,先给sun赋值了,此时sun不为空,但是因为没有执行init方法,所以数据是不对的。然而,事实证明我还是太年轻了,我竟然不知道cpu有指令重排,在我第二次判空创建对象的时候,指令重排序了,单个线程保证最终一致性,先给对象建立了关联,后进行初始化的赋值。
2025-04-18 10:35:08
361
原创 记一次DeepSeek本地化部署(未完待续)
现在公司的知识库有点多,还有点杂乱, 客服有事老找我, 我不想理他们, 但是有些说过n多遍的问题还要问问问, 现在有QA平台,可以关键词提问,数据库查询,事项处理。但是我们是可以做的更好,所以想着升级一下。
2025-03-25 12:01:07
442
原创 小学一年级数学题创建(凑十,破十,平十,借十)
孩子画图形有点慢, 所以把图形给他画出来,通过随机数的方式生成随机的计算公式,让孩子锻炼计算能力。孩子现在一年级了,在学习数学怎么计算, 老师也教了很多计算方法。凑十法核心口诀:看大数,分小数。破十法核心口诀:看大数,分出10,一减一加算得数。借十法核心口诀:看大数,分出10,减小数,加剩数。平十法核心口诀:分小数,连续相减算得数。
2024-11-22 09:24:07
1488
原创 1884. 鸡蛋掉落-两枚鸡蛋(LeetCode每日一题)
给你的鸡蛋,和一栋从第1层到第n层共有n层楼的建筑。已知存在楼层f,满足,任何从f的楼层落下的鸡蛋都,从 f的楼层落下的鸡蛋都。每次操作,你可以取一枚的鸡蛋并把它从任一楼层x扔下(满足如果鸡蛋碎了,你就不能再次使用它。如果某枚鸡蛋扔下后没有摔碎,则可以在之后的操作中这枚鸡蛋。请你计算并返回要确定f的是多少?n = 22我们可以将第一枚鸡蛋从 1 楼扔下,然后将第二枚从 2 楼扔下。如果第一枚鸡蛋碎了,可知 f = 0;如果第二枚鸡蛋碎了,但第一枚没碎,可知 f = 1;
2024-10-15 10:25:52
525
原创 134. 加油站(LeetCode每日一题)
在一条环路上有n个加油站,其中第i个加油站有汽油gas[i]升。你有一辆油箱容量无限的的汽车,从第i个加油站开往第i+1个加油站需要消耗汽油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组gas和cost,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回-1。如果存在解,则它是的。3从 3 号加油站(索引为 3 处)出发,可获得 4 升汽油。此时油箱有 = 0 + 4 = 4 升汽油。
2024-10-09 10:46:45
1585
原创 3171. 找到按位或最接近 K 的子数组(LeetCode每日一题)
给你一个数组nums和一个整数k。你需要找到nums的一个 子数组(是数组中连续的元素序列。) ,满足子数组中所有元素按位或运算OR的值与k的尽可能。换言之,你需要选择一个子数组nums[l..r]满足最小。请你返回的绝对差值。是数组中连续的元素序列。0子数组nums[0..1]的按位OR运算值为 3 ,得到最小差值。1子数组nums[1..1]的按位OR运算值为 3 ,得到最小差值。9只有一个子数组,按位OR运算值为 1 ,得到最小差值。
2024-10-09 09:59:59
430
duckdb-jdbc-1.0.0.jar
2025-09-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1