Everything you care about in one place

Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.

Get Feeder

segmentfault.com

SegmentFault 最新的文章

Get the latest updates from SegmentFault 最新的文章 directly as they happen.

Follow now 67 followers

Latest posts

Last updated 3 days ago

React Server Components 中的严重安全漏洞

3 days ago

本文翻译自原文地址。React Server Components 中的严重安全漏洞2025年12月3日,由 The React Team 发布React Server Components 中存在一个未经身份验证的远程代码执行漏洞。我们建议立即升级。11月29日,Lachlan Davidson...

腾讯音乐如何基于 AutoMQ 降低 Kafka 50%+ 成本

17 days ago

编辑导读:腾讯音乐娱乐集团作为中国在线音乐娱乐服务的领航者,旗下拥有 QQ 音乐、酷狗音乐、酷我音乐和全民 K 歌等众多国民级移动音频应用。每天,这些产品都会产生海量的用户行为和业务数据,为精准推荐、用户增长和商业化等核心业务提供着源源不断的数据驱动力。在这一切背后,一个强大、稳定且高效的 Kafka 流系统是支撑其业务持续创新和发展的关键。然而,随着业务的飞速发展,传统的自建 Kafka 集群在运维复杂度和成本控制方面逐渐暴露出其局限性。为了应对日益增长的数据洪流和对成本效益的极致追求,腾讯音乐运维团队毅然开启了对下一代 Kafka 解决方案的探索与实践。最终,他们选择了基于云原生架构的 AutoMQ。通过引入这一创新的解决方案,腾讯音乐不仅成功将成本降低了超过...

CodeQL对Java项目进行SQL注入审计总结

18 days ago

一、背景今年在做个AI代码安全审计的项目,代码仓库里十有八九都是Java项目,所以开始研究怎么给Java做代码审计。传统的人工审计,效率低,还容易看花眼。这时候想到了CodeQL。把你代码转换成可查询的数据库,然后用像SQL一样的语法去挖漏洞。整体思路很简单,就两步:用CodeQL扫描,生成一堆漏洞的报告(JSON格式)。拆解和分析这些报告,判断这个漏洞到底是“确诊”还是“误诊”。二、操作步骤2.1 CodeQL 扫描简单来说,分三步走:创建数据库:这就好比把Java代码这个“原始食材”加工成CodeQL能处理的“半成品”。codeql database create my-java-db --language=java --command="mvn compile"my-java-db:给你的数据库起个名儿。--language=java:声明语言是Java。--command:告诉CodeQL你用啥编译项目,比如Maven就用mvn compile,Gradle就用gradle build。这一步是关键,CodeQL会通过编译过程来理解整个代码结构。运行查询:拿着写好的“问题清单”(QL查询脚本),去数据库里找答案。codeql database...

一文搞懂Redis击穿/穿透/雪崩&实战

20 days ago

1. 学起来XDM,大家好,我是专注Golang的王中阳,最近在带着大家疯狂做项目。这篇文章来自这个实战项目的实践:《掌握企业级电商系统核心架构设计 突破百万级并发瓶颈》 , 广受粉丝好评。我把对大家有帮助的,尤其是对新手小白非常友好的内容,整理分享出来,希望对大家有帮助。本文将详细介绍这些常见的缓存问题,并结合我们的电商项目,提供完整的解决方案和实现代码,帮助新手小白理解并掌握Redis缓存策略的正确使用方法。2. Redis缓存常见问题概念解释2.1 缓存穿透什么是缓存穿透?缓存穿透是指用户请求一个不存在的数据,由于缓存中没有该数据,请求会直接打到数据库。如果大量的请求都访问不存在的数据,就会导致数据库压力过大,甚至宕机。举例说明:在电商网站中,用户查询一个不存在的商品ID(如-1或者一个非常大的随机数)。由于这个商品ID在缓存中不存在,所以每次请求都会直接查询数据库,而数据库查询后发现也没有该商品。如果有大量这样的恶意请求,数据库的压力就会急剧增加。缓存穿透的危害:数据库压力过大,可能导致数据库宕机系统响应时间延长服务可用性降低2.2 缓存击穿什么是缓存击穿?缓存击穿是指一个热点数据的缓存过期后,大量并发请求同时访问该数据,导致所有请求都直接打到数据库,造成数据库瞬时压力过大。举例说明:在电商网站中,某件热销商品的缓存突然过期。此时,大量用户同时访问该商品详情,由于缓存已经过期,所有的请求都会直接查询数据库。数据库在短时间内需要处理大量请求,可能会导致性能下降甚至宕机。缓存击穿的危害:数据库瞬时压力过大系统响应时间延长可能导致数据库宕机2.3 缓存雪崩什么是缓存雪崩?缓存雪崩是指大量缓存数据在同一时间段内过期,导致大量请求直接打到数据库,造成数据库压力骤增,甚至宕机。举例说明:如果我们在系统上线时,为所有的商品缓存设置了相同的过期时间(比如都设置为1小时),那么在1小时后,所有的商品缓存都会同时过期。这时,大量用户访问网站时,所有的请求都会直接打到数据库,数据库可能无法承受这样的压力而宕机。缓存雪崩的危害:数据库压力骤增,可能导致数据库宕机系统响应时间严重延长服务可能完全不可用3. 项目中现有的Redis缓存实现分析在我们的电商项目中,Redis缓存主要应用在商品服务中,用于缓存商品详情和分类信息。下面我们将分析现有的缓存实现以及存在的问题。3.1 现有Redis缓存实现3.1.1 Redis初始化配置项目使用GoFrame框架的Redis组件进行缓存管理。在goodsRedis/redis.go文件中,实现了Redis的初始化逻辑:从配置文件中读取Redis连接信息创建Redis实例初始化gcache的Redis适配器测试连接并提供缓存实例获取方法3.1.2...

