云原生背景下如何配置 JVM 内存 (crossoverjie.top)
传统的 Java 应用开发模式基本不会去了解容器的内存大小,因为以前大家的应用都是部署在一个内存较大的虚拟机上,所以感知不到容器内存的限制。这样很容易让自动生成的 Xmx 大于了容器的内存大小,以致于 OOM。推荐 JVM 的配置小于容器限制的 2/3,预留一些内存。
by @技术头条 2023-05-29 23:37 查看详情
新浪张俊林:大语言模型的涌现能力——现象与解释 (www.52nlp.cn)
复杂系统学科里已经对涌现现象做过很久的相关研究。那么,什么是“涌现现象”?当一个复杂系统由很多微小个体构成,这些微小个体凑到一起,相互作用,当数量足够多时,在宏观层面上展现出微观个体无法解释的特殊现象,就可以称之为“涌现现象”。

在日常生活中也有一些涌现现象,比如雪花的形成、堵车、动物迁徙、涡流形成等。这里以雪花为例来解释:雪花的构成是水分子,水分子很小,但是大量的水分子如果在外界温度条件变化的前提下相互作用,在宏观层面就会形成一个很规律、很对称、很美丽的雪花。

那么问题是:超级大模型会不会出现涌现现象?显然我们很多人都知道答案,答案是会的。
by @技术头条 2023-05-13 08:43 查看详情
ICDE 2023 | 多场景多任务学习在美团到店餐饮推荐的实践 (tech.meituan.com)
美团到店餐饮算法团队在跨域迁移学习的长期实践中,基于多场景的业务背景,提出了分层信息抽取网络,提升了多场景多任务的建模效果。相关技术方案形成的学术论文已经被国际数据工程会议ICDE 2023收录,本文详细阐述了多场景&多任务学习的解决方案,希望能给从事相关方向研究的同学带来一些帮助或启发。
by @技术头条 2023-05-13 08:42 查看详情
ClickHouse 数据类型 (www.dbkuaizi.com)
对于一款支持海量数据分析系统而言,能支持 DML 查询实属难得可贵。在海量的数据场景下,很多看似简单的操作也会变得举步维艰,所以一些系统会选择做减法来规避一些难题。而 ClickHouse 支持完备的 DML 命令,包括 INSERT、SELECT、UPDATE 和 DELETE。虽UPDATE 和 DELETE 可能会存在一些性能问题,但这些能力的提供确实丰富了架构师的筹码,在架构设计师可以多几个选择。

作为一款完备的 DBMS,ClickHouse 提供了 DDL 和 DML 功能,并支持大部分标准的SQL。这也是 ClickHouse 相对容易上手的原因。但作为一款异军突起的 OLAP 数据库黑马,ClickHouse 有着属于自己的设计目标,高性能才是它的根本。比如 ClickHouse 在基础数据方面相比于其他常规数据库会少一些,但它又同时提供了实用的复合数据类型,而这些复合类型是常规数据库所不具备的。再比如,ClickHouse 所提供的 DDL 和 DML 查询,在部分细节上和其他数据库也是不同的(例如 UPDATE、DELETE 是借助 ALTER 的变种实现的)。

所以掌握 ClickHouse 中的数据定义方法是很重要的,这能帮助我们深刻理解和使用 ClickHouse。
by @技术头条 2023-05-13 08:18 查看详情
Kubernetes 中的证书管理工具 - cert-manager (thiscute.world)
这篇文章要介绍的 cert-mangager,跟 certbot 这类工具有点类似,区别在于它是工作在 Kubernetes 中的。

cert-manager 是一个证书的自动化管理工具,用于在 Kubernetes 集群中自动化地颁发与管理各种来源、各种用途的数字证书。它将确保证书有效,并在合适的时间自动更新证书。
by @技术头条 2023-05-02 18:12 查看详情
任务执行龟速,原因竟然是...... (www.ssgeek.com)
本文记录复盘的是一次k8s集群相关的生产故障。

随着服务增多,集群的庞大,一些未知问题就必然会出现(而如果集群规模较小,也就基本不会遇到了)。

对于一开始未知原因、诡异、没有思路的问题或者bug,往往利用穷举法列出所有可能的原因,然后采取最小化复现、差异化对比等等,基本能解决大部分这类问题。
by @技术头条 2023-05-02 18:11 查看详情
基于Dockerfile构建容器镜像的最佳实践 (www.ssgeek.com)
本文简要分析了Dockerfile为什么这么大的几个主要原因,并且根据生产经验罗列了一些优化镜像大小的措施以及其他方面常用的处理办法,很多技巧性的内容,比较杂乱,就不一一提及了 ~
by @技术头条 2023-05-02 18:10 查看详情
基于ack k8s集群调度的方案设计 (www.ssgeek.com)
本文分析介绍基于ack,结合k8s原生调度方式,综合考虑现有应用自身特性、节点池资源特性、成本、效率等方向而设计的调度规范参考。

后续随着业务的复杂性增强,会将更多的调度设计原理与业务相结合,充分利用公有云及k8s的新生特性,例如在离线业务混合部署、拓扑感知调度、二次调度、弹性容器实例ECI、Serveless函数计算等,甚至于出现可用的调度方式都不满足的调度需求,实现自定义调度,进而实现更多更好更强贴近业务、使用效率提升的服务调度方式,根据更多的数据指标和服务中链路的追踪来进一步优化业务,最终实现业务的快速迭代、自动部署、独立高效。
by @技术头条 2023-05-02 18:10 查看详情
创业公司的基层管理 (hiwannz.com)
在创业公司担任管理者时,是不能照搬大公司的管理制度和流程的。

一方面是因为公司规模不同,导致能够使用的资源有限,很多创业公司在照搬大公司的管理制度时,往往会听到员工吐槽“又要 996,又不给加班费;又没有大公司的命,又得了大公司的病”。毕竟创业公司总是人手有限,管理者除了担任管理职能以外,往往还需要真的做事,如果在一家几十个人的创业公司里,管理者的工作就是看日报,盯工时和开会,那对于基层员工将会是一件很无奈的事情(毕竟创业公司里要做的事情总是太多了)。

以我个人的经验来说,在这种时候,相比选择花费时间去学习管理课程/书籍,参与 MBA 的课程能够起到的作用并不大(并不是说不好)。毕竟“纸上得来终觉浅,绝知此事要躬行”,管理课程书籍中提供的往往是那种“正确但又难以在短时间内落地的知识”,而由于不同公司的企业文化,组织结构和可用资源,很难找出一种对所有公司都有效的“具体方法”。

在之前的文章《如何管理新的产品团队》中,我分享了一些以往的心得和经验,刚好最近又有一些新的想法,与大家进行分享。
by @技术头条 2023-05-02 18:09 查看详情
一个西漂打工人的求职心路 (blog.yuanpei.me)
一个 30+的朋友和我说,他想自己干点啥,因为他觉得他再找工作就没人要了,也许生活就是永远这么充满变化吧,就像不变的只有变化本身一样,提前焦虑未来没有什么用,现在的规划将来不一样会按部就班,我只能说,多去想想自己有什么,如果你只是比别人能加班,这实在算不上什么过人的长处,因为随时有年轻人可以替换你下来。人活着啊,不能光长年龄和皱纹,想想两度背水一战的丁辉,我们这点努力能叫做拼尽全力吗?这就是我,一个“西漂”四年的外地打工人的一点想法,如果你有更好的解决“内卷”的思路,我会非常感谢你告诉我这些。
by @技术头条 2023-05-02 18:08 查看详情
使用 dotTrace 对 .NET 应用进行性能分析与优化 (blog.yuanpei.me)
前几天,有位朋友问我,你平时都是怎么去排查一个程序的性能问题的啊。说到性能问题,可能大家立马会想到类似并发数、吞吐量、响应时间、QPS、TPS等等这些指标,这些指标的确可以反映出一个系统性能的好坏。

可随着我们的系统结构变得越来越复杂,要找到这样一个性能的“损耗点”,同样会变得越来越困难。在不同的人的眼中,对于性能好坏的评判标准是不一样的,譬如在前端眼中,页面打开速度的快慢代表着性能的好坏;而在后端眼中,并发数、吞吐量和响应时间代表着性能的好坏;而在 DBA 眼中,一条 SQL 语句的执行效率代表着性能的好坏。更不用说,现实世界中的程序要在硬件、网络的世界里来回穿梭了,所以,从 80%的功能堆积到 100%,是件非常容易的事情;而从 80%的性能优化到 85%,则不是件非常轻松的事情。

