avatar
文章
92
标签
122
分类
5

首页
合集
  • 归档
  • 标签
  • 分类
专栏
  • 开发笔记
  • 日常记录
友链
关于
首页
合集
  • 归档
  • 标签
  • 分类
专栏
  • 开发笔记
  • 日常记录
友链
关于

CYK's Blog

hexo+butterfly目录显示问题
发表于2025-10-28|开发笔记|hexo
Hexo+butterfly博客网站文章目录编号异常写完文章后在Typora中查看大纲目录正常,但是推送后在网页看到数字编号出现重复问题,如下图 其实就是butterfly这些主题框架都内置了一个目录编号,在butterfly的_config.yml文件中找到toc中的number属性并修改为false即可。 好像next也有这样子的情况,应该也是修改配置文件中的这个属性就可以。 原属性值为true,会自动为各级标题添加编号并在目录显示,如果没有写标号的习惯还想要也可以设置为true
cursor
发表于2025-10-25|开发笔记|cursor•ai
Cursor一、下载安装下载和安装好像是很傻瓜的,在官网下载了直接安装包点点就ok了,然后在官网注册一下账号并且登录到应用就可以了 官网地址:https://cursor.com/cn 二、配置看起来就是类似vscode的应用,甚至还有一键从vscode导入设置的选项,但是本地电脑没咋用vscode写前端所以没啥可以迁移的 像vscode一样在插件市场安装了一个中文插件将软件汉化,名字是Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code 然后有一个是要配置一下java的开发环境 设置我的JAVA_HOME和MAVEN_HOME,在setting.json中添加了如下内容吗,然后好像是重启就可以辽 { "java.home": "F:/java/jdk/jdk-11.0.23", "java.configuration.maven.userSettings": "F:/maven/apache-maven-3.9.6/ ...
Linux持续写入的日志如何清理
发表于2025-09-19|开发笔记|Linux
Linux持续写入的日志如何清理有时候一个日志文件一直在写入,内容越堆越多,把磁盘占得满满的。想清理的话,直接 rm 删掉可不行——文件一删,正在写日志的应用找不到这个文件,就会报错。 那么可以通过以下方式清空文件内容: > application.log或者cat /dev/null > file_name或者echo "">file_name
RAG是什么
发表于2025-08-11|开发笔记|RAG•大模型
RAG是什么RAG 的全称是:Retrieval-Augmented Generation,翻译成中文是:检索增强生成。 说人话就是——让大语言模型(比如 ChatGPT)在生成答案之前,先去找资料(检索)来增强它的知识,再用这些资料来生成更准确的回答。 如何构建一个RAG 前置准备 首先我们需要做数据准备,把你要用的资料收集好,比如:公司内部文档(PDF、Word、Markdown)、FAQ 列表、产品手册等,然后清洗这些数据,比如 去掉无关信息、切分成合理的小段。 然后把每一小段文本用 Embedding 模型转成向量,把这些向量存到向量数据库里,比如 FAISS、Milvus 等。 检索查询 当用户提问时,先用相同的 Embedding 模型把问题也转成向量。然后在向量数据库里用向量相似度搜索,找出最相关的几段资料(比如 Top 5)。这些找到 的内容就是上下文增强材料。 生成回答 紧接着,就可以把用户的问题 + 检索到的资料一起,作为 Prompt 发给大语言模型(LLM)。 这样可以保证模型只在资料范围内生成答案,降低幻觉。
RocketMQ如何保证消息不丢失
发表于2025-07-02|开发笔记|MQ•RocketMQ
RocketMQ的消息想要确保不丢失,需要生产者、消费者以及Broker的共同努力,缺一不可。 首先在生产者端,消息的发送分为同步、异步两种和单向发送(单向发送不保证成功,不建议使用),在同步发送消息的情况下,消息的发送会同步阻塞等待 Broker 返回结果,在 Broker 确认收到消息之后,生产者才会拿到 SendResult。如果这个过程中发生异常,那么就说明消息发送可能失败了,就需要生产者进行重新发送消息。 try { SendResult sendResult = producer.send(msg); // 同步发送消息,只要不抛异常就是成功。 if (sendResult != null) { //重试逻辑 }}catch (Exception e) { //重试逻辑} 异步发送的时候,会有成功和失败的回调,这还是需要在失败回调中处理重试确保成功 // 异步发送消息, 发送结果通过callback返回给客户端。producer.sendAsync(msg, new S ...
RocketMQ如果丢消息了,可能的原因是什么
发表于2025-07-02|开发笔记|MQ•RocketMQ
发送端用了单向发送RocketMQ 提供了一种发送方只负责发送消息,不等待服务端返回响应且没有回调函数触发,即只发送请求不等待应答的发送方式,叫做单向发送。 producer.sendOneway(msg); 用了这种发送方式,是非常有可能发送不成功,导致消息丢失 未处理发送失败的情况 如果使用了同步发送或者异步发送,但是没有处理好异常的情况,没有进行合理的重试,那么也会导致消息丢失 同步 try { SendResult sendResult = producer.send(msg); // 同步发送消息,只要不抛异常就是成功。 if (sendResult != null) { //忽略失败 }}catch (Exception e) { //忽略异常} 异步 // 异步发送消息, 发送结果通过callback返回给客户端。producer.sendAsync(msg, new SendCallback() { @Override public void ...
如果重复消费了,可能是什么原因导致的
发表于2025-06-08|开发笔记|MQ•RocketMQ
RocketMQ重复消费,指的是同一个消息重复来了多次 Consumer返回给Broker消费失败(常见 不管是因为什么情况了,是真的消费失败了,还是出现了异常了,还是明明消费成功了,但是你错误的返回了失败等等情况,只要你给 RocketMQ 返回的是 RECONSUME_LATER,那么消息就会重投,有重投就会有重复消费。 Consumer消费处理超时了(常见) 不只是返回失败的情况,如果消费方法执行时间过长,RocketMQ 可能判定消费者失联,也一样会重投消息。 那就和上面的情况一样了。 消息发重了(常见) 这种比较常见的,因为有的时候我们调用 MQ 发送消息的时候,因为网络抖动或者异常,我们会把一些实际成功的消息重发一遍,那么就会有两条一模一样的消息,那么对于消费者来说就可能会重复消费了。 广播模式 这不是重复消费,而是 RocketMQ 的广播模式特性,他就是会把一条消息发送给所有的消费者,但是如果大家处理的逻辑都一样, 那么和重复消费的表现是一样的。
RocketMQ如何保证消息的顺序性
发表于2025-05-20|开发笔记|MQ•RocketMQ
和Kafka只支持同一个 Partition 内消息的顺序性一样,RocketMQ 中也提供了基于队列(分区)的顺序消费。即同一个队列内的消息可以做到有序,但是不同队列内的消息是无序的 当我们作为 MQ 的生产者需要发送顺序消息时,需要在 send 方法中,传入一个 MessageQueueSelector。 MessageQueueSelector 中需要实现一个 select 方法,这个方法就是用来定义要把消息发送到哪个 MessageQueue 的,通常可以使用取模法进行路由: SendResult sendResult = producer.send(msg, new MessageQueueSelector() { @Override//mqs:该Topic下所有可选的MessageQueue //msg:待发送的消息 //arg:发送消息时传递的参数 public MessageQueue select(List<MessageQueue> mqs, Message msg, Object arg) { Integer id = (Inte ...
普通消息、顺序消息的区别,在什么场景会用到
发表于2025-05-05|开发笔记|MQ•RocketMQ
普通消息,就是很普通,没有什么特别的, 和顺序消息相比的话,就是消息发送到 MQ 后,消费者不保证严格按照发送顺序消费。消息可能会被乱序消费。 顺序消息是指生产者按照顺序发送消息,消费者也必需严格按顺序消费的消息。一般是通过绑定同一个分区来实现的。 顺序消息一般用在对顺序性有严格要求的场景中,比如是涉及到状态流转,尤其是那种状态流转的时间间隔很短的。 比如贷款的还款成功消息和结清消息。交易的确认收货消息和订单完结消息,基本都是同时发生的。如果系统是分别要处理这两个消息,那么可能就需要先处理确认收货,再处理订单完结,否则就会出问题的。 但是大多数情况下,我们用顺序消息的并不多,因为这只对收消息的应用有好处,而对发送消息的应用没有什么好处,反而增加了复杂性(而且还有吞吐量低、维护成本高等缺点)。而要做顺序消息,又需要发送者来做代码改造,所以很多系统都不愿意改,比如交易系统,不可能这么改的。 所以,实际上的大多数场景,并不一定会直接用MQ的顺序消息,而是倾向于消费者自己排序 前置状态判断 作为一个消费支付消息和发货消息的系统,我们可以基于这个 beforeStatus 来判断和我系统中的当前 ...
本地缓存
发表于2025-04-12|开发笔记|本地缓存
所谓本地缓存,就是和应用服务器在一起的缓存工具,将需要缓存的数据放到本地缓存中,可以大大的提升访问速度 数据结构 一般来讲,为了提升缓存的效率,通常采用 Key-Value 结构进行数据存储,也就是说,缓存中的数据保存和读取都需要有一个 Key,通过 Key 来读取固定的缓存的 Value 线程安全 本地缓存一定要考虑线程安全的问题,因为大多数情况下本地缓存都是一个全局可访问的变量,那么就会有多个线程同时访问,所以线程安全问题不容忽视 对象上限 因为是本地缓存,而本地内存中的数据是要占用 JVM 的堆内存的,所以内存是有上限要求的,如果无限存储,最终一定会导致 OOM 的问题 清除策略 为了避免 OOM 的问题,一般会考虑在缓存中增加清除策略,通过一定的手段定期的清理掉一些数据,来保证内存占用不会过大,常见清除策略主要有有 LRU(最近最少使用)、FIFO(先进先出)、LFU(最近最不常用)、SOFT(软引用)、WEAK(弱引用)等 过期时间 有了清除策略并不能保证百分百的可以删除数据,极端情况会会使得某些数据一直无法删除。这时候就需要有一种机制,能够保证某些 K-V 一定可以删除。通 ...
1…567…10
avatar
CYK
CYK 的个人技术博客,记录 Docker、Linux、Java、网络运维等后端与运维实践,以及日常折腾和踩坑笔记。
文章
92
标签
122
分类
5
公告

怎么这么难!
我真服了!

最新文章
评论区加载不出来?把 Twikoo 从 Vercel 搬回自己服务器2026-10-27
静态博客的传输层优化:HTTP/2、gzip 和缓存头2026-10-27
重装只是开始:把公网服务器从裸奔状态拉回来2026-10-27
服务器被拿去当肉鸡:一次入侵的完整复盘2026-10-26
oh-my-posh:一个好看的终端提示符怎么装2026-08-05
分类
  • 学习笔记1 篇
  • 工具笔记1 篇
  • 开发笔记84 篇
  • 生活记录1 篇
  • 运维笔记4 篇
标签
并查集 性能优化 DOCX 安全 Gradle Nginx 逆向 Shell JAVA SCRIPT Hexo Kotlin协程 算法 打包 Butterfly BIG 渲染 JDK25 属性绑定 踩坑 Java JavaFX MySQL 入侵复盘 数据处理 Algolia MQ 工具 回调 协程 hexo 命令行 增益 批量更新 SQL优化 二进制 SVN MongoDb 采样定理 图像处理 基础
归档
  • 十月 20264 篇
  • 八月 20261 篇
  • 七月 202622 篇
  • 六月 20266 篇
  • 五月 20265 篇
  • 四月 20264 篇
  • 三月 20262 篇
  • 二月 20264 篇
网站资讯
©2024 - 2026 By CYK

HEXO Butterfly GitHub
鲁ICP备2024065423号-2

搜索