一图搞懂Kafka核心概念,值得收藏

什么是kafka?Kafka是一种高性能、分布式的流数据平台,用于处理、存储和传输实时数据流。世界上一些最大的数据管道都在使用 Kafka。Netflix和Uber等的工作流程都依赖它。

495次阅读  |  11月以前  |  阅读全文 »
一图了解高可用、高性能和高扩展系统的常见实现方案

我们经常被要求设计高可用性、高可扩展性和高性能。上图包含了针对“三高”的常见解决方案。

458次阅读  |  11月以前  |  阅读全文 »
一文带你搞懂 Docker 容器的核心基石 Cgroups

Cgroups 是 Linux 系统内核提供的一种机制,这种机制可以根据需求将一些列系统任务机器子任务整合或分离到按资源划分登记的不同组内,从而为系统资源管理提供一个的框架。简单地说,cgroups 可以限制、记录任务组所使用的物理组员(比如 CPU、Memory、IO等),为容器实现虚拟化提供了基本保证,是构建 Docker 等一些列虚拟化管理工具的基石。今天我们就来详细介绍一下 cgroups 相关的内容。

614次阅读  |  11月以前  |  阅读全文 »
看图聊算法:快速排序的原理与实现

归并排序的缺陷在于其需要额外存储空间。这引发了一个问题:能不能有一种算法,既不依赖额外空间,又能利用分治思想进行原地排序?快速排序正是这样一种算法。不同于归并排序,快速排序将重心放在“分”上,让“治”自然发生。

537次阅读  |  11月以前  |  阅读全文 »
腾讯云原生场景下内存多级卸载落地实践

近期,第四届中国云计算基础架构开发者大会(China Cloud Computing Infrastructure Developer Conference – 简称 CID)在深圳举办。本届 CID 大会聚焦业界最前沿的云计算基础架构技术成果,围绕基础架构技术领域的技术交流,展示先进技术在行业中的典型实践。在主论坛上,作者以《云原生场景下内存多级卸载落地实践》为议题,分享内存多级卸载方案(内部称“Tencent OS悟净”)在公司业务落地过程中所遇到的实际问题、对应的解决方案,以及在容器平台上的落地数据。以下为分享重点。

533次阅读  |  11月以前  |  阅读全文 »
AI模特换装的前端实现

随着AI的火热发展,涌现了一些AI模特换装的前端工具(比如weshop网站),他们是怎么实现的呢?使用了什么技术呢?下文我们就来探索一下其实现原理。

720次阅读  |  11月以前  |  阅读全文 »
从腾讯视频架构重构,看DDD的概念与方法

开宗明义,DDD 是一种技术方法论,不是某种具体的技术架构,也不是某种编程框架层面的东西。在本篇文章中,我们将重点阐述 DDD 的核心概念与关键方法。

458次阅读  |  11月以前  |  阅读全文 »
在淘宝,音视频技术团队解决了内容电商什么问题?

尽管优质的货品、实惠的价格、精致的布景、有趣的内容输出都是非常关键的影响因素,内容电商也必须基于两个前提:画质要高清、播放要流畅。曾经,有不少商家和主播因为直播间画质较差的问题而苦恼,不了解如何实现高画质开播。在一系列前沿音视频技术的加持下,淘宝音视频技术团队解决了这个问题。

526次阅读  |  11月以前  |  阅读全文 »
Vim 一下日志文件,Java 进程没了?

一次端口告警,发现 java 进程被异常杀掉,而根因竟然是因为在问题机器上 vim 查看了 nginx 日志。下面我将从时间维度详细回顾这次排查,希望读者在遇到相似问题时有些许启发。

525次阅读  |  11月以前  |  阅读全文 »
扫码支付是怎么工作的?

过去的几十年,支付技术发生了很大的改变。下图给我们显示了 POS 终端的进化。从一开始的纸钞收银机,到刷卡机,再到如今的支持刷卡、扫码和数字钱包的一站式智能手机 POS 机,交易流程被彻底改变了。

512次阅读  |  11月以前  |  阅读全文 »
容器的文件系统(三): 存储挂载原理

