网关编程:如何通过用户网关和缓存降低研发成本?

如果说用户的流量就像波涛汹涌的海浪,那网关就是防御冲击的堤坝。在大型的互联网项目里,网关必不可少,是我们目前最好用的防御手段。通过网关,我们能把大量的流量分流到…

存储成本:如何推算日志中心的实现成本?

在技术选型时,我们往往会仔细考量各项成本,尤其关注实现成本,这种“斤斤计较”其实能带来直接的经济效益。那么,你是否有系统地思考过如何计算这些成本呢?本节课将通…

系统设计目标:如何提升系统性能?

高并发系统设计的三大目标:高性能、高可用、可扩展
高并发系统设计的核心目标是要保证系统在处理大量并发请求时,能够保持高性能、高可用性以及良好的可扩展性。这三个方…

系统怎样做到高可用?

高可用系统设计的思路
一个成熟系统的可用性需要从系统设计和系统运维两方面来做保障,两者共同作用,缺一不可。那么如何从这两方面入手,解决系统高可用的问题呢?

系…

如何让系统易于扩展?

高可扩展性是架构设计中的关键指标,它意味着系统能够通过增加服务器数量来线性提升处理能力,从而应对更高的流量和并发需求。有人可能会问:“为什么在设计之初不直接规划…

池化技术:如何减少频繁创建数据库连接的性能损耗?

一天,公司 CEO 将你叫到会议室,向你展示了一个新出现的商业机会,希望你能带领一位同事,快速推出一款面向某垂直领域的电商系统。面对有限的人手和紧迫的时间,你毫…

强烈建议你不要再使用Date类了!!!

一、有什么问题吗java.util.Date?
java.util.Date(Date从现在开始)是一个糟糕的类型,这解释了为什么它的大部分内容在 Java 1…

Redis底层数据结构详解

1. 底层数据结构, 与Redis Value Type之间的关系
对于Redis的使用者来说, Redis作为Key-Value型的内存数据库, 其Value…

消息队列之 MetaQ 和 Kafka 哪个更香!

本篇文章首先介绍MetaQ消息队列,然后介绍了作者对MetaQ和Kafka这两个消息队列的理解。
消息队列
消息队列是一个用于接收消息、存储消息并且转发消息的…

分享一例有意思的灰度设计缺陷,浅谈灰度方案的设计

灰度很重要,灰度的策略也需要结合实际情况进行灵活的调整,本文跟大家分享了一个前些时间发现的灰度设计bug。
一、案例分享
跟大家分享一个前些时间发现的灰度设计…

技术与业务同行:做业务的技术人

本文结合了作者的工作经验提出了一些建议,希望每一位技术同学都可以找到适合自己的成长方向和路径。
做业务就好比打仗,团队是我们的归属。
在团队中,我们既要通力协…

探究|Go JSON 三方包哪家强?性能对比

本文作者从评判标准、功能评测、性能评测等多方面剖析三方库哪些家强,并给出了比较务实的建议。(后台回复【Java单元测试实战】可获取电子书)
引言
为了小伙伴理…

领域驱动设计DDD|从入门到代码实践

在本文中,作者将借鉴《实现领域驱动设计》的做法,介绍领域驱动设计的基本概念的同时,用一个虚拟的公司和一个虚拟的项目,把领域驱动设计进行落地实践。
背景
为什么…

探索|Spring并行初始化加速的思路和实践

作者通过看过的两篇文章发现实现Spring初始化加速的思路和方案有很多类似之处,通过本文记录一下当时的思考和实践。
前言
之前的一篇文章《一些杂想:Java老…

从设计模式谈业务开发

本文主要讲述我们如何通过一个主干业务流程承接多个业务场景并在数据上可适配到多端型多场景,实现在服务端高质量高效率的“包接口”。
一、背景
前台业务同学在业务承…

一次访问Redis延时高问题排查与总结

作者抽丝剥茧的记录了一次访问Redis延时高问题的排查和总结。
背景
20230308 在某地域进行了线上压测, 发现接口RT频繁超时, 性能下降严重, P5…

关于“重构”的一些思考

本文将从一个新人数次修改CR comments的角度探讨代码重构的定义、目的以及常见的重构方法,并以简单的代码案例来说明代码重构的具体实现。

任何一个傻瓜都…

实战总结|复杂系统设计原则与案例

本文主要讲述了应对复杂性的一些原则和经验,通过实际案例解构设计思想,个人认为好的设计是体现在「职责分离」、「抽象分层」和「变化扩展」上,在类的结构设计上尤其要…

一文读懂OSS、NAS、EBS有什么区别?

本文主要介绍常用的存储类型及它们之间的对比差异,辅助帮助大家在不同需求和场景下选择合适的存储类型。
近期,AIGC、GPT大模型、数据中台等热点话题备受关注,…

浅挖编码中遇到的循环依赖问题

本文通过实际案例挖掘编码中遇到的循环依赖问题。
一、问题简述
// 在离线打标服务类中注入审批服务,在“申请打标”时调用
public class Port…