缓存 优缺点 分布式

分布式事务

参考: 《凤凰架构》,原书 https://icyfenix.cn/ 本节所说的分布式事务(Distributed Transaction)特指多个服务同时访问多个数据源的事务处理机制。 CAP定理(Consistency、Availability、Partition Tolerance Theor ......
分布式 事务

Redis中的缓存雪崩、缓存击穿、缓存穿透问题

1. 什么是缓存雪崩 当我们提到缓存系统中的问题,缓存雪崩是一个经常被讨论的话题。缓存雪崩是指在某一时刻发生大量的缓存失效,导致瞬间大量的请求直接打到了数据库,可能会导致数据库瞬间压力过大甚至宕机。尤其在高并发的系统中,这种情况会导致连锁反应,整个系统可能会崩溃。 1.1 缓存雪崩的成因 大量缓存同 ......
缓存 雪崩 问题 Redis

SpringBoot 缓存之 @Cacheable 详细介绍

简介缓存介绍Spring 从 3.1 开始就引入了对 Cache 的支持。定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术。并支持使用 JCache(JSR-107)注解 ......
缓存 SpringBoot Cacheable

MESI缓存一致性协议以及Volatile

MESI(Modified, Exclusive, Shared, Invalid)是一种缓存一致性协议,用于解决多处理器系统中,多个处理器对同一块内存的并发读写可能导致的数据不一致性问题。MESI协议维护了每个缓存行的四种状态: Modified(M): 表示缓存行已被修改,并且是唯一的拷贝。当其 ......
一致性 缓存 Volatile MESI

Xxl-job 分布式调度任务使用

Xxl-job 分布式调度任务使用 一.XXL-job 产品介绍 1.简介: XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展. 作者是大众点评的许雪里.目前最新版本为v2.x. 2.特性功能: 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单, ......
分布式 任务 Xxl-job Xxl job

分布式应用开发的核心技术系列之——基于TCP/IP的原始消息设计

本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 本文的内容主要围绕以下几个部分: TCP/IP的简单介绍。 消息的介绍。 基于消息分类的传输格式(流类型和XML类型)。 消息体系的组成。 TCP/IP的简单介绍 TCP ......
应用开发 分布式 核心 消息 技术

JVM进程缓存

多级缓存 一般的开发中,请求到达服务器以后,会从缓存中读取想要的数据,如果没有则查找数据库 但是当请求太多时,服务器(如Tomcat)不一定能够承担如此巨大的请求;并且,如果Tomcat服务器能够承受这些巨大的请求压力,也势必考验数据库的抗压能力所以就需要使用多级缓存来给服务器减少压力。 多级缓存示 ......
缓存 进程 JVM

分布式ID