腾讯云智能体开发平台:让 AI 在真实场景中创造价值

21 days ago

历经数十载的演进,人工智能领域正迎来一个前所未有的活跃期。随着生成式 AI 等技术推开产业的大门,全球开发者社区的关注焦点,已从对技术可能性的宏大探讨,彻底转向了对其实用价值的具体验证。开发者们越发迫切地探索,这些新的 AI 能力究竟能在多大程度上解决真实世界的问题。早期的兴奋点集中在与 AI 的对话上,开发者们比拼谁的提示词能激发出更惊艳的单次回复。但很快,焦点便从“一次完美的回答”转向了“一个完整任务的自动执行”。构建的重心,从精巧的提示词,过渡到了严谨的工作流,并最终落到了能自主规划、调用工具、在动态环境中完成复杂目标的 Agent 上。这种转变恰恰映射了 AI 技术本身的内在演进,正清晰地从“可对话”走向“能干事”。在 2025...

SseEmitter返回data被双引号包裹的问题排查

22 days ago

一、背景最近做接口的性能改造,大概背景如下:旧: 1.前端每秒轮询后端接口,接口返回数据状态,前端用状态做判断,变更页面交互。 2.前端固定调用后端接口,接口阻塞100秒,等待后端随时返回结果,100秒到达后无结果,直接失败。新: 改为ServerSentEvent以text-event-stream固定时间窗口由后端返回处理进度。二、简单对比1.后端服务压力大。尤其在用户量大,并发量大,又是系统核心业务时,不好把控。2.阻塞Servlet线程, 当前业务同时访问量大时,影响其他业务请求;最大等待时间不好把控,且受HTTP响应超时时间影响。3.自由简单,且实时性比较强,只要不是高并发入口请求业务就能使用。不占用Servlet线程。三、问题现象1.主代码展示以下代码均为精简后的最小问题复现demoSSE主接口2.问题表现通过curl加-N参数调用后,发现返回的data都被双引号包裹,并且前端的EventSource.onmessage无法回调到(总是触发onerror回调)四.问题思考参考并阅读以下文档前端MDN ServerSentEvent文档Spring ServerSentEvent文档在前端侧浏览器看到开发者工具内EventStream标签页显示空白, 意识到确实是后端自身问题,观察数据结构后发现,像是返回了JSON结构的String字符串,只有JSON结构下String两侧才会有引号,接着立刻翻源码验证。从源码org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler.HttpMessageConvertingHandler#sendInternal中找到线索,发现Spring在处理text-event-stream响应时,仍然是从Servlet Web的全局HttpMessageConverter查找,但这里的mediaType值到底是哪个值呢,存在以下三种情况Controller方法整体的MediaType,这个值固定是text/event-streamSseEmitter#send(java.lang.Object, org.springframework.http.MediaType)方法整体的MediaType,这个值固定是text/plainSseEmitter#send(java.lang.Object, org.springframework.http.MediaType)方法第二个参数传入的MediaType,这个值动态的,我这里是application/json;charset=UTF-8这里大概率是第二种导致的。五、得到结论由于在K8s内网部署,本机无法启动,关联的中间件和附加Bean太多。到这里为止,其实问题清晰了,结合对Spring源码的理解,项目中的全局HttpMessageConverter配置肯定有问题,我们公司前身有很多认为自己很厉害的人,都是从阿里转过来的,酷爱fastjson,项目基建时,肯定干掉了所有的HttpMessageConverter,统一换成了fastjson,接着找这个代码这是2021年,前人留下来的宝藏,只能说这个人复制的时候可能没过脑红色框出来的就是根因绿色框出来的就是完全无脑,二进制文档,图片,也要Json吗?1.看看上游Spring的处理随即问题来了,Spring默认会有一大堆的HttpMessageConverter自动配置,当前这个是add到List<HttpMessageConverter<?>> converters的第一位吗?默认的还在不在?源码如下...

鸿蒙人物志 x 王丹辉|善用生态之力,专注擅长之事

24 days ago

此篇文章来源于 SegmentFault 思否鸿蒙专区·鸿蒙人物志专题采访,阅读时长约 9 分钟,以下为正文:“跨设备协同”不应只是发布会上的热词,它需要在真实产品里被做成稳定、无感、可复制的日常体验。王丹辉——北京湛泸教育首席架构师、开源项目“赵王电机智能关节”联合主理人,曾主导 ZBot-1600-v1、ZBot-800-v1 两款人形双足机器人的研发,如今专注于智能穿戴与生物信息交互领域,并以鸿蒙为技术底座推进实战落地与应用普及。他的最新项目 ColorVision,致力于帮助设计师实现包容性设计,以及让色觉障碍人群“看得更清楚”。能力流动:ColorVision 分布式实践路径在技术路径的选择上,王丹辉基于工程本质的考量,将鸿蒙作为 ColorVision 的核心底座。他看中的是其分布式架构带来的跨设备协同便捷性,以及系统级安全机制对敏感色彩数据的可靠保障。在王丹辉的理解中,鸿蒙是一套“能力中枢”。其核心不是将单一设备做强做大,而是让能力在端与端之间被调用、编排与无感迁移。这种“以能力为中心”的设计逻辑,使得同一份体验可以在手机、平板、穿戴、大屏之间自由流转。对 ColorVision...

探索 Java 中的新 HTTP 客户端

24 days ago

你是否也遇到过这样的时刻:只是想发个 HTTP 请求,却被连接管理、重定向、超时与线程阻塞折腾得不亦乐乎?那就试试 Java 11 正式标准化了全新的 HttpClient,原生支持 HTTP/2、异步与 WebSocket,极大简化了客户端网络编程。1. 概览本文将介绍 Java 11...

🧸 前端不是只会写管理后台,我用 400 行代码画了一个 LABUBU !

24 days ago

注意看,这个男人叫小何,别小看他,每天晚上 9 点 59 分他都准时打开泡泡玛特小程序蹲守 LABUBU 抢购。就在刚才,屏幕时钟倒计时又到 00:00:00 了,他立刻开始狂戳屏幕上的「立即购买」按钮,切换「购买方式」反复刷新库存,熟练的让人心疼。可是,现实却从来没有什么“功夫不负有心人”,有的只是无数“黄牛”挥舞着自己的“科技”与小何同台竞技。毫无意外,今天的小何依然没有胜利,看着屏幕上的「已售罄」陷入了沉思 ……拼尽全力也无法战胜吗?空气里漂泊着手机屏幕反射的冷光,小何指尖的汗渍在「已售罄」三个字上洇出淡淡的印子。屏幕里 LABUBU 的笑脸还在倔强...

AI推理硬件选型指南:CPU 与 GPU 的抉择

25 days ago

AI基础设施的建设不应追逐硬件潮流,而在于为任务选择最合适的工具。Akamai全球分布式边缘网络能独特地为实时应用提供可扩展、高性价比的AI推理服务。通过对CPU的战略性使用,Akamai进一步降低了多种推理工作负载的成本与能耗,且无需牺牲性能。如您所在的企业正在考虑构建和部署 AI 赋能应用程序,或您正在寻找合适的 AI 推理运行环境点击链接了解 Akamai AI 推理云解决方案,现在申请试用可得高达 500 美元专属额度决策边界:CPU 还是 GPU?下表将助您根据模型架构、延迟需求与部署环境,做出正确的基础设施选择。在...

Akamai推出Akamai Inference Cloud (AI推理云),重新定义人工智能的应用场景与实现方式

26 days ago

近日,Akamai 正式推出Akamai Inference Cloud (AI推理云),该平台专为全球规模的低延迟、实时边缘人工智能处理而设计,初期将覆盖全球 20 个节点,后续将持续拓展全球更多节点的部署。如您所在的企业正在考虑构建和部署 AI 赋能应用程序,或您正在寻找合适的 AI 推理运行环境点击链接了解 Akamai...

从 useState 到 URLState:为什么大佬们都在删状态管理代码?

27 days ago

1. 前言当你打开这个网址时:https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript&plugins=line-numbers你会发现,所有你需要的主题、语言、插件已经被自动勾选:当你在页面修改配置时,URL 也会随之改变。你看,这个 URL 不仅仅是一个链接,更是一个完整的状态容器,保存了我的所有配置。无需数据库、cookie 或 localStorage,一个 URL 就解决了一切。2. 被忽视的 URL 超能力URL...