自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(209)
  • 收藏
  • 关注

原创 macOS 15.4.1 Chrome不能访问本地网络

在使用macOS 15系统的Mac Mini M4时,遇到了Chrome浏览器无法访问本地网络的问题,包括路由器和局域网内的其他设备。尽管Safari浏览器可以正常访问,但Chrome的问题持续存在。经过调查,发现这是macOS 15.2版本的一个系统bug。尝试了多种解决方法,包括重启和修改网络设置,但均未奏效。最终,通过关闭系统完整性保护(SIP),删除特定的网络配置文件,并在恢复模式下重新启用SIP,才暂时解决了问题。这一过程不仅繁琐,而且反映了macOS 15系统在更新迭代中存在的稳定性和兼容性问题

2025-05-10 10:27:19 629

原创 组装一台intel n95纯Linux Server服务器

时代变化很快,以前macmini2018是intel cpu,而且可以自己安装内存,现在已经arm cpu,内存已经是黄金内存了,还得益于炒ai概念,否则8G永流传,不过intel 12代性能提升还可以,所以干脆组装了专门的服务器,测试小主机满载也就23w左右,平时10w左右,还是x86的,在docker环境下很友好,毕竟很多镜像还是基于x86基础镜像做的,如果ARM自己编译也很麻烦。

2025-04-20 09:56:24 862

原创 nginx自编译重现gzip和chunked的现象

其实gzip并不是最近才有的,以前我们经常压缩html,节省前端资源的传输带宽,只不过最近发现一些老旧项目对chunked支持不友好,导致nginx 1K以上就chunked导致请求报错。然后发现SpringBoot默认就chunked😁。nginx编译中实际上网上很多内容是复制的,笔者自己实践发现有些参数实际上不应该加上,理解也是跟我们认知有一定的理解偏差,实践发现without 状态要为disable,表示默认已经支持了,不需要加参数, with的模块需要编译加上参数,状态为enable。

2025-04-15 22:02:14 697

原创 K8S下nodelocaldns crash问题导致域名请求响应缓慢

实际上这个问题并不是应用的问题,是平台搭建的时候就有问题,但是仅仅是nodelocaldns并不影响最终的结果,毕竟coredns还是正常的,所以仅仅是超时,对于业务研发人员,K8S里面的逻辑是不可见的,所以问题很难解决,最终需要应用分析,抓包和基础设施层共同配合才能解决问题。

2025-03-15 19:43:38 1131

原创 M4 Mac mini运行DeepSeek-R1模型

仅仅是分享体验感受,实际上体验本地的AI模型的门槛是很低的,一般的Intel 核显就行,也需要一定的显存,不过不是特别消耗,如果实在不足那么也可以降低模型的大小,当然蒸馏模型越小失真就越严重,物理定律是不能违背的。另外也可以配置一个UI界面,如果是生产环境就建议部署docker应用,自己本地体验实际上用免费的桌面软件就好了。

2025-03-01 13:31:13 2548

原创 MySQL数据库连接池泄露导致MySQL Server超时关闭连接

我们在写代码时,尽量还是使用框架封装的逻辑,比如连接池,比如Spring声明式事务,可以避免编程式事务在写代码时的逻辑漏洞,因为在没触发的时候很难出现,测试很多时候不充分。实际上一起写jdbc的时候还很少出现这个问题,因为那个时候会非常注意连接的回收,事务的提交逻辑,但是Spring自动管理后,这个就很少注意了,因为注解声明式事务太方便了,只有特殊时候才会自己管理事务。

2025-02-24 23:37:04 870

原创 kafka 3.5.0 raft协议安装

kafka从3.0.0开始推出了raft模式的元数据中心,实际上类似zk,kafka自己命名kraft。使用这种方式搭建kafka集群将不再需要zk,同理,kafka的集群的每个节点可以同时是broker和controller(以前zk充当),也可以是单独的broker,controller(负载不重,不建议单独controller,跟zk没区别),官方说明需要jdk11及以上,实测jdk8可以运行,但是生成建议严格按照官方标定的jdk执行,jdk是向下兼容的,但是不确定是否会涉及新api或新特性的使用。

2025-02-08 17:07:11 1026

原创 flowable expression和json字符串中的双引号内容

通过示例可以看到字符串包括json需要对字符串的"内容进行转义,包括代码编写,class文件,但是jvm内存是不认"的转义符的,存储的就是真实的值,不存在转义的说法,而类似groovy脚本这样的类class语言实际上也是如此,毕竟操作在内存操作,class虚拟机不会有任何不同,毕竟class不一定能反编译Java,但是Java一定是编译为class,所以groovy并不会影响值操作的"结果。

2025-01-31 17:09:52 948

原创 springboot kafka在kafka server AUTH变动后consumer自动销毁

kafka在发送者和消费者是区分开的,发送者如果连接kafka broker失败后可以一直重试直到成功,但是消费者确有各种各样的逻辑,可以精准控制,比如消费者重启的配置可以控制消费者在停止时重启,如果仅仅是授权失败,而且不需要反复重启(消耗资源),那么可以通过。

2024-12-01 18:38:14 1655 1

原创 mapstruct和lombok同时使用的问题解析

mapstruct实际使用过程一言难尽啊,本身与idea有兼容性问题,不过新版本确实在一定程度上规避了问题,不过与lombok一起使用必须依赖lombok-mapstruct-binding才行,否则因为与lombok的顺序问题,运行过程并不会报错,结果很难保证。建议还是自己写getter和setter吧,性能没区别。

2024-11-13 23:11:34 1938

原创 Tomcat servlet response关于中文乱码的经验

实际上这个问题很简单,而且也很容易解决,只不过不同的软件有不同的标准,所以即使是utf-8并不能解决问题,而是需要根据实际的情况,比如http,根据mime-type明显比指定utf-8更能表达具体的意义,毕竟mime是具体的标准。

2024-10-30 22:33:12 1030 1

原创 springboot kafka多数据源,通过配置动态加载发送者和消费者

如果消费者或者发送者逻辑需要写在当前kafka网关应用,那么只能通过自定义扫描方式支持配置不同,所有配置的生成者和消费者必须代码实现逻辑,通过配置加载方式,自定义扫描注入bean即可。以消费者为例,生产者不涉及注解发送方式相对简单。});写了一个初始化的bean,用于通过配置加载bean。消费者是注解方式扫描,bean需要根据配置加载,不能写在代码里面这里仅仅是注册bean,并不会被beanpostprocessor处理关于第1点。

2024-10-07 15:55:46 1584 2

原创 hutool 解压缩读取源文件和压缩文件大小失败导致报错

最近处理老项目中的问题,升级安全jar,发现hutool的jar在解压缩的时候报错了,实际上是很简单的防御zip炸弹攻击的手段,但是却因为hutool的工具包取文件大小有bug,造成了解压缩不能用,报错:invalid sizes: compressed -1, uncompressed -1,理论上使用这个API的所有方法都有问题。影响范围hutool 5.8.11~5.8.16,5.8.17修复。demo准备构建一个demo吧:JDK8+hutool 5.8.16没考虑流关闭问题,实际生

2024-09-21 14:23:11 1932

原创 关于数字存储和byte[]数组的一些心得

实际上这次是一些碎碎念,核心还是计算机的原理,计算机因为电气性能只设计有0、1,所以是2进制,存算都是2进制。而且计算机在设计之初只设计了加法,没设计或者设计减法有问题,导致数据相减运算都是加运算,所以需要存储和运算负数,那么就需要定义负数的存储和相加逻辑,就设计了反码和补码来存储负数。另外一个字节存储能力有限,往往需要很多字节来存储一个内容,那么符号位的定义在总体结构很明晰,但是对于字节数组的单个字节就会存在歧义,造成数据可读性很迷惑,因为符号位的特殊意义。

2024-08-31 23:07:13 1481

原创 雪花算法的一些问题解析

雪花算法实际上设计极为巧妙,通过时间戳,机器码,序列号(自增)来达到某个时间段(默认1毫秒)在某个并发下(并发超出自增ID就会重复或者阻塞等问题,不过我们一般达不到,且可以通过负载均衡增加资源规避),不重复ID。实现了加资源的方式来达到分布式ID不重复,且自增的特性。

2024-07-29 18:05:59 906

原创 Tomcat get请求传数组集合参数

最近做项目,需要通过GET传参,来实现查询的能力,本来是RPC调用,直接参数序列化即可。但是服务最近修改为HTTP,本来Spring Cloud的feign也可以直接传参数,但是当使用Nginx访问时参数到底传啥呢,笔者传入?list=['xxx']直接就报错了,错误类型。