参考: JavaGuide:《分布式 id》 1、数据库主键自增 优点 :实现起来比较简单、ID 有序递增、存储消耗空间小 缺点 : 支持的并发量不大、存在数据库单点问题(可以使用数据库集群解决,不过增加了复杂度)、ID 没有具体业务含义、安全问题(比如根据订单 ID 的递增规律就能推算出每天的订单 ......
分布式

浅谈分布式事务及解决方案

1 背景 在讲述分布式事务的概念之前,我们先来回顾下事务相关的一些概念。 1.1 事务的基本概念 就是一个程序执行单元,里面的操作要么全部执行成功,要么全部执行失败,不允许只成功一半另外一半执行失败的事情发生。例如一段事务代码做了两次数据库更新操作,那么这两次数据库操作要么全部执行成功,要么全部回滚 ......
分布式 解决方案 事务 方案

keep-alive实现tab标签页缓存

标签页缓存 实现效果: 已经打开的tab页签,再次访问不重新加载;关闭tab页签后再次访问,则重新加载 实现技术: keep-alive组件的include属性指定页面缓存 一、修改Main.vue 1、 代码: <keep-alive :include="cachPage"> <router-vi ......
缓存 keep-alive 标签 alive keep

为什么不建议用redis做金融级分布式锁

最主要的问题是: 1.redis是AP而非CP的,所以在比如集群迁移等情况时可能产生两个应用在同一时间读取同一个key的数据是不一致的; 2.redis的key过期机制,可能加锁后业务执行了很长时间(STW或者IO很久)导致加锁区域的代码可能被另外一个进程/线程进来了; 3.目前金融级的分布式锁应该 ......
分布式 建议 金融 redis

Java多线程编程的优点和缺点

优点: 加快响应用户的时间:多线程允许并发执行多个任务,可以充分利用多核处理器,从而提高程序的性能和响应速度。比如我们经常用的迅雷下载,都喜欢多开几个线程去下载,谁都不愿意用一个线程去下载,为什么呢?答案很简单,就是多个线程下载快啊。 简化程序结构、模块化、异步化:例如我们实现电商系统,下订单和给用 ......
线程 优点 缺点 Java

mybatis、mybatis-plus的二级缓存使用

需求 因有些数据查询量很大,很费数据库资源,且每次查询都是不怎么变更的数据,所以需要通过缓存进行减轻数据库压力,继而选择通过myabtis的二级缓存来实现。 使用步棸 第一步:yml配置需开启mybatis-plus的二级缓存。 # MyBatis Plus的配置项 mybatis-plus: co ......
mybatis 缓存 mybatis-plus plus

SAGA分布式

Saga是由一系列的本地事务构成。每一个本地事务在更新完数据库之后,会发布一条消息或者一个事件来触发Saga中的下一个本地事务的执行。如果一个本地事务因为某些业务规则无法满足而失败,Saga会执行在这个失败的事务之前成功提交的所有事务的补偿操作。 Saga的实现有很多种方式,其中最流行的两种方式是: ......
分布式 SAGA

有手就会做!保姆级Jmeter分布式压测操作流程(图文并茂)

分布式压测原理 分布式压测操作 保证本机和执行机的JDK和Jmeter版本一致 配置Jmeter环境变量 配置Jmeter配置文件 上传每个执行机服务jmeter chmod -R 755 apache-jmeter-5.1.1/ 执行机配置写自己的ip 控制机配置所有执行机ip,把server.r ......
分布式 图文并茂 保姆 流程 图文

分布式一致性算法Raft

raft算法之所以容易理解,其一是他将一致性问题划分成几个子问题,这几个子问题都是独立、可理解和解释的。从传统的思维来讲,对于一个复杂的系统或者工程,都是大化小,分解实现,然后去尝试融合解决整体逻辑。 一、Raft详解 Raft算法是分布式系统开发首选的共识算法。比如现在流行Etcd、Consul、 ......
一致性 分布式 算法 Raft

【分布式】解决树莓派4B-64位更换清华源问题(GPG error:because the public key is not available)

【分布式】解决树莓派4B-64位更换清华源问题(GPG error:because the public key is not available) 别出BUG求求了 于 2022-04-30 16:15:38 发布 阅读量3.1k 收藏 18 点赞数 7分类专栏: 分布式 文章标签: debian ......
树莓 分布式 available because public

分布式一致性协议 之 Paxos协议

1、什么是Paxos Paxos协议其实说的就是Paxos算法, Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一。 Paxos由 莱斯利·兰伯特(Leslie Lamport)于1998年在《The Part-Time Parliamen ......
一致性 分布式 Paxos

分布式存储系统需要解决的问题

0.数据集群的两种架构 数据集中集群 (多主从) 数据分散集群 数据同步 主节点环形空间 + 从节点position 去判断是该增量还是全量。 同步方式 以数据快照的方式同步 -- 通常是全量 以命令的方式(执行语句的方式同步) -- 增量 数据快照生成过程中的写入问题 以mvcc方式,可重复读的方 ......
分布式 问题 系统

C#内存缓存链表BytesListBuffer

C#自带MemoryStream,可以作为内存缓存使用,用来存储byte[]数据,但是MemoryStream的扩展机制是通过获取整块连续内存来缓存数据,当需要缓存较大数据时,虽然空闲内存可能足够,但是可能找不到足够大的整块连续内存而导致扩展失败产生out of memory的异常。另外,对于很多缓 ......
BytesListBuffer 缓存 内存

Snowflake算法生成分布式ID实现Go、C++

Snowflake 算法是一种用于生成全局唯一 ID 的分布式算法。它在分布式系统中被广泛应用,用于解决多节点同时生成 ID 的冲突问题。 Snowflake 算法的核心思想是将一个64位的长整数(Long)分解成多个部分,每个部分代表不同的信息,例如时间戳、节点ID和序列号。通过这种方式,Snow ......
分布式 算法 Snowflake

Redis缓存系统常见问题及解决方案

首先了解以下Redis缓存机制 Redis缓存基于内存,查询时先进入Redis缓存,如若查询不到,则进入MySQL数据库查询信息。数据库取到则更新缓存并返回结果,否则返回空。 缓存穿透问题 什么是缓存穿透 当用户在 Redis 缓存系统执行一条无效查询时,这条无效查询将穿透 Redis 缓存系统并M ......

java——redis随笔——实战——商户查询缓存

把key做了下代码优化: /** * 根据id查询商铺信息 * @param id 商铺id * @return 商铺详情数据 */ @Override public Result queryById(Long id) { // key要唯一 就用id String key = CACHE_SHOP ......
商户 缓存 实战 随笔 redis

Julia课程4:分布式计算

在本章中,我们将学习Julia中实现分布式算法的基本工具。我们介绍了Julia中的用于分布式计算的两种主要编程模型:1)Julia标准库附带的基于任务的模型;2)Julia与消息传递接口MPI的绑定。 学习完本章节后,我们应该能够: 使用两种不同的编程模型(基于任务的模型和MPI)在Julia中实现 ......
分布式 课程 Julia

