我们正在被 DDoS 攻击,但是我们啥也不干,随便攻击...

news2024/11/27 8:40:55

最近,一场激烈的攻防大战在网络世界悄然上演。

主角不是什么国家安全局或者黑客组织,而是一家名不见经传的创业公司——TablePlus。

DDoS 攻击者们摩拳擦掌,跃跃欲试。他们从四面八方蜂拥而至,誓要用数亿次请求把 TablePlus 的服务器挤爆、搞垮。特别是那些来自德国和英国的流量,简直有如滔滔洪水,一泻千里。短短5天内,他们就发起了 8000 多万次下载请求,妄图耗尽 TablePlus 的带宽和计算资源。

面对这场声势浩大的入侵,TablePlus 的小伙伴们该怎么办?他们会惊慌失措,向 Cloudflare 求救吗?会忙着屏蔽 IP,关闭服务吗?

答案竟然是:啥也不干,该吃吃该喝喝,好似根本没发生什么大事儿。要不是 CPU 偶尔从 0%蹦到 1%,服务器都要怀疑自己是不是患上了 “分离性身份识别障碍”。TablePlus 家的服务器个个身经百战,这点小打小闹根本不放在眼里。

这帮子大胆的家伙,究竟是从哪儿来的底气?

这种淡定,源自 TablePlus 在架构设计上的独特选择——单体应用。与当下流行的微服务架构不同,TablePlus 选择将所有功能集中在一个服务中,包括 API、网站前端、支付等等。这种 “大一统” 的架构虽然看似简单,但却有着不可小觑的优势。

别人为微服务、容器、编排操碎了心,TablePlus 只需一个二进制文件,拿来就上。

为了最大化单体应用的性能,TablePlus 在技术选型上颇下了一番功夫。他们选择了 Golang 和 Rust 这两种高性能语言作为主要开发工具。凭借着这两门语言出色的并发处理能力和内存管理机制,单个 TablePlus 服务就能轻松应对数十亿的请求。

但光有优秀的语言还不够,TablePlus 在软件工程的各个方面也精益求精,力求将单体服务的性能发挥到极致。

他们会对关键数据库建立索引,提升查询效率;

对核心数据库和非核心数据 (如日志) 进行分离存储,确保主要业务不受影响;

使用 Nginx 作为反向代理,灵活调度和分发请求;

借助 Cloudflare 提供的 CDN、SSL 等功能,进一步提升性能和安全性。

精心打造的单体服务,再加上优化到位的部署环境,让 TablePlus 拥有了一套简洁而高效的架构。在高并发场景下,这套架构展现出了惊人的性能,即便面对 DDoS 攻击也从容不迫。

当然,功夫再高也怕菜刀。再厉害的服务,也得琢磨怎么用起来。在部署方面,TablePlus 同样追求简单和高效。他们充分利用了 Golang 和 Rust 的特性,将服务编译成单个二进制文件,然后直接在 Linux 服务器上运行。这种 “无依赖” 的部署方式,不仅简化了运维工作,也最大限度地发挥了服务器的性能。

TablePlus 的工程师们还利用 Linux 的 Systemctl 来管理服务进程,实现了自动重启、监控等功能,进一步提高了系统的可靠性。相比动辄上百个微服务的复杂架构,TablePlus 的部署可谓简单到了极致。

就这样,TablePlus 凭借精心设计的单体应用架构和极简部署,将系统性能和效率提升到了一个新的高度。面对 DDoS 攻击,他们从容应对,展现出了架构设计的威力。

什么容器、VM、编排,在 TablePlus 面前都成了花拳绣腿,不值一提。

有了单体应用真经护体,TablePlus 在 DDoS 攻击面前自若从容。数亿请求来了,系统服务扛得住;流量再猛,Cloudflare 顶得住;就算攻击再升级,单体架构依然屹立不倒。