容器使用 volume 和 bind mount 都可以将容器内的文件或者目录挂载宿主机上,但是 volume 可由 Docker 来管理,bind mount 是直接与 Linux 原生文件系统对接。tmpfs 与 volume、bind mount 不同的是 tmpfs 是将容器内的文件、目录挂载到内存中,不会将数据存放在文件系统中。下面详细看看这三种挂载类型的使用。

511次阅读  |  11月以前  |  阅读全文 »
容器的文件系统(二): 容器如何使用 OverlayFS

针对 OverlayFS 提供了两个存储驱动:最初的 overlay,以及更新更稳定的 overlay2 ,这里简单介绍下这两种驱动。

525次阅读  |  11月以前  |  阅读全文 »
容器的文件系统(一): OverlayFS 原理

容器的文件系统在用户视角和宿主机的文件系统没有什么区别,但是其背后的原理却不同。在容器里运行 df 命令,可以看到在容器中根目录(/)的文件系统类型是 overlay,它不是我们在普通 Linux 节点上看到的 Ext4 或者 XFS 之类常见的文件系统。

670次阅读  |  11月以前  |  阅读全文 »
看图聊算法:冯·诺依曼的第一个计算机程序

多数人可能只有一个模糊的概念,普遍认为这是冯·诺依曼的成就。然而,关于这一发明的具体细节,甚至连维基百科都未能提供全面的解答。

550次阅读  |  1年以前  |  阅读全文 »
useEffect 实践案例(2):自定义 hook

在上一章中,我们巧妙的把大量的 JSX 逻辑处理封装在了 List 组件中,使得在页面组件的代码变得非常简单。这是针对 UI 层的逻辑处理,那么在数据的处理上,是否也能够进行一些封装呢?

515次阅读  |  1年以前  |  阅读全文 »
useEffect 实践案例(一)

对于 useEffect 的掌握是 React hooks 学习的**重中之重**。因此我们还需要花一些篇幅继续围绕它讲解。

680次阅读  |  1年以前  |  阅读全文 »
[译]装饰器的10年历史

"装饰器是一种结构设计模式,通过将对象置于包含行为的特殊包装器对象中,可以将新的行为附加到对象上"。© https://refactoring.guru/design-patterns/decorator

569次阅读  |  1年以前  |  阅读全文 »
[译]JavaScript中Base64编码字符串的细节

Base64编码和解码是一种常见的将二进制内容转换为适合Web的文本的形式。它通常用于data URLs,比如内嵌图片。当你在JavaScript中对字符串应用base64编码和解码时会发生什么?这篇文章探讨了这些细节和需要避免的常见陷阱。

742次阅读  |  1年以前  |  阅读全文 »
SQL 优化经历:从 30248.271s 到 0.001s

今天分享一篇SQL优化的文章,用的数据库是mysql5.6。

504次阅读  |  1年以前  |  阅读全文 »
一文聊聊代码的可读性

作者通过本文聊聊自己写代码的要求及代码的可读性。

544次阅读  |  1年以前  |  阅读全文 »
20个Go编程最佳实践

在本教程中,我们将探讨 Golang 中的前 20 个最佳编码实践。这将帮助你编写有效的 Go 代码。

604次阅读  |  1年以前  |  阅读全文 »
Java中保持扩展性的几种套路和实现

在日常的开发中,作者总结了平常用到的一些低成本、保持扩展性的套路,分享出来,欢迎大家讨论。

647次阅读  |  1年以前  |  阅读全文 »
C++高级编程:构建高效稳定接口与深入对象设计技巧

类是C++中的主要抽象单位。你应该将抽象原则应用于你的类,尽可能将接口与实现分离。具体来说,你应该使所有数据成员私有,并可选择性地提供getter和setter方法。这就是SpreadsheetCell类的实现方式:m\_value是私有的,而公共的set()方法设置值,getValue()和getString()方法检索值。

523次阅读  |  1年以前  |  阅读全文 »
C++ 20类型转换指南:使用场景与最佳实践

C++ 提供了五种特定的类型转换:`const_cast<>()`、`static_cast<>()`、`reinterpret_cast<>()`、`dynamic_cast<>()` 和 C++20 引入的 `std::bit_cast<>()`。

537次阅读  |  1年以前  |  阅读全文 »
深入前端调试原理

调试是开发者需要掌握的一项重要的技能, 它能够帮助我们快速定位和修复代码中的问题。本文主要介绍前端调试的基本原理。

606次阅读  |  1年以前  |  阅读全文 »
干货收藏 | Git常用命令思维导图

如今 Git 已经成为绝大多数开发者的选择, Tom Preston-Werner、Chris Wanstrath 和 PJ Hyett 在 2007 年 10 月推出的 Github 已经成为了全球最大的开发者网站。

533次阅读  |  1年以前  |  阅读全文 »
Nginx模块现在可以用 Rust 编写了

Nginx是一款高性能、开源的 Web 服务器和反向代理服务器软件,大部分互联网网站都在使用它。NGINX 最初由Igor Sysoev于2002年创建,此后一直在发展,并广泛流行于 Web 托管、内容交付和应用程序部署领域。它的性能、可扩展性和多功能优势闻名于世,也因此成为提供 Web 内容和有效管理互联网流量的网站关键组件。

550次阅读  |  1年以前  |  阅读全文 »
现代主流浏览器集成的6大安全技术

浏览器安全与Web安全标准紧密相关, 厂商在提升浏览器安全性的同时也积极参与安全标准的制定, 使自己的产品获得竞争优势,而新的安全标准又促使厂商积极更新自己的产品, 以免被市场淘汰, 这样便形成良性竞争, 使浏览器在安全性各方面越来越趋于完善。

443次阅读  |  1年以前  |  阅读全文 »
Monorepo 仓库代码质量提升实践

Monorepo 是一种项目代码管理方式,指单个仓库中管理多个项目,有助于简化代码共享、版本控制、构建和部署等方面的复杂性,并提供更好的可重用性和协作性。

545次阅读  |  1年以前  |  阅读全文 »
一日一技:如何同时在多个分支写代码?

当我们在维护公司项目时,可能会遇到这样的场景:我正在开发一个新功能,突然需要修一个Bug。本文从分支管理解度进行说明。

455次阅读  |  1年以前  |  阅读全文 »
Empty Base Optimization

那么到底什么是ebo呢?其实ebo就是当一个类的对象理想内存占用可以为0的时候,把这个类的对象作为另一个类的成员时,把其内存占用变为0的一种优化方法。

637次阅读  |  1年以前  |  阅读全文 »
如何开源自己的 Go 库

本着开源精神,如果我们想将自己开发的包共享出去,让其他人也能使用go get命令获取到它们,应该如何做呢?本文将以开源至 Github 平台为例,展示其流程。

509次阅读  |  1年以前  |  阅读全文 »
「我在淘天做技术」双11背后的营销技术体系

每年的双11都会吸引亿级消费者、百万商家参与,会场、红包、优惠券,各类玩法目不暇接。作为大促的主阵地,淘天营销技术经过多年大促的历练沉淀,沉淀了丰富的业务能力,支撑了大促、营销频道等各种营销业务场景。本文将为大家介绍下营销技术体系。

570次阅读  |  1年以前  |  阅读全文 »
Nginx反向代理OpenAI接口

准备条件:一台境外服务器,比如说腾讯云新加坡服务器;安装有Nginx环境,centos可以用yum install nginx安装;一个域名,比如说www.xxxx.com,以及对应的ssl证书(腾讯云可以在这里申请免费的证书)。

550次阅读  |  1年以前  |  阅读全文 »
听我的,日志还是得好好打!

作为开发,我们都熟悉日志的重要性,良好的日志,能帮助我们快速定位到错误发生的详情和原因,并快速解决问题。

489次阅读  |  1年以前  |  阅读全文 »
如何实现异步通知的重试机制

工作中经常要和第三方做对接,比如支付、电子合同等系统。操作成功之后,第三方会发送异步的通知,返回最终的处理结果,使用异步而不是使用同步通知,是为了加快系统响应速度,防止线程阻塞。任务处理完成后通过异步的通知,发送给对应的服务端。

463次阅读  |  1年以前  |  阅读全文 »
为什么阿里不推荐使用 keySet() 遍历HashMap?

HashMap相信所有学Java的都一定不会感到陌生,作为一个非常重用且非常实用的Java提供的容器,它在我们的代码里面随处可见。因此遍历操作也是我们经常会使用到的。

457次阅读  |  1年以前  |  阅读全文 »
数据库简史:不谈美国我们和韩国还差多远?

