文盘Rust -- r2d2 实现redis连接池

作者:贾世闻 我们在开发应用后端系统的时候经常要和各种数据库、缓存等资源打交道。这一期,我们聊聊如何访问redis 并将资源池化。 在一个应用后端程序访问redis主要要做的工作有两个,单例和池化。 在后端应用集成redis,我们主要用到以下几个crate:​ ​once_cell​​​、​ ​re

ThreadLocal源码解析及实战应用

ThreadLocal是一个关于创建线程局部变量的类。 通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。而使用ThreadLocal创建的变量只能被当前线程访问,其他线程则无法访问和修改。ThreadLocal在设计之初就是为解决并发问题而提供一种方案,每个线程维护一份自己的数据,达到线程隔离的效果。

rust入坑指南之ownership

这篇文章我们介绍一下rust的一个核心概念 ownership Ownership是Rust语言的一个核心概念,它决定了一个值在程序中的生命周期以及对其访问权限的限制。

微服务拆分治理最佳实践

随着业务快速发展,各种问题越来越明显,急需对系统进行微服务改造优化。经过思考,整体改造将分为三个阶段进行:数据库拆分、应用拆分、数据访问权限收口。

从一次CPU打满到ReDos攻击和防范

web 应用服务器 CPU 消耗打到 99%,排查后发现是因为 ReDoS 导致了服务器发生了资源被耗尽、访问系统缓慢的问题。本片文章主要介绍ReDos 攻击的原理、常见场景以及防范和解决方案。

京东LBS推荐算法实践

现有的同城购业务围绕京东即时零售能力搭建了到店、到家两种业务场景。同城业务与现有业务进行互补,利用高频,时效性快的特点,可以有效提升主站复访复购频次,是零售的重要战略方向。

系统内存管理:虚拟内存、内存分段与分页、页表缓存TLB以及Linux内存管理

虚拟内存的主要作用是提供更大的地址空间,使得每个进程都可以拥有大量的虚拟内存,而不受物理内存大小的限制。此外,虚拟内存还可以提供内存保护和共享的机制,保护每个进程的内存空间不被其他进程非法访问,并允许多个进程共享同一份物理内存数据,提高了系统的资源利用率。虚拟内存的实现方式有分段和分页两种,其中分页机制更为常用和灵活。分页机制将虚拟内存划分为固定大小的页,将每个进程的虚拟地址空间映射到物理内存的页

百亿规模京东实时浏览记录系统的设计与实现

浏览记录系统主要用来记录京东用户的实时浏览记录,并提供实时查询浏览数据的功能。在线用户访问一次商品详情页,浏览记录系统就会记录用户的一条浏览数据,并针对该浏览数据进行商品维度去重等一系列处理并存储。然后用户可以通过我的京东或其他入口查询用户的实时浏览商品记录,实时性可以达到毫秒级。目前本系统可以为京东每个用户提供最近200条的浏览记录查询展示。

谈了千百遍的数据一致性

今天来说一个老生常谈的问题,来看一个实际案例:业务中往往都会通过缓存来提高查询效率,降低数据库的压力,尤其是在分布式高并发场景下,大量的请求直接访问Mysql很容易造成性能问题。

使用虚拟机搭建代码托管、持续集成系统

目录 目录 摘要 下载镜像 安装系统 创建虚拟机 安装系统 检查网络 开启 SSH 远程登录功能 使用 windows powershell 连接终端 Windows Terminal 添加快速访问终端 端口映射 防火墙设置 外网访问 Tailscale 安装与使用 自建中继服务器 共享主机文件夹

分布式事务保姆级教程

⼀、本地事务 1、ACID特性 原⼦性(A) ⼀致性(C) 隔离性(I) 持久性(D) 2、事务的隔离级别 两个或多个事务并发操作相同的数据的时候事务之间的相互访问关系 查询当前隔离级别:select @@tx_isolation 设置隔离级别:set session transaction iso

数据库连接池长时间不用,乍一用还用不了,结果是防火墙的锅

前言 我们的程序,在实际的网络部署时,一般比较复杂,会经过很多的网络设备,防火墙就是其中的一种。做开发的同事,一般对这块了解不多,也很可能被防火墙坑到。比如,应用一般需要访问数据库,为了避免频繁建立连接,一般是会提前建立一个连接池,每次来一个请求,就从连接池取一个连接来用,用完再归还到池子里。 连接

聊聊 QianKun JS 沙箱的那些事

我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。 本文作者:空山 什么是沙箱 沙箱即 SandBox,它是一种安全机制,用于严格控制访问资源。通过在程序中创建一个独立的运行环境,把一些来源不可信、具有破坏力或者又是无法

Java 21新特性:Sequenced Collections(有序集合)

在JDK 21中,Sequenced Collections的引入带来了新的接口和方法来简化集合处理。此增强功能旨在解决访问Java中各种集合类型的第一个和最后一个元素需要非统一且麻烦处理场景。 下面一起通过本文来了解一下不同集合处理示例。 Sequenced Collections接口 Seque

基于SqlSugar的开发框架循序渐进介绍(24)-- 使用Serialize.Linq对Lambda表达式进行序列化和反序列化

在上篇随笔《基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求》中介绍了基于一个接口,实现对两种不同接入方式(直接访问数据库实现,基于Web API代理类实现)的处理,由于定义的接口中,我们为了方便,也是用了Lambda表达式的进行一些参数的处理,那么如果在Web API代理类中,Lambda表达式是不能直接传递给Web API的控

Tomcat知识点整理

> 从学习起就开始接触tomcat, 解压, 点击运行, 然后放文件夹里面会自动部署, 可以通过ip访问. 在这里主要记录一些tomcat相关的知识点 ## 配置文件解析(留位置) server.xml/web.xml等 - shutdown 8005 - 自动部署问题 - manager - 配置

各种排序算法实现(JAVA)

转载: https://blog.csdn.net/qq_42453117/article/details/100036347 Exer010Sort01BubbleSortV1 import java.util.Arrays; ​ /** * 本代码的知识点: * 冒泡排序 * 它重复地访问过要排

Python常见面试题009. 元组和列表有什么区别

009. 元组和列表有什么区别 这个题是简单的,但要拿满分或者说高分不容易 相同点 | 共性 | 说明 | | | | | 可以存放任意元素 | 一般都放同类型 | | 支持索引访问 | 甚至是负数 | | 支持切片操作 | | | 逗号分隔元素 | | | 都是有序集合(容器) | | | 可以随

Hbase一:Hbase介绍及特点

转载请注明出处: 1.Google的三篇论文 2003年,Google发布Google File System论文,(GFS)这是一个可扩展的分布 式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价 的普通硬件上,提供容错功能。从根本上说:文件被分割成很多块,使用冗余的方 式储

mysql锁及锁出现总结

转载请注明出处: 1.按锁粒度分类: 行锁:锁某行数据,锁粒度最小,并发度高;; 行锁是指加锁的时候锁住的是表的某一行或多行记录,多个事务访问同一张表时,只有被锁住的记录不能访问,其他的记录可正常访问; 行锁是对所有行级别锁的一个统称,比如下面说的记录锁、间隙锁、临键锁都是属于行锁 表锁:锁整张表,