2024-06-24 22:54:32 1243

原创 Spring boot 注入成员变量HttpServletRequest的原理

最近做项目,springboot项目,本来我们在controller的requestmapping取参数值或者返回写时,使用方法参数,但是发现老项目直接注入了成员变量,Spring本身是单例的,如果是成员变量注入,那么也是单例的,怎么实现不同的请求读取不同的参数呢,如果实现线程安全呢,笔者立马想到了ThreadLocal,但是如果要说就是这个原理,那么必须源码证明。

2024-05-21 22:25:12 1174 1

原创 Postman历史版本安装与runner测试

实际上就是笔者本地做demo,postman使用了最新版本,本身也没问题,不过postman不支持不登录做runner测试了,很多功能必须登录账号才能使用,否则只能使用http工具发送的能力,而postman本身就是一个简单工具本地使用,为了这些功能不值得,所以降级,可以使用了。postman截止现在最新版本(mac)如果点击lightweihgt,可以发送各种测试请求,但是只要点击保存,就要登录云账号,且没有runner的功能可使用。

2024-05-12 16:12:29 2466 1

原创 @Configuration自身循环依赖及解决办法

实际上循环依赖不仅是Spring Bean的循环依赖,还有接口调用的循环依赖,不过Springboot在2.6.0版本已经默认不允许循环依赖,就是不解决这个问题了,如果spring.main.allow-circular-references配置true,那么还是可以跟以前一样,不过不确定什么时候就移除这个配置。另外自身循环依赖比较特别,主要是Springboot下动态代理的结果,本身方法的引用是不会出现循环依赖的。

2024-05-04 16:54:42 1614

原创 M2 Mac mini跑Llama3

在4-19左右,Meta 宣布正式推出下一代开源大语言模型Llama 3;共包括 80 亿和 700 亿参数两种版本,号称 “是 Llama 2 的重大飞跃”,并为这些规模的 LLM 确立了新的标准。实际上笔者早就体验过,只不过自己电脑没什么显卡(核显),所以一直没跑llama,但是最近听说m2芯片可以运行,就体验了一下。看图表8B的数据可以在本地运行,70B就不用想了。试了一下真的可行。

2024-04-29 22:04:53 3405

原创 Chrome 侧边栏开发示例

最近做项目,需要开发浏览器扩展,但是考虑页面布局兼容性问题,使用了Chrome114开始的侧边栏,浏览器自带的能力毕竟不会出现兼容性问题,不过Chrome123开始,侧边栏居然又可以选择固定右侧扩展栏了,交互变化很大。

2024-04-21 21:33:30 6891 5

原创 Maven插件打fatjar的一些技巧

最近做项目,Java实际上一般情况也不用fatjar,毕竟CICD都是流水线构建,不过在预研的过程中,使用fatjar可以内置manifest的main类直接启动,就很方便,尤其是在服务器运行环境。实际上golang还是很方便的,可以交叉编译二进制可执行文件,不过在交叉编译跨语言的能力的时候经常很难弄环境。实际上工作中大部分Java项目都是通过这种jar方式来来执行的,当然也可以封装java class -cp xxx的方式执行,不过文件太分散,不便管理。

2024-04-07 18:49:12 2329

原创 VLC抓取m3u8视频

最近想看一些网络视频,但是很多时候网页上是m3u8推流的,如果在线看,速度又慢,所以就想下载下来,就想到了VLC的推流,转换能力,查阅资料,加上实践,总结心得。笔者在查资料发现有网站已经详细的说明了操作流程,可以直接去查看,本质上还是ffmpeg的应用通过这种方式就可以看m3u8的视频,而且网络卡顿时,可以下载视频文件,也可以直接用视频播放器在线看。

2024-03-13 22:29:32 3830

原创 ubuntu 24.04LTS的一些使用心得

笔者一直在折腾ubuntu作为开发的主力系统,尤其是最近微信和各种软件陆续支持Debian系列,很多软件都可以用了,当然开源的软件大部分是跨平台的,尤其是idea系列。ubuntu上的软件实际上已经很完善了,唯一一点是界面不咋的,还有安装太痛苦了,要是都像mac一样,那么使用会大大简化,ubuntu还有双标题栏的问题说实在的,很难看,占地方,而且在卸载snap后,dock栏还有磁盘的图标这个暂时还没解决。

