网站架构 & 性能调优
文章平均质量分 94
大型网站技术架构整理
程序猿进阶
梦想成为自由职业者
展开
-
数据中台架构设计
由于当前项目需要对接多个不同的数据源,同时涉及到多端处理,而且需要考虑海量数据处理,还有总部与分部架构部署问题,因而整体技术栈倾向于大数据和分表分库式处理数据层接入问题。简单讲,项目分为和两个子系统,其中数据中台主要对接不同数据源,提供数据聚合,统一的数据报表。业务中台分为基础服务和业务服务,基础服务主要是提供统一网关,统一权限,日志,定时任务等服务。原创 2024-08-26 05:30:00 · 1042 阅读 · 82 评论 -
TCP 协议的 time_wait 超时时间
连接,如果上一次连接还有数据报文,由于网络拥塞等原因,在新连接建立后才到达(且序列号一致),此时就会干扰到新的连接了,当然出现这种问题的概率比较低。,最大报文生存时间)的时间,这个时间通常为几分钟,之后才会释放该端口。报文不断向受害者的服务器发送连接请求,但是连接并不能完成三次握手,最终服务器会不断创建半连接,引发系统崩溃。因此,需要通过调整连接池的参数,如最大连接数量、连接超时时间等,来避免。状态下的连接,那么连接池的效率可能会受到影响,从而导致系统性能下降。原创 2024-07-29 05:00:00 · 3447 阅读 · 49 评论 -
Cat 详解
Cat]是基于Java开发的分布式实时监控系统,有一个非常强大和丰富的可视化报表界面,在Cat提供的报表界面中有非常多的功能,几乎能看到你想要的任何维度的报表数据。缺点就是集成的时候具有代码的侵入性。在中间件(RPC、数据库、缓存、MQ 等)框架中得到广泛应用,为各业务线提供系统的性能指标、健康状况、实时告警等服务。开源地址链接CAT15台 CAT物理监控集群,单台机器支持15w QPS,2000+业务应用,7000+应用服务器,50TB消息,每天450亿消息。Cat报表说明。原创 2024-07-28 10:32:07 · 1840 阅读 · 30 评论 -
CodeReview 规范及实施
你的代码整体结构清晰,逻辑合理,很容易理解。随着业务压力增大,引发代码质量下降,代码质量的下降导致了开发效率的降低,维护成功高等问题,开发效率下降后又加重了业务压力,最终陷入了死亡三角的内耗之中。,因为开发者比你更了解整个系统的业务逻辑和架构,你的意见可能不适合该系统或架构,因此需要友好的交流,让他们知道他们的代码是对的,继续保持,自己则更进一步的了解整个系统和架构,避免第二次犯同样的错误。代码评审是一个学习的机会,通过审查他人的代码,可以学习到新的编码技巧和最佳实践,同时也可以分享自己的知识和经验。原创 2024-03-11 05:00:00 · 3645 阅读 · 134 评论 -
线上问题整理
架构师必备技能,问题排查原创 2024-01-14 10:52:38 · 2392 阅读 · 71 评论 -
CPU 使用率和负载Load
CPU说明等待执行的任务很多,但是通常任务多CPU使用率也会比较高,如果低就说明CPU根本没工作,那些很多的任务处于等待状态,可能进程僵死了。CPU说明任务少,但是任务执行时间长,有可能是程序本身有问题,如果没有问题那么计算完成后则利用率会下降。CPU使用率是单位时间内CPU繁忙程度的统计。平均负载不仅包括正在使用CPU的进程,还包括等待CPU或I/O的进程。因此,两者不能等同,有两种常见的场景如下所述:【1】CPU密集型应用,大量进程在等待或使用CPU,此时CPU使用率与平均负载呈正相关状态。原创 2023-12-02 21:03:13 · 5026 阅读 · 57 评论 -
前端性能优化之LightHouse
我们使用F12打开当前项目的控制台,点击LightHouse后能够看到点击后,就会对网页进行性能分析。需要注意的是浏览器的缓存会影响性能分析的分数,所以在分析之前需要对缓存进行清理。【1】:是否清除缓存,模拟用户第一次进入页面就勾选,清除缓存;【2】:模拟限制,勾选之后Lighthouse在测试过程中限制网速与CPU。Latency延迟:150ms;Throughput上行下行网速:;;CPU4x CPU谷歌开发者工具也可设置网络限速。CPU4x CPU;谷歌开发者工具也可设置网络限速。【1】原创 2023-11-19 00:13:21 · 1065 阅读 · 215 评论 -
SOA架构
面向服务的架构(SOA)是一种软件开发方法,它使用称为服务的软件组件来创建业务应用程序。每项服务提供一种业务能力,并且服务也可以跨平台和语言相互通信。开发人员使用SOA来重用不同系统中的服务,或者组合几个独立的服务来执行复杂的任务。原创 2023-02-25 16:20:15 · 1206 阅读 · 22 评论 -
DDD[领域驱动模型]
领域驱动设计`DDD`占据着非常重要的位置,可以说`DDD`是应用架构设计的核心。`DDD`是一套综合软件系统分析和设计的面向对象建模方法。过去系统分析和系统设计都是分离的,正如“系统分析师” 和“系统设计师” 两种职称考试一样,这样割裂的结果导致,需求分析的结果无法直接进行设计编程,而能够进行编程运行的代码却扭曲需求,导致客户运行软件后才发现很多功能不是自己想要的,而且软件不能快速跟随需求变化。DDD则打破了这种隔阂,提出了领域模型概念,统一了分析和设计编程,使得软件能够更灵活快速跟随需求变化。原创 2023-02-24 21:48:32 · 1375 阅读 · 29 评论 -
网站故障案例总结
一、写日志引发故障【故障现象】:应用服务集群发布后不久就出现多台服务器相继报警,硬盘可用空间低于警戒值,并且很快有服务器宕机。登录在线上服务器,发现 log 文件夹里面的文件迅速增加,不断消耗磁盘空间。【原因分析】:这是一个普通的应用服务器集群,不需要存储数据,因此服务器使用的是一块 100GB 的小硬盘,安装完操作系统、Web 服务器、Java 虚拟机、应用程序后,空闲空间就剩几十GB,正常情况下这些磁盘的空间足够,但是该应用的开发人员将 log输出的 level全局配置为 Debug。这样一次简单原创 2021-04-21 23:06:11 · 545 阅读 · 20 评论