通过以上的回顾已经看到,中国企业在通过投资、并购,获得产品基础,开始增强自身实力,探索也早已起步。中国企业和韩国数据库企业的合作也早已经频繁展开。但是中国数据库最缺少的仍然是实践场景,只有当中国企业以国产数据库为首选时,中国数据库的春天才会真正到来。

460次阅读  |  1年以前  |  阅读全文 »
.git 目录里到底包含了什么?

我猜想,大多数阅读这篇博客的人们几乎每天都在使用 git。但你们有没有真正看过 git 生成的 .git 文件夹中的内容呢?现在,让我们一同探索,并理解里面发生了什么。

432次阅读  |  1年以前  |  阅读全文 »
前端:从零到一, 轻松把自己的网站部署到服务器

作为一名前端工程师, 没有个自己的网站怎么行, 接下来我就来带大家介绍一下如何从零到一, 配置并部署自己的网站到服务器.

460次阅读  |  1年以前  |  阅读全文 »
被 Next.js 的环境变量给坑了一把...

最近在使用 Next.js 时遇到了一个问题,最后原因竟是 .env 取值问题,为这个问题花费了数小时的时间,希望看到这篇文章的朋友,如果遇到类似问题,不要重蹈覆辙吧。

459次阅读  |  1年以前  |  阅读全文 »
缓存一致性协议与内存屏障

计算机科学领域的任何问题都可以通过增加一个中间层来解决。所以需要一个比内存更快的存取设备做缓冲,尽量做到和CPU一样快,这样就不需要每次都从低速的内存中获取数据了。

535次阅读  |  1年以前  |  阅读全文 »
百度搜索深度学习模型业务及优化实践

纵观搜索的发展的历程,从最初的人工特征,到浅层的机器学习模型,再到不断加深的深度学习模型,我们对用户需求和候选内容的理解能力是持续的提升的,能力提升到一定程度就会影响架构的变化。近几年,架构最大的变化之一,是大规模的深层知识学习模型和系统的落地。

466次阅读  |  1年以前  |  阅读全文 »
微前端时代:打造高效、灵活的前端开发体系

本篇文章全文约 1.5 万字,目的是系统化地介绍微前端及其核心技术,并介绍了什么是微前端以及为什么我们需要它。我们还讨论了在众多微前端框架中如何选择适合自己系统的框架,并分享了一些业界使用微前端的实践案例。最后,我们提到了微前端目前存在的一些局限性和争议点。总之,希望这篇文章能为大家提供有用的信息。

511次阅读  |  1年以前  |  阅读全文 »
三万字盘点Spring/Boot的那些常用扩展点

Spring对于每个Java后端程序员来说肯定不陌生,日常开发和面试必备的。本文就来盘点Spring/SpringBoot常见的扩展点,同时也来看看常见的开源框架是如何基于这些扩展点跟Spring/SpringBoot整合的。

660次阅读  |  1年以前  |  阅读全文 »
如何去阅读源码,我总结了18条心法

那么到底该如何去阅读源码呢?这里我总结了18条心法,助你修炼神功。

486次阅读  |  1年以前  |  阅读全文 »
关于 OpenGL 的渲染上下文

OpenGL 的上下文(OpenGL context)是一个 OpenGL 绘图环境的抽象概念,它包括了所有 OpenGL 状态信息和资源,以便OpenGL能够正确地渲染图形。

3700次阅读  |  1年以前  |  阅读全文 »
译:为什么你应该用 React Query

React Query 为您提供了大量功能,如缓存、重试、轮询、数据同步、预取……以及数以百万计的其他功能,这些功能远远超出了本文的讨论范围。如果你不需要这些功能也没关系,但我仍然认为这不应该阻止你使用 React Query。

609次阅读  |  1年以前  |  阅读全文 »
当你需要读一个 47M 的 JSON 文件

大文件的读写,咱还是老老实实用字节码文件存储吧。小文件可以使用 Json,反序列化速度够用,可读性也可以有明显的提升。

2961次阅读  |  1年以前  |  阅读全文 »
从浏览器原理出发聊聊Chrome插件

本文从浏览器架构演进、插件运行机制、插件基本介绍和一些常见的插件实现思路几个方向聊聊Chrome插件。

672次阅读  |  1年以前  |  阅读全文 »

Copyright© 2013-2019

京ICP备2023019179号-2