这个故事告诉我们,任何事物都有它的两面性。单体应用看似简陋,但在特定场景下也能一展其威风。键是要根据自身业务特点,因地制宜,扬长避短,就像 TablePlus 这般,知己知彼,百战不殆。

在这个讲究 “敏捷”、“弹性” 的年代,TablePlus 的 “单刀赴会” 无疑有些悲壮。但他们用自己的实际行动告诉世人:做好架构,管它单体还是微服务;强调性能,其他都是浮云

这个故事也提醒我们,技术从来就不是非黑即白的。评判一项技术的好坏,不能脱离具体的应用场景。适合自己的,才是最好的。保持开放和创新的心态,拥抱变化,我们才能在瞬息万变的技术浪潮中,找准自己的定位。

微服务固然潮流,但单体应用也自有其存在的理由。关键是找准定位,扬长避短,让优势最大化。

就像 TablePlus 这样,当别人还在追逐时髦时,他们已经悄悄登上了性能的巅峰。这种 “逆势而为” 的勇气和智慧,值得我们每个人思考和学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1558500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis 常见数据结构及命令

目录 一.Redis常见的数据结构 二.Redis数据结构对应的命令 1.String类型 2.Hash类型 3.List类型 4.Set类型 5.Sorted Set类型 一.Redis常见的数据结构 Redis支持多种数据结构,包括字符串(string)、哈希(hash)、…

STM32的芯片无法在线调试的情况分析

问题描述 本博客的目的在于帮助网友尽快地解决问题, 避免浪费时间, 查漏补缺。 在stm32的开发过程中,有时会遇到"STM No Target connected"的错误提示,这说明MDK开发环境无法与目标设备进行通信,导致无法烧…

【JavaSE】类和对象详解(上)

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 类和对象 类的组成 对类的理解 成员变量的访问和类方法的调用 this 抛出一个问题 this的作用 初始化成员变量 未初始化的成员变量 代码举例 就地初始化 构…

Autodesk Maya 2025 mac玛雅三维动画特效软件

Autodesk Maya 2025 for Mac是一款功能强大、操作简便的三维动画软件,适用于电影、电视、游戏、建筑、工业设计、虚拟现实和动画等领域。无论是专业设计师还是初学者,都可以通过Maya 2025实现自己的创意和想法,创作出高质量的三维作品。 软件…

浅谈Spring体系的理解

浅谈Spring知识体系 Spring Framework架构图Spring家族技术生态全景图XMind汇总 本文不涉及细节,主要回答两个问题: Spring家族技术生态全景图有哪些Spring Framework架构下每个模块有哪些东西,以及部分模块之间的关联关系 Spring Framework架…

探究贪心算法:特点与实际应用

探究贪心算法:特点与实际应用 探究贪心算法:特点与实际应用📝 摘要🚀 引言📋 正文内容(详细介绍)📌 小结📊 表格总结🎯 总结🔮 未来展望&#x1f…

【Redis教程0x08】详解Redis过期删除策略内存淘汰策略

引言 Redis的过期删除策略和内存淘汰策略是经常被问道的问题,这两个机制都是做删除操作,但是触发的条件和使用的策略是不同的。今天就来深入理解一下这两个策略。 过期删除策略 Redis 是可以对 key 设置过期时间的,因此需要有相应的机制将…

智能文档合规检测系统:在央企国企招标采购领域的应用

一、背景介绍 在央企国企采购过程中,合规性是一个不可忽视的重要方面。采购方需要确保供应商的资质、业绩、规模等条件符合采购要求,同时避免设置不合理的条件限制或排斥潜在供应商。为了提高采购效率和确保合规性,智能文档合规检测系统应运…

40.网络游戏逆向分析与漏洞攻防-角色管理功能通信分析-角色删除功能的数据包失败的分析

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 内容参考于: 易道云信息技术研究院VIP课 上一个内容:39.角色数据的维…

