zl程序教程

浅析分布式锁

  • 浅析分布式搜索引擎

    浅析分布式搜索引擎

    大家好,又见面了,我是你们的朋友全栈君。1. 基础知识1.1 认识Lucene维基百科的定义:Lucene是一套用于全文检索和搜索的开放源码程序库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程序接口,能够做全文索引和搜索,在Java开发环境里Lucene是一个成熟的免费开放源代码工具;就其本身而论,Lucene是现在并且是这几年,最受欢迎的免费Java信息检索程序库

    日期 2023-06-12 10:48:40     
  • 浅析三款大规模分布式文件系统架构设计

    浅析三款大规模分布式文件系统架构设计

    什么是文件系统当提到文件系统,大部分人都很陌生。但我们每个人几乎每天都会使用到文件系统,比如大家打开 Windows、macOS 或者 Linux,不管是用资源管理器还是 Finder,都是在和文件系统打交道。如果大家有自己动手装过操作系统的话,第一次安装的时候一定会有一个步骤就是要格式化磁盘,格式化的时候就需要选择磁盘需要用哪个文件系统。维基百科上的关于文件系统的定义是: In computin

    日期 2023-06-12 10:48:40     
  • 浅析三款大规模分布式文件系统架构设计

    浅析三款大规模分布式文件系统架构设计

    作者 |  高昌健  当提到文件系统时,大部分人都很陌生。但实际上我们几乎每天都会使用它。比如,大家打开 Windows、macOS 或者 Linux,不管是用资源管理器还是 Finder,都是在和文件系统打交道。如果大家曾经手动安装过操作系统,一定会记得在第一次安装时需要格式化磁盘,格式化时就需要为磁盘选择使用哪个文件系统。维基百科上的关于文件系统 [1] 的定义是:In computing,

    日期 2023-06-12 10:48:40     
  • 浅析Redis分布式锁

    浅析Redis分布式锁

    近期工作遇到需要业务场景如下,需要每天定时推送给另一系统一批数据,但是由于系统是集群部署的,会造成统一情况下任务争用的情况,所以需要增加分布式锁来保证一定时间范围内有一个Job来完成定时任务. 前期考虑的方案有采用ZooKeeper分布式任务,Quartz分布式任务调度,但是由于Zookeeper需要增加额外组件,Quartz需要增加表,并且项目中现在已经有Redis这一组件存在,所以考虑采用R

    日期 2023-06-12 10:48:40     
  • 浅析PHP分布式中Redis实现Session的方法

    浅析PHP分布式中Redis实现Session的方法

    本文介绍的是PHP分布式中Redis实现Session的方法,下面话不多说,直接先来看两个方法是什么 方法一: 找到配置文件php.ini,修改为下面内容,保存并重启服务 session.save_handler = redis session.save_path = tcp://127.0.0.1:6379 方法二: 直接在代码中加入以下内容: ini_set( session

    日期 2023-06-12 10:48:40     
  • Redis及其实践精选浅析数据缓存与分布式存储(有关redis书籍推荐)

    Redis及其实践精选浅析数据缓存与分布式存储(有关redis书籍推荐)

    Redis是一种高性能的开源内存数据库,可以更快速地读取和存储数据,它也是一种可以用于数据缓存和分布式存储的最佳技术之一。本文将介绍Redis的基本概念,以及使用它做数据缓存和分布式存储的实践精选。 Redis是一个高性能的key-value内存数据库,可以比传统的关系型数据库更快地读写数据,而且还支持更多的数据类型。相比于Redis单机部署,Redis集群可以提供更加可靠的分布式存储,通过将

    日期 2023-06-12 10:48:40     
  • 浅析“分布式锁”的实现方式

    浅析“分布式锁”的实现方式

    前言 我们在开发应用时,如果需要对一个共享变量进行多线程同步访问的时候,我们可以使用Java多线程的各个技能点来处理,保证完美运行无BUG。 但是这里的都只是单机应用,即在同一个JVM中;然后随着业务发展、微服务化,一个应用需要部署到多台服务器上然后做负载均衡,大概的架构图如下: 在

    日期 2023-06-12 10:48:40     
  • 浅析分布式系统中的 Linearizability

    浅析分布式系统中的 Linearizability

    在分布式系统里,出于可靠性(reliability)或者性能的考虑,数据通常会被复制为多个副本。因此,系统需要定义一组协议,来规定用户读写多副本时的行为。这组协议称之为 consistency model。最终一致性(eventually consistency),linearizability(atomic consistency)是不同类型的一致性模型。下图是最终一致性模型的示例,用户 B/C

    日期 2023-06-12 10:48:40     
  • 浅析阿里数据技术架构(下)大规模分布式知识图谱

    浅析阿里数据技术架构(下)大规模分布式知识图谱

    阿里数据要做的是:把数据真正打通,深度挖掘数据的价值,为业务创新应用提供数据决策基础和依据。 下面具体介绍我们在大规模分布式知识图谱上的技术实践。 为什么需要知识图谱? 大规模知识图谱抽象也是一种图计算。基于大规模分布式知识图谱做了哪些工作?我们为什么要做这样一件事情? 阿里巴巴的生态非常丰富,而丰富的业态背后给我们数据工作者带来的困难就是,我们常常需要接入各种数据,并将他们有效地管理

    日期 2023-06-12 10:48:40     
  • OceanBase架构浅析_OceanBase分布式数据库

    OceanBase架构浅析_OceanBase分布式数据库

    OceanBase简介   OceanBase是阿里集团研发的可扩展的关系数据库,实现了数千亿条记录、数百TB数据上的跨行跨表事务,截止到2012年8月,支持了收藏夹、直通车报表、天猫评价等OLTP和OLAP在线业务,线上数据量已经超过一千亿条。   从模块划分的角度看,OceanB

    日期 2023-06-12 10:48:40     
  • 浅析redis setIfAbsent的用法及在分布式锁上的应用及同步锁的缺陷

    浅析redis setIfAbsent的用法及在分布式锁上的应用及同步锁的缺陷

    一、业务场景:同步锁的问题与分布式锁的应用 1、redis的基本命令 (1)SETNX命令(SET if Not eXists)   语法:SETNX key value   功能:当且仅当 key 不存在,将 key 的值设为 value ,并返回1;若给定的 key 已经存在,则 SETNX 不做任何动作,并返回0。 (2)expire命令   语法:expire KEY seconds  

    日期 2023-06-12 10:48:40     
  • 浅析分布式一致性算法 - Raft算法:定义、为什么需要一致性、强/弱一致性分类区别、raft三种状态、领导选举算法流程、日志复制流程、安全选举限制、如何解决split brain的问题

    浅析分布式一致性算法 - Raft算法:定义、为什么需要一致性、强/弱一致性分类区别、raft三种状态、领导选举算法流程、日志复制流程、安全选举限制、如何解决split brain的问题

      一致性算法的定义:一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。 一、为什么需要一致性 1、数据不能存在单个节点(主机)上,否则可能出现单点故障。 2、多个节点(主机)需要保证具有相同的数据。 3、一致性算法就是为了解决上面两个问题。 二、一致性分类 1、强一致性   说明:保证系统改变提交以后立即改变集群的状态。   模型:Paxos、Raft(muti-p

    日期 2023-06-12 10:48:40     
  • 浅析mybatis里的缓存机制 - 一级缓存、二级缓存、二级缓存多表查询的问题及解决、二级缓存分布式问题

    浅析mybatis里的缓存机制 - 一级缓存、二级缓存、二级缓存多表查询的问题及解决、二级缓存分布式问题

      除了懒加载,还有什么方法能提高查询效率呢?那就是缓存。   mybatis 为我们提供了一级缓存和二级缓存,可以通过下图来理解 1、一级缓存是SqlSession级别的缓存  —— 它是各自独立的   在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。   不同的sqlSession之间的缓存数据区域(HashMap)是互相

    日期 2023-06-12 10:48:40