2024-02-25 17:06:40 7665 2

原创 sonar-java 手写一个规则-单元测试分析

最近做项目,定制sonar规则,提高Java代码质量,在编写的sonar规则,做验证时,使用单元测试有一些简单的心得感悟,分享出来。sonar的自定义规则很简单,一般而言有2种模式可以使用:1. 自定义扫描代码逻辑,并对分类的Tree的结构处理2. 使用已扫描的分类,对分好类的Tree进行分析。

2024-02-25 15:09:54 2308

原创 sonar-java 自定义规则

最近在搞代码质量方面的项目,主要是针对Java语言,其他语言实际上也可以执行检查,核心原理是一样的,都是静态代码扫描,如果需要进行动态代码运行验证则可以通过单元测试的方式。以其中一个示例,实现自定义Java sonar规则。实际上这个很简单,如果需要考虑,那么需要考虑扫描算法怎么写,性能是否OK,毕竟一般执行扫描都是在代码编译打包的过程,本地很少单独执行扫描。

2024-02-18 17:58:58 2900

原创 mybatis plus相同Id与xml配置错误时,mybatis plus解决逻辑

mybatis plus这个是直接丢弃相同Id的statement,安装先后顺序,会造成执行过程的误解,不过有日志可以查看,而且mybatis原生的starter是有校验的,直接报错了。mybatis的xml如果写错,那么启动居然不报错,执行任意statement前需要执行未完成的statement,来达到快速失败的情况,这种情况对健康检查提出了新挑战,否则可能出现启动OK,但是mybatis失败的情况。

2024-01-09 22:46:08 1177

原创 Spring多个条件注解不同但BeanId相同的冲突

这个问题实际上出现不是很频繁,但是如果不经意就会出现我们不可预知的问题,尤其是初始化的情况,不同条件初始化绝对不一样,出现这种问题,我们很难知道根源,因为异常被吞了,启动也OK。当然解决问题是不使用id相同的Bean创建方式,因为如果异常,只要其中一个Bean创建成功即可成功,没异常我们发现不了问题;如果没有异常,相同的Bean id会被后创建的Bean替代,但是在相同id的时候是都会尝试创建,@ConditionOnXxx就不会执行,这个会跟我们需要的情况相违背。

2023-12-03 22:08:28 1524

原创 logback异步日志打印阻塞工作线程

实际上这个问题是使用问题,非常简单,不过越是简单的使用,却可能出现致命问题,一般公司都会统一脚手架或者统一规范的方式来实现标准的日志配置文件,防止错误配置导致业务问题,不知道未来Java虚拟线程大规模使用会不会缓解日志打印阻塞工作线程的问题,毕竟调度更优,不过如果线程池满载,虚拟线程也是无能为力。还是需要在丢日志和存储消费日志的能力作取舍。

2023-11-12 16:59:23 3460

原创 macOS CURL简单使用

最近做项目,需要服务器实现网络是否通畅,比如通过健康检查接口,但是只能linux服务器测试,很可能还需要测试h2,所以想到了curl,整理一版简单用法。通过上面的分析,实际上curl一个命令就可以干很多命令的事情,功能非常强大。只是有时候我们形成固定习惯了,但是在有些命令不能安装,或者没机会安装的时候,curl可以用来执行各种命令,非常方便,而且基本上都操作系统内置了,尤其是linux服务器领域,基本上都可以使用这个程序。

2023-10-24 22:37:54 972

原创 macOS telnet替代方式

经过使用Linux,常常用Linux的telnet查看端口畅通,是否有防火墙,但是在mac上已经没有这个命令了,那么怎么使用这个命令或者有没有其他替代呢,win和linux是否可以使用相同的替代。macOS可以原生用nc命令替代,当然也可以安装telnet: brew install telnet(python3)nc经过测试macOS特有,可以用来做TCP和UDP的连接和监听,实际上linux和win也可以通过安装nc的方式使用nc,不过Ubuntu默认源没有发现安装包。

2023-10-22 09:48:18 10557

原创 国密https访问

现在的SSL的加密算法实际上主要是国际算法,包括JDK,Go等语言也仅支持国际算法加密(毕竟是国外开源项目),hash。随着国密算法的普及,比如openssl就支持国密了,还要新版本的Linux内核也开始支持,以openssl为例:那么如果需要国密证书,或者访问国密https的时候就需要特定的sslsocket的握手算法传输层密码协议(TLCP)GB/T 38636-2020:传输层密码协议该协议与TLS协议的最重大区别,就是要求通信端提供两个证书:认证证书和加密证书。

2023-10-21 22:04:32 5872 1

原创 Java SSL/TLS证书认证逻辑

实际上证书的认证就是链式认证,加入根证书链,因为根证书是信任的,CA机构是认可的,那么CA颁发的根证书是信任的,经常报道的Chrome移除xxx机构颁发的根证书,表示这些证书链下的证书不信任了,毕竟公钥和私钥任何证书都能生成,证书链也可以仿造。

2023-10-21 14:49:06 2832

原创 双活架构设计-连接集群

双活的设计是很有必要的,而且很传统的解决方案,融合了单元化思想,存算分离思想,实际上是矛盾又是统一的整体,单元化是有状态的,存算分离又是让运算无状态。那么设计存储一致性就很重要,保证一致性和最佳的性能,又会大量的使用缓存的思想。

2023-10-06 18:48:22 874

原创 Spring Cloud zuul扩展能力设计和配置动态生效

实际上Spring Cloud已经废弃zuul了,改用gateway,但是webflux的技术并没在实际项目大规模普及,还有很多servlet NIO的应用,所以zuul还是很有必要改造的,实测zuul调优(调节转发的连接池)跟gateway性能上差不多,所以研究了下zuul,发现设计理念很不错。

2023-10-06 12:23:48 264

原创 Spring Cloud zuul与CloseableHttpClient连接池,TLS证书认证

实际上,对于技术而言,无论使用任何框架,设计思路都是有异曲同工的地方,对于HTTP代理,无论是zuul(servlet)还是gateway(netty),或者NGINX;本质处理逻辑还是IO的区别,HTTPS协议对于所有的逻辑都是一样的,关键在于定制化吧,zuul对于简单应用还是很不错的,方便定制化,也可以使用gateway,相对要复杂一点。

2023-09-08 19:58:44 515 1

原创 SLF4J日志绑定原理分析

最近做项目,实际上也知道日志冲突的事,不过涉及MDC NDC数据传递,当日志框架冲突后,MDC和NDC就失效了,这里就涉及slf4j-api的MDC的绑定的过程,顺便分析了日志冲突实际生效的原因,理解SLF4J的设计思想。SLF4JSimple Logging Facade for Java(SLF 4J)作为一个简单的facade或抽象,用于各种日志框架(例如logback、log4j2),从而允许最终用户在部署时插入所需的日志记录框架。简称门面模式,就是接口外加绑定实现。

2023-08-12 16:37:13 632

原创 检查网站是HTTP那种协议与获取域名的ipv6地址

最近在做HTTPS的应用,可能需要使用ipv6的地址做SLB,但是怎么检查配置正确,总不能每次都看日志吧,实际上客户端也很容易查看,总结工作经验。实际上就是些经验总结,没什么技术难度,只不过网上很多时候没说清楚,实际上很多情况是有前提条件的,比如windows,比如js执行的函数等。

2023-08-05 20:41:47 2897 1

原创 M1/M2 通过VM Fusion安装Win11 ARM,解决联网和文件传输

最近新入了Macmini M2,但是以前的老电脑的虚拟机运行不起来了。😅,实际上用过K8S的时候,会发现部分镜像也跑不起来,X86的架构和ARM实际上还是有很多隐形兼容问题。所以只能重新安装ARM Win11,幸好微软开放了win11 ARM正式版,可以虚拟机安装,实机是不行的。笔者安装了使用,日常转移还是可以的,ARM运行X86软件。

2023-07-29 17:18:26 15479 6

原创 Java文件的相对路径规则

最近做项目,又涉及到Linux Java文件的相对路径,但是相对路径在不同的服务器或者docker上居然不一样,这个就很难受,只能用绝对路径解决,因为绝对路径是固定的路径,但是相对路径为什么会在不同的服务器不一样呢?

2023-07-24 16:36:04 685

lldb工具包。macos x64

lldb工具包。macos x64

2022-10-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除