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

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

图解IO多路复用的原理

IO多路复用我们经常可以听到的名词,那么什么是IO多路复用呢?下面我们用图解的方式来分析什么是IO多路复用。
1、文件描述符
在我们日常的开发中无论是磁盘、网络…

Python数据爬虫爬取超详细入门学习步骤(零基础入门)

1. 爬虫基础
1.1 爬虫定义与作用
网络爬虫,通常被称为网页蜘蛛或网络机器人,是一种按照一定规则自动抓取互联网信息的程序。爬虫技术使得我们能够从互联网的海量…

as-if-serial语义和happens-before原则

1、重排序
为了提高程序的执行性能,编译器(如JVM在编译Java代码)和处理器(如CPU在执行JVM字节码)常常会对指令做成重排序。
在Java中重排序有以下…

Linux安装Kafka以及避坑整理

1、什么是kafka
Kafka 是由Linkedin 公司开发的一个分布式、支持多分区、多副本,基于 Zookeeper的分布式消息流平台(高版本已经不再依赖…

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

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

提高系统的并发能力方案

面试中经常会被问到如何提高系统的并发能力,针对此问题我整理如下的提高系统并发能力的方案:
(1)分流方案:常见的的方案有负载均衡、数据库拆分/集群、消息队列
(…

深度剖析 AQS 设计原理,内容相当硬核!

一、背景介绍

在之前的文章中,我们介绍了 ReentrantLock、ReadWriteLock、CountDownLatch、CyclicBarrier、S…

徒手从零搭建一套ELK日志平台

在复杂的企业应用系统中,系统的服务每天都会产生很多的日志信息,如果没有一套高效记录和搜索日志的平台,那么开发人员和运维人员都无法定位服务和处理线上问题。因此一套…

如何实现在用户无感的情况下修复线上问题

我们经常会遇到一些线上需要及时修复的问题,但是如何在用户无感知的情况下悄悄的修复线上问题呢?今天聊一聊一些常见的在用户无感的情况下发布线上系统的方案。
1、Ng…

日志系统的架构设计方案

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

高并发下如何轻松的保证接口幂等性

日常的开发中有些接口对幂等性有严格的要求,如增加/扣减积分、用户支付/退款等场景,如果没有做接口的幂等性就会造成一定的资损或者用户投诉等问题。如下是增加积分过程…

在 golang 中执行 javascript 代码的方案详解

在 Golang 中执行 JavaScript 代码可以通过几种不同的方式来实现。通常,这些方法包括使用外部 JavaScript 引擎或通过调用 JavaS…

如何在 Golang 中执行 Python 脚本代码——两种方法

在许多应用场景中,我们可能需要在 Golang(Go 语言)程序中执行 Python 脚本,特别是在处理一些特定的功能时,比如数据分析、机器学习或文本处理。如…

深入解析线程的等待与唤醒机制,硬核干货!

01、背景介绍
在之前的线程文章中,我们介绍了synchronized和volatile关键字,使用它能解决线程同步的问题,但是它们无法解决线程之间协调和通信…

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

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

聊一聊比synchronized更强大的同步锁:ReentrantLock

01、背景介绍
采用synchronized进行加锁,这种锁一般都比较重,里面的实现机制也非常复杂,同时获取锁时必须一直等待,没有额外的尝试机制,如果编程不当…

lua 脚本语言基础语法

1、变量声明
a=1
b=2
local c=3
a,b=1,2
(1)lua中默认声明的变量是全局变量(a=1),如果当前文件A引用了另外的文件B,在B…

【并发编程技术】聊聊阻塞队列那些事

01、背景介绍
在之前的文章中,我们介绍了生产者和消费者模型的最基本实现思路,相信大家对它已经有一个初步的认识。
在 Java 的并发包里面还有一个非常重要的…

盘点并发编程中几个实用的线程同步技术

01、背景介绍
下面我们一起来了解一下这些常用的并发工具类!
02、常用并发工具类
2.1、CountDownLatch
CountDownLatch是 J…