分布式系统理解

什么是分布式系统 任务在多个相对独立的物理节点上进行(即软件或硬件分布在不同的计算机设备上)简单说,就是不同的业务模块,部署在不同服务器。彼此通过消息传递进行通信。解决了高并发问题。 分布式特点 CAP:代表了分布式系统的三个相互矛盾的属性 1.Consistency(一致性): 访问所有节点,得到 ......
分布式 系统

springboot启动时缓存数据

一、Emos系统的常量数据 在sys_config数据表中保存了Emos系统的常量配置信息,其中就包括了考勤部分的常量信息。例如每天上班考勤从几点开始,截止到几点。下班考勤从几点开始,几点结束。 因为这些常量信息跟考勤模块息息相关,所以我们要编写Java代码,在SpringBoot项目启动的时候,就 ......
缓存 springboot 数据

博学谷学习记录 自我总结 用心分享 | ElasticSearch分布式检索引擎

1、Elasticsearch基本概念 Elasticsearch是基于Apache Lucene的开源、分布式、可扩展、实时的数据搜索和分析引擎。ES不仅仅支持全文搜索,还是一个分布式文档数据库,每个字段都是被索引的数据并且可被搜索。总体来说有如下特性: 一个分布式的实时文档存储引擎,每个字段都可 ......

Kafka:用于日志处理的分布式消息系统

周末躺不平,摆不烂,卷不动,随便读一篇paper吧 原文:Kafka: a Distributed Messaging System for Log Processing 作者:Jay Kreps / Neha Narkhede / Jun Rao 这三尊神就是当初在LinkedIn开发Kafka的 ......
分布式 消息 系统 Kafka 日志

Redis分布式锁实现

FreeRedis 实现源码 /// <summary> /// 开启分布式锁,若超时返回null /// </summary> /// <param name="name">锁名称</param> /// <param name="timeoutSeconds">超时(秒)</param> /// ......
分布式 Redis

全球洋流分布、性质

手画,丑,见谅 正常洋流 北赤道暖流 分布:赤道偏北的洋面上。 特点:直线向西流。 本质:风海流(信风吹拂)。 南赤道暖流 分布:赤道偏南的洋面上。 特点:直线向西流。 本质:风海流(信风吹拂)。 西风漂流 分布:南半球西风带。 特点:向东流,环绕地球。 本质:风海流(西风吹拂)。 赤道逆流 分布: ......
洋流 性质 全球