这是一份微博后端架构师李尔摩斯的ppt,主要介绍了微博话题服务高性能降级设计。核心内容是通过抛弃非核心业务和模块,减轻服务自身压力,避免故障扩散,保证核心业务稳定运行。技术上利用LUA脚本定时读取配置文件刷新到共享内存,Nginx获取共享内存配置快速应用新的降级规则。 介绍了微博话题服务高性能降级设计的需求和目标 阐述了三种降级方式:抛弃非核心业务、抛弃非核心模块、抛弃高耦 […]
这是一份微博后端架构师李尔摩斯的ppt,主要介绍了微博话题服务高性能降级设计。核心内容是通过抛弃非核心业务和模块,减轻服务自身压力,避免故障扩散,保证核心业务稳定运行。技术上利用LUA脚本定时读取配置文件刷新到共享内存,Nginx获取共享内存配置快速应用新的降级规则。 介绍了微博话题服务高性能降级设计的需求和目标 阐述了三种降级方式:抛弃非核心业务、抛弃非核心模块、抛弃高耦 […]
一. 背景介绍 笔者在这个系列的第一篇文章《一文看懂”ParNew+CMS”垃圾回收器》中详细介绍了”ParNew+CMS”垃圾回收器的工作原理。文章最后笔者提到CMS垃圾回收器有两个比较显著的问题,一个是长时间运行无法避免Full GC,一个是Remark阶段STW时间较长。正是因为这两个问题的存在,CMS垃圾回收器在JDK9被标记弃用,慢慢开始退出历史舞台。有走的,就有 […]
这是”大内存服务GC实践”的第三篇文章,前面两篇文章分别系统地介绍了”ParNew+CMS”组合垃圾回收器的原理以及FullGC的一些排查思路。分别见: 【大内存服务GC实践】- 一文看懂”ParNew+CMS”垃圾回收器 【大内存服务GC实践】- “ParNew+CMS”实践案例 : HiveMetastore FullGC诊断优化 本篇文章重点结合生产线上NameNod […]
Metastore服务是Hive的核心组成部分,是整个hadoop大数据体系的元数据基石,所有数据表相关schema信息、partition信息、元数据统计信息等都存储在Metastore所依赖的MySQL中,通过Metastore服务执行各种元数据操作。Metastore服务一旦长时间异常,所有依赖服务(诸如HiveServer、Spark、Impala等)就都会出现功能 […]
因为工作的需要,笔者前前后后分别接触了HBase RegionServer、HiveServerMetastore以及HDFS NameNode这些大内存JVM服务。 在和这些JVM系统打交道的过程中,GC优化始终是一个绕不过去的话题,有的是因为GC导致NameNode RPC请求耗时增大,有的是因为GC导致RegionServer/HiveServer/Metastore […]
*All illustrations in this article are by Ugonna Thelma If you are familiar with Object-Oriented Programming, then you’ve probably heard about the SOLID principles. These five software de […]
Tech 导读 本文介绍了使用 ChatGPT逐步创建 一个简单的Java框架,包括构思、交流、深入优化、逐步完善和性能测试等步骤。 亲爱的Javaer们,在平时编码的过程中,你是否曾想过编写一个Java框架去为开发提效?但是要么编写框架时感觉无从下手,不知道从哪开始。要么有思路了后对某个功能实现的技术细节不了解,空有想法而无法实现。如果你遇到了这些问题,看完这篇文章你也能 […]
Tech 导读 分层单体架构风格是分层思想在单体架构中的应用,其关注于技术视角的职责分层。同时,基于不同层变化速率的不同,在一定程度上控制变化在系统内的传播,有助于提升系统的稳定性。但这种技术视角而非业务视角的关注点隔离,导致了问题域与工程实现之间的Gap,这种割裂会导致系统认知复杂度的提升。 01 经典单体分层架构 在今年的敏捷团队建设中,我通过Suite执行器实现了一 […]
一、背景 在预发环境中,由消息驱动最终触发执行事务来写库存,但是导致MySQL发生死锁,写库存失败。 com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRoll backException: rpc error: code = Aborted desc = Deadlock found when trying to get lo […]
在我看来并不是MVC的基础上增加领域层,使用充血模型,解耦基础服务,我的代码就符合DDD了。 为什么要使用DDD? DDD分为战略部分跟战术部分,相信大家都认同DDD的核心在战略而非战术。而战略方面的核心我认为在业务建模,领域划分、统一语言等都在为业务建模服务。 为什么业务建模重要? 以前的开发流程有什么问题? 先说结论,开发人员交付的程序对业务方,产品人员,测 […]
作者:vivo互联网技术团队 Li Guanyun、 Jessica Chen 一、背景 2021年2月,收到反馈,视频APP某核心接口高峰期响应慢,影响用户体验。 通过监控发现,接口响应慢主要是P99耗时高引起的,怀疑与该服务的GC有关,该服务典型的一个实例GC表现如下图: 可以看出,在观察周期里: 平均每10分钟Young GC次数66次,峰值为470次; […]
Tech 导读 本文主要介绍在实际的开发过程当中,如何使用GPT帮助开发,优化流程;恰逢今年京东20周年庆,文末也介绍了如何与618大促实际的业务相结合,来提升应用价值。本文所有代码和脚本均是利用GPT生成。 01 场景一:写代码 在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索 […]
此篇文章只聚焦于如何配置一个比较合理的采用CMS作为垃圾回收器的JVM参数。首先要说的是,JDK8要使用CMS,那么必须显示申明,因为它采用的默认垃圾回收器是ParallelGC。如何验证它默认采用的垃圾回收器呢?非常简单,运行如下代码: package com.afei.test.main; import java.util.ArrayList; import java. […]
服务器内存问题是影响应用程序性能和稳定性的重要因素之一,需要及时排查和优化。本文介绍了某核心服务内存问题排查与解决过程。首先在JVM与大对象优化上进行了有效的实践,其次在故障转移与大对象监控上提出了可靠的落地方案。最后,总结了内存优化需要考虑的其他问题。 一、问题描述 音乐业务中,core服务主要提供歌曲、歌手等元数据与用户资产查询。随着元数据与用户资产查询量的增长,一些J […]
JVM垃圾回收器CMS原理与调优 1. JVM运行原理简介 我们写好的代码,是要通过JVM才能运行的。 JVM 想要执行一个类,首先要加载类,在加载类之前,需要先编译成字节码class文件; 然后就执行类的加载过程,JVM 加载类的话,需要类加载器; 类加载器是分层级的,遵循双亲委派机制。 最上层是Bootstrap ClassLoder,加载java的核心类库, […]
BeanUtils (1) BigDecimal (1) CDC (1) ETL (1) github (1) heap (1) LLaMa (1) MAT (5) MDM (1) Sora (1) TCP (1) 业务图 (1) 企业应用 (1) 停机迁移 (1) 内存泄露 (4) 协议 (1) 可用性 (1) 基础设施层 (1) 堆内存 (1) 堆外存 (1) 大事记 (1) 实时协作 (1) 对象转换 (1) 应用架构 (1) 异常 (3) 技术规范 (1) 技术选型 (4) 提示工程 (1) 数据交换 (1) 数据共享 (1) 数据双写 (1) 日期 (1) 时间 (1) 时间线 (1) 术语 (1) 架构方案 (14) 流程图 (1) 精度 (1) 线程模型 (1) 经验分享 (1) 网络编程 (2) 解耦 (1) 软件复杂性 (1) 软件工程 (1) 重构 (3) 重试 (1) 隔离级别 (1) 集群扩容 (1) 领域层 (3) 领域模型 (1)
COPYRIGHT © 2014-2024 verysu.com . ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang