同一个账号如何实现多端登录强制下线的功能

在实际的开发中有很多的业务场景会涉及到同一个账号只能允许在一个地方登录,典型的如在一些视频类的网站中为了避免一个VIP会员被多人同时使用的问题,通过就会设计强制…

整理常见的商品超卖的解决方案

在日常的购物中,针对普通商品是卖的越多越好,但是某些商品为了吸引用户购买而调整商品价格到让人看了不得不买的程度,由于是亏本促销卖,所以这种商品的数据都是有上限的…

日志系统的架构设计方案

日志对于我们开发人员是非常重要的,当我们的系统会出现异常或者业务出现错误的时候,我们都是利用日志来定位问题,问题定位到之后就可以有针对性的来解决这个问题,下面我…

项目中的BO、DTO、VO、PO如何区分以及规范的使用

我们在日常开发中经常会看到各种的以‘O’结尾的类,那么这些类代表什么含义呢,我们如何规范的使用这些类呢?今天我们就来聊一聊这个话题。
1、区分BO、DTO、VO…

如何设计一套单点登录系统

前言
在企业发展初期,使用的后台管理系统还比较少,一个或者两个。
以电商系统为例,在起步阶段,可能只有一个商城下单系统和一个后端管理产品和库存的系统。
随着业务…

中国支付清算体系顶层设计

大家好,我是隐墨星辰,从事境内/跨境支付架构设计十余年。今天想聊一下中国支付清算系统的顶层设计。
在从事第三方支付的前面几年,对中国整体的支付清算体系没有深入…

图解支付系统整体设计

我喜欢马斯克经常挂在嘴边的第一性原理,探寻事务的本质,所以这篇文章也尝试化繁为简,讲清楚在线支付系统最核心的一些概念。
进入正题前,先讲个小故事。
那天早上,我…

如何保证分库分表后ID的全局唯一性?

我们了解了分布式存储的两个核心问题:数据冗余和数据分片,以及在传统关系型数据库中是如何解决这些问题的。当我们面临高并发的查询数据请求时,可以使用主从读写分离的方…

网易云原生架构实践之服务治理

网易云微服务架构
在优化版本控制策略并成功研发和集成自动化构建与发布工具,实现“项目工程化”后,网易云开始探索分布式服务化架构。此举旨在应对海量用户需求及产品快…

在成为架构师之前,不妨培养这4点能力

最关键的是定义问题
爱因斯坦曾说过:“提出问题比解决问题更重要。” 这句话揭示了定义问题的重要性。定义问题是脑力活,而解决问题更像是体力活。然而,很多人习惯于看…

用户passport 服务Token:如何降低用户身份鉴权的流量压力?

许多网站在初期阶段通常使用 Session 方式来实现用户登录鉴权。具体而言,当用户成功登录后,服务端会将用户的相关信息存储在 Session 缓存 中,并生成…

高频面试题:Cache Aside机制

Cache Aside机制是一种缓存更新策略,在不需要缓存和数据库强一致性的业务场景下,Cache Aside机制是首选方案。

读策略:
优先从缓存读取数据,…

电商中常见的Mysql与ElasticSearch数据同步的方案

在实际项目开发中,常用Mysql作为业务数据库,ElasticSearch作为查询库。ElasticSearch主要用来应对海量数据的复杂查询,提高查询效率和缓…

巧用注解编程,轻松搞定审计日志服务!

01、背景介绍

任何一个软件系统,都不可避免的会碰到【信息安全】这个词,尤其是对于刚入行的新手,比如我,我刚入行的时候,领导让我做一个数据报表导出功能,我就按…

整理常见的网站在线人数统计方案

在日常的网站运营中,需要实时统计某个网站的在线人数,通过该指标来帮助运营人员更好地维护网站业务。下面就这个问题做一些实现方案的罗列。
1、监听session方式…

3分钟理清QPS、TPS、RT、吞吐量以及它们直接的关系

在我们业务开发或者面试的过程中,经常会遇到QPS、TPS、RT、吞吐量这些概念,今天我们就来聊一聊这些概念的所代表的含义。
1、QPS
QPS是每秒的查询率,它…

从架构层面上理解一条sql的执行流程

Mysql是我们经常使用的存储工具,我们有没有想过一条select语句是如何执行的呢?今天我们从架构层面上来看看select的执行流程。
1、Mysql的架构

为什么大家都说 ThreadLocal 存在内存泄漏的风险?

01、背景介绍
在 Java web 项目中,想必很多的同学对ThreadLocal这个类并不陌生,它最常用的应用场景就是用来做对象的跨层传递,避免多次传递,…

JAVA:集成 Drools 业务规则引擎的技术指南

1、简述
Drools 是一个强大的业务规则引擎,适用于需要动态决策或规则管理的场景。它允许开发人员将业务逻辑与应用代码分离,使得业务人员可以通过规则文件维护和…

SpringBoot 整合 JPA 轻松搞定数据表增删改查!

01、背景介绍
在之前的文章中,我们介绍了通过JdbcTemplate来实现数据库的访问和读写操作。当有一定的开发经验之后,你会发现所有涉及到数据库操作的代码…