一次因为Mac系统升级引发的ssh无法免密登陆的问题 (wiki.eryajf.net)
公司内部安卓与 iOS 打包是通过内部的一台 Mac mini 主机上部署的 Jenkins 完成的,一切都看起来非常优雅且自如。我也正在忙自己的事情,突然一个开发小哥找过来,说发布过程有问题了,其中有一个步骤是在 Jenkins 中打完包之后,将包通过 scp 传到一台 centos 服务器上,从而提供给开发者进行下载。现在出现的问题是,scp 的时候让输入密码了。
by @技术头条 2023-07-04 23:08 查看详情
实现 go 的 goroutine 本地存储又一种方式 (xiezhenye.com)
go 本身没有对外提供 goroutine 本地存储,而现实中,又经常需要在上下文中传递一些数据。使用 context 也是一种方式,但是要求在所有需要的地方都要传递,还是非常麻烦,而且有侵入性。
偶然发现 go 已经提供了一个用于 profile 的 pprof label,可以在 goroutine 中携带一些数据。不过这个东西既然是用于 pprof 的,随意往里塞太多东西显然也不适合,还会对 pprof 产生干扰。所以,想办法只用其中一个 label,用一些黑科技把一个 map 放了进去,将影响降到最小。同时,pprof 包中已经有一些基于 context 访问处理 label 的逻辑,所以还要做一些兼容处理,避免被其覆盖。
by @技术头条 2023-07-04 23:07 查看详情
腾讯云日志产品CLS使用以及成本控制的最佳实践 (wiki.eryajf.net)
日志成本控制主要有如下几个维度:- 减量:去掉没有意义的无效日志,只打印关键日志。- 减周期:尽可能减少日志存储的时长。- 转低频:低频相较于标准存储,可降低 6 0%--70%的成本。- 慎开全文索引:全文索引将会把所有日志全部索引一遍,并且这个存储是未压缩的存储,如果开启全文索引,则存储往往会比不开的存储高出 4--10 倍。
by @技术头条 2023-07-04 23:07 查看详情
Redis 核心数据结构(二) (www.diguage.com)
在上一篇文章: Redis 核心数据结构(1) 中,介绍了链表、ziplist、quicklist 数据结构。这篇文章,来介绍一下 skiplist、dict。
skiplist 跳跃表是一种有序数据结构,支持平均 O(logN)、最坏 O(N) 复杂度的节点查找;大部分情况效率可以和平衡树相媲美,实现却比平衡树简单。
跳跃表就是 Redis 中有序集合键的底层实现之一。
by @技术头条 2023-07-04 23:07 查看详情
Redis 核心数据结构(一) (www.diguage.com)
Redis 目前是使用最广泛的缓存中间件。其突出特点就是支持多种常见的数据结构。对比 JDK 集合类的实现,Redis 的实现表现出很多独到之处,很多地方设计得别具匠心。下面就来简要介绍一下。
by @技术头条 2023-07-04 23:07 查看详情
AI 加持的代码编写实战:快速实现 Nginx 配置格式化工具 (soulteary.com)
本篇文章聊聊如何使用 GPT 快速完成一个开源小项目,解决实际的问题,顺手点亮 GitHub 上 Nginx 开源社区的贡献者图标。“Talk is Cheap,Show you the Code。
by @技术头条 2023-07-02 23:45 查看详情
让 OpenAI 更 Open,在 ChatGPT 里自由接入数据源 (soulteary.com)
本篇文章中,我们简单聊聊如何在 OpenAI 的 ChatGPT Web 客户端中,自由的接入和使用各种数据源。
by @技术头条 2023-07-02 23:45 查看详情
理解flannel的三种容器网络方案原理 (www.zhengwenfeng.com)
本文主要介绍flannel在k8s网络中作为网络插件通过UDP、VXLAN、HOST-GATEWAY三种模式来解决容器跨主机网络通信的,并通过手动实现这三种模式深入理解其原理。
by @技术头条 2023-07-02 23:44 查看详情
#浅尝Docker#nginx如何用Docker配置运行 (www.aihoom.com)
最近尝试用docker来运行nginx,因为没有熟悉的看过具体文档,所以踩了不少坑,然后想着搜索网络上的信息也许能解决,但是发现网上流传的东西更尼玛的坑,实在是受不了了。
by @技术头条 2023-07-02 23:44 查看详情
关于gradle中plugins依赖未走私服导致编译失败的原因探析 (wiki.eryajf.net)
我们的项目标配使用gradle进行编译,我们也配置了nexus作为私服,理论上来说,不应该再会出现因包依赖的原因导致编译失败的情况,但是这个问题仍旧会偶尔发生,我解决过一两次,只看到通常失败的编译都是在开头的时候去 plugins.gradle.org 拉包的情况,当时将该问题存疑,本文特来探析一下导致这个问题的根因。
by @技术头条 2023-07-02 23:44 查看详情
如何阅读 Spring 源码? (www.diguage.com)
Spring Framework 是开源的,代码托管在 GitHub 上: Spring Framework。任何人都可以方便地获得它的源代码。所以,如果想阅读 Spring 的源代码,当然是直接把代码克隆到本地,然后直接在 IDE(推荐 IDEA)中进行调试了。另外,还需要存放自己写一些测试和文档。所以,最好把代码 fork 到自己的账户下,从 master 上切出一个新分支并 push 到自己的 Repo 中,这样自己就可以随意更新了。
by @技术头条 2023-07-02 23:41 查看详情
交互式推荐在外卖场景的探索与应用 (tech.meituan.com)
外卖场景的用户停留时长低于传统电商,对用户实时需求的理解和反馈有更高的要求。针对业务问题,外卖推荐团队从2021年起开始持续投入,最终摸索出了一套适用于外卖场景的交互式推荐架构和策略,并取得了较好的收益。本文详细介绍了外卖首页Feed在搭建交互式推荐时遇到的挑战和解决思路。
by @技术头条 2023-07-02 23:41 查看详情
Kafka 常见面试题 (www.diguage.com)
Kafka 是由 LinkedIn 开发的一个分布式的消息系统,使用 Scala 编写,它以可水平扩展和高吞吐率而被广泛使用。Kafka 本身设计也非常精巧,有很多关键的知识点需要注意。在面试中,也常常被问到。整理篇文章,梳理一下自己的知识点。
by @技术头条 2023-07-02 23:41 查看详情
深入剖析 Spring 核心数据结构:BeanDefinition (www.diguage.com)
林纳斯·托瓦兹(Linus Torvalds)说:“我从心底认为,优秀的程序员与平庸的程序员之间的区别,是在于认为自己的代码重要还是数据结构更加重要。平庸的程序员眼里只有代码,优秀的程序员则关注数据结构及之前的关系。” 也许很多人觉得 Spring 神秘莫测,但是如果了解了它的核心数据结构,很多问题迎刃而解。
Spring 中两个数据结构最核心:① BeanDefinition,用于表示 Bean 的定义;② BeanFactory,用于表示整个 IoC 容器。
by @技术头条 2023-07-02 23:40 查看详情
深入剖析 Spring 核心数据结构:BeanFactory (www.diguage.com)
在 深入剖析 Spring 核心数据结构:BeanDefinition 中,介绍了 BeanDefinition。网上很多文章介绍 BeanDefinition 的 API,本文要反其道而行之,从内部属性来分析一下。
by @技术头条 2023-07-02 23:40 查看详情
MRCP在美团语音交互中的实践和应用 (tech.meituan.com)
“当你和智能语音机器人对话交互时,你是否好奇电话背后的机器人如何“听懂”你的意思,又如何像人一样“回答”你的问题?其中比较重要的技术就是 MRCP。本文主要介绍了 MRCP 在美团语音交互中的实践和应用,基于美团自研的语音识别及语音合成能力,我们提升了外呼通话的成功率,并且保证了更好的用户体验。”
by @技术头条 2023-07-02 23:39 查看详情
一次「找回」TraceId的问题分析与过程思考 (tech.meituan.com)
用好中间件是每一个开发人员的基本功,一个专业的开发人员,追求的不仅是中间件的日常使用,还要探究这背后的设计初衷和底层逻辑,进而保证我们的系统运行更加稳定,让开发工作更加高效。结合这一主题,本文从一次线上告警问题出发,通过第一时间定位问题的根本原因,进而引出Google Dapper与MTrace(美团内部自研)这类分布式链路追踪系统的设计思想和实现途径,再回到问题本质深入@Async的源码分析底层的异步逻辑和实现特点,并给出MTrace跨线程传递失效的原因和解决方案,最后梳理目前主流的分布式跟踪系统的现状,并结合开发人员日常使用中间件的场景提出一些思考和总结。
by @技术头条 2023-07-02 23:39 查看详情
记一次失败的 ThoughtWorks 面试经历 (blog.yuanpei.me)
年前朋友问我,要不要试试 ThoughtWorks 澳洲线的岗位。对于这家号称“世界上面试最难”的公司,多少还是有一点畏惧,直到朋友安慰我说,它们这次有中级的岗位,还是可以试一试的,梦想还是要有的,万一实现了呢?自此,我凑齐了西安. NET圈子里的四大“天花板”公司的面试:葡萄城、活跃网络、奥博杰天、ThoughtWorks ,而对于我来说,亦有幸见识到世界上最难的面试,虽然后来事实证明,这个世界上没有太多的逆袭,可我还是想分享一下我的这次面试经历,因为它让我知道,在过去的两年里,我在哪些方面取得进步,在哪些方面存在不足。当我写下这篇博客的时候,我即将在今年夏天迎来我的29岁,果然我还是希望自己能再努力一点,因为不想让平行世界里的某个人失望。
by @技术头条 2023-07-02 23:36 查看详情
如何分享一个体面的购物链接 (type.cyhsu.xyz)
如今在大多数电商平台,简洁、可读、易懂的链接都已经绝迹了。怎么得到一个体面的链接用来保存和分享?答案是用笨办法对付聪明,用顽固对抗糟糕。
by @技术头条 2023-07-02 23:34 查看详情
利用 MySQL 的 Binlog 实现数据同步与订阅(下):EventBus 篇 (blog.yuanpei.me)
终于到这个系列的最后一篇,在前两篇博客中,我们分别了介绍了Binlog的概念和事件总线(EventBus)的实现,在完成前面这将近好几千字的铺垫以后,我们终于可以进入正题,即通过 EventBus 发布 Binlog,再通过编写对应的 EventHandler 来订阅这些 Binlog,这样就实现了我们“最初的梦想”。坦白说,这个过程实在有一点漫长,庆幸的是,它终于还是来了。
by @技术头条 2023-07-02 23:34 查看详情