想清楚这一点非常简单,因为我们的系统从来都不是简单的1 + 1 = 2。此时,我们需要一个性能分析工具,而今天给大家分享的是 JetBrains 出品的 dotTrace 。
by @技术头条 2023-05-02 18:05 查看详情
一道 HashSet 面试题引发的蝴蝶效应 (blog.yuanpei.me)
今天要说的是 HashSet ,而这确实是一个实际面试中遇到的问题。当时的场景大概是这样的,面试官在了解了你的知识广度以后,决心来考察一番你的基本功底,抛出了一个看起来平平无奇的问题:说一说你平时工作中都用到了哪些数据结构。你心想,这还不简单,Array、ArrayList、List、Dictionary、HashSet、Stack、Queue…等等各种集合类简直如数家珍,甚至你还能说出这些数据结构间的优劣以及各自使用的场景。可没想到,面试官话锋一转,直接来一句,“你能说说 HashSet 去重的原理吗”,好家伙,你这简直不按套路出牌啊…
by @技术头条 2023-05-02 18:04 查看详情
WebApiClient 中动态路由的实现与使用 (blog.yuanpei.me)
博主曾介绍过.NET 平台下的“Retrofit”——WebApiClient,它是一种声明式的 RESTful 客户端,通过动态代理来生成 Http 调用过程代码,而调用方只需要定义一个接口,并使用相关“注解”对接口进行修饰即可,类似的实现还有Refit,是一种比 HttpWebRequest、HttpClient 和 RestSharp 更为优雅的接口调用方式。在今天这篇博客中,我想聊聊 WebApiClient 中动态路由的实现与使用。
by @技术头条 2023-05-02 18:04 查看详情
Zookeeper的基本原理 (codeyee.com)
在学习Zookeeper之前,我们需要先了解什么是分布式协调技术,以及该技术产生的背景是什么。

分布是协调技术主要用来解决分布式环境中多个进程(节点)之前的同步控制,让他们 有序 的区访问某种 “临界资源” ,防止出现 “脏数据” 的情况。
by @技术头条 2023-05-02 18:02 查看详情
利用GitHub Actions自动将项目贡献者列表添加到README中 (wiki.eryajf.net)
当我们负责的项目有越来越多的人加入进行协作之后,将贡献者添加到 README 中是一个很好的激励作用,很多大的项目也都是这么做的,本文就来讲一下,如何借助 Github Actions 自动将项目贡献者列表添加到 README 中。
by @技术头条 2023-05-02 18:00 查看详情
一个诡异的 Pulsar InterruptedException 异常 (crossoverjie.top)
背景今天收到业务团队反馈线上有个应用往 Pulsar 中发送消息失败了,经过日志查看得知是发送消息时候抛出了 java.lang.InterruptedException 异常。和业务沟通后得知是在一个 gRPC 接口中触发的消息发送,大约持续了半个小时的异常后便恢复正常了,这是整个问题的背景。

最后归根结底发现是代码不合理导致的,首先是自己中断了线程但也没使用,从而导致有被其他基础库使用的可能,所以会造成了一些不可预知的后果。

再一个是不建议在业务代码中使用 Thread.currentThread().interrupt(); 这类代码,第一眼根本不知道是要干啥,也不易维护。

其实本质上线程中断也是线程间通信的一种手段,有这类需求完全可以换为内置的 BlockQueue 这类函数来实现。
by @技术头条 2023-05-02 17:59 查看详情
Jenkins-Groovy中三元表达式的用法 (wiki.eryajf.net)
我们在使用pipeline的时候,如果某一个变量没有正常声明,则会遇到变量定义失败的错误,这个时候,我们可以借助三元表达式来解决这个问题。
by @技术头条 2023-05-02 17:58 查看详情
Jenkins结合MySql Database插件的平台化实践思路 (wiki.eryajf.net)
以往Jenkins实践当中,配置了共享库的流水线方案,通过将核心公共逻辑抽离成膜版,项目个性化配置信息放到引导文件中的方式进行推进。这种方案没有什么毛病,对于运维的维护工作也是比较友好的,只是后来我们打算再在Jenkins上层做一下平台化封装的时候,发现还是存在一些问题,并且有一些难度的。最近我了解学习到了一个与 MySQL Database 插件结合的思路,能够比较好解决这种问题,那么接下来话不多说,直接进入正题,让我们来认识一下这个插件。
by @技术头条 2023-05-02 17:57 查看详情
Linux 网络工具中的瑞士军刀 - socat & netcat (thiscute.world)
netcat(network cat) 是一个历史悠久的网络工具包,被称作 TCP/IP 的瑞士军刀,各大 Linux 发行版都有默认安装 openbsd 版本的 netcat,它的命令行名称为 nc.

而 socat(socket cat),官方文档描述它是 "netcat++" (extended design, new implementation),项目比较活跃,kubernetes-client(kubectl) 底层就是使用的它做各种流量转发。

在不方便安装 socat 的环境中,我们可以使用系统自带的 netcat. 而在其他环境,可以考虑优先使用 socat.
by @技术头条 2023-04-29 21:00 查看详情
我在创业公司做技术一年多的一点体会 (thiscute.world)
公司的技术骨干们都是创业思维,他们或者乐在其中,或者愿意为了老板描述的未来忍一时痛苦。他们都愿意为了产品付出更多。 但是我发现对公司,我不愿意付出太多。在这里,我一直就是个普通上班族的想法,高点工资,多点个人时间,做着自己喜欢的事情。
by @技术头条 2023-04-29 20:59 查看详情