Linux|centos7-postgresql数据库|yum安装数据库和配置repmgr高可用集群以及repmgr的日常管理工作

一、 前言 postgresql 的yum部署其实还是有点东西的,本文就做一个小小的记录,高可用方面repmgr插件还是非常不错的,但如何部署以及部署后如何使用也是一个难点,因此,也在本文里做一个记录 环境介绍: 第…

TonyBai go语言第一课 学习笔记

文章目录 大纲前置篇显式 大纲 前置篇 显式 package main import "fmt" func main() { var a int16 5 var b int 8 var c int64 c a b fmt.Printf("%d\n", c) }如果我们编译这段程序,将得到类似这样的编译器错误:“invalid op…

jmeter性能压测的标准和实战中会遇到的问题

1.性能标准建议 CPU 使用率:不超过 70% 内存使用率:不超过 70% 磁盘:%util到达80%严重繁忙 (os.disIO.filesystem.writeKbPS 每秒写入的千字节) 响应时间:95%的响应时间不超过8000ms 事务成功率&#xff1a…

计算线上点坐标

综上代码 void point_on_line(float* res, float* p, float* q, float lambda) {float tmp 1 - lambda;res[0] tmp* p[0] lambda * q[0];res[1] tmp* p[1] lambda * q[1];res[2] tmp* p[2] lambda * q[2]; }

基于SpringBoot华强北二手手机商城系统

点赞收藏关注 → 私信领取本源代码、数据库 一、项目概述 项目名称:基于SpringBoot华强北二手手机商城 项目架构:B/S架构 开发语言:Java语言 主要技术:SpringBootMybatisMySQL 运行环境:Windows7以上、JDK1.8、M…

【微服务】Nacos(配置中心)

文章目录 1.AP和CP1.基本介绍2.说明 2.Nacos配置中心实例1.架构图2.在Nacos Server加入配置1.配置列表,加号2.加入配置3.点击发布,然后返回4.还可以编辑 3. 创建 Nacos 配置客户端模块获取配置中心信息1.创建子模块 e-commerce-nacos-config-client50002…

【研发日记】Matlab/Simulink开箱报告(十一)——Requirements Toolbox

目录 前言 Requirements Toolbox 编写需求 需求联接设计 需求跟踪开发进度 追溯性矩阵 分析和应用 总结 前言 见《开箱报告,Simulink Toolbox库模块使用指南(六)——S-Fuction模块(TLC)》 见《开箱报告&#x…

弧形导轨在自动化设备中的传动原理

在自动化机械系统中,弧形导轨是一种常见的轨道结构,用于支撑和引导物体沿着指定的弧线运动。其工作原理基于几何学和物理学的原理。 弧形导轨通常由一个弧形的轨道和一个移动部件组成。轨道一般呈弧形,其几何形状可以是圆弧、椭圆弧等&#x…

JavaScript基础语法–变量

文章目录 认识JavaScript变量程序中变量的数据(记录)–变量变量的命名格式在Java script中变量定义包含两部分1. 变量声明(高级JS引擎接下来定义一个变量)2. 其他的写法 变量命名的规范(遵守)变量的练习a. …

使用 eNSP 模拟交换机防御 ARP 泛洪攻击

一、介绍 ARP(地址解析协议)泛洪攻击是一种网络攻击手法,利用 ARP 协议的工作方式来实施。ARP 协议用于将 IP 地址映射到 MAC 地址,以便在局域网中发送数据包。ARP 泛洪攻击的基本原理是向网络中广播大量伪造的 ARP 请求&#xf…

Doris实践——票务平台的实时数仓建设

目录 前言 一、引入 Doris原因 二、基于Doris搭建数据平台 2.1 构建实时数仓 2.2 Flink CDC全库同步 三、基于Doris进行OLAP报表开发 四、未来规划 原文大佬介绍的这篇票务平台的实时数仓建设有借鉴意义,现摘抄下来用作沉淀学习。如有侵权,请告知…