分布式专题
文章平均质量分 91
兢兢业业的子牙
这个作者很懒,什么都没留下…
展开
-
分布式中几种服务注册与发现组件的原理与比较
前言在云计算和容器化技术发展火热的当下,对于微服务架构,服务注册与发现组件是必不可少的。在传统的服务架构中,服务的规模处于运维人员的可控范围内。当部署服务的多个节点时,一般使用静态配置的方式实现服务信息的设定。在微服务应用中,服务实例的数量和网络地址都是动态变化的,这对系统运维提出了巨大的挑战。因此,动态的服务注册与发现就显得尤为重要。解决的问题在一个分布式系统中,服务注册与发现组件主要解决两个问题:服务注册和服务发现。服务注册:服务实例将自身服务信息注册到注册中心。这部分服务信息包括服务所在主机I原创 2021-06-09 19:54:44 · 186 阅读 · 0 评论 -
springBoot整合thrift
前言: thrift的基础知识1.Thrift的服务端1.1.引入maven依赖 <parent> <artifactId>com.ajc.demo</artifactId> <groupId>org.example</groupId> <version>1.0-SNAPSHOT</version> </parent> <depende原创 2021-06-06 21:34:33 · 550 阅读 · 3 评论 -
熔断限流----Sentinel
1.功能特点丰富的应用场景:例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500台以下规模的集群的汇总运行情况。广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。完善原创 2021-05-23 22:43:10 · 446 阅读 · 2 评论 -
redis的数据结构zset---跳跃表
跳跃表是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。这么说,我们可能很难理解,我们可以先回忆一下链表。一、复习跳跃表1.1 什么是跳跃表对于一个单链表来讲,即便链表中存储的数据是有序的,如果我们要想在其中查找某个数据,也只能从头到尾遍历链表。这样查找效率就会很低,时间复杂度会很高,是 O(n)。如果我们想要提高其查找效率,可以考虑在链表上建索引的方式。每两个结点提取一个结点到上一级,我们把抽出来的那一级叫作索引。这个时候,我们假设要查找节点8,原创 2021-05-19 21:56:05 · 1149 阅读 · 0 评论 -
一文搞懂XXL-JOB任务调度平台
一、概述在平时的业务场景中,经常有一些场景需要使用定时任务,比如:时间驱动的场景:某个时间点发送优惠券,发送短信等等。批量处理数据:批量统计上个月的账单,统计上个月销售数据等等。固定频率的场景:每隔5分钟需要执行一次。所以定时任务在平时开发中并不少见,而且对于现在快速消费的时代,每天都需要发送各种推送,消息都需要依赖定时任务去完成,应用非常广泛。二、为什么需要任务调度平台在Java中,传统的定时任务实现方案,比如Timer,Quartz等都或多或少存在一些问题:不支持集群、不支持统计、原创 2021-05-16 13:04:45 · 1589 阅读 · 5 评论 -
Elasticsearch面试题
1. 什么是Elasticsearch?Elasticsearch 是一个基于 Lucene 的搜索引擎。它提供了具有 HTTP Web 界面和无架构 JSON 文档的分布式,多租户能力的全文搜索引擎。Elasticsearch 是用 Java 开发的,根据 Apache 许可条款作为开源发布。2. ES中的倒排索引是什么?传统的检索方式是通过文章,逐个遍历找到对应关键词的位置。倒排索引,是通过分词策略,形成了词和文章的映射关系表,也称倒排表,这种词典 + 映射表即为倒排索引。其中词典中存储词元原创 2021-05-12 22:07:48 · 877 阅读 · 9 评论 -
分布式事务几种解决方案
分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。以商品流水账单为例,我们拆分为商品购买系统,订单系统,支付系统。用户看中一件商品,点击购买。商品购买系统响应用户的点击,向订单系统插入一条订单信息。原创 2021-05-09 20:27:41 · 1563 阅读 · 5 评论 -
再也不怕被问到分布式锁----分布式锁的几种解决方案
1.什么是分布式锁为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。1.1 为什么要使用分布式锁假设一个场景:成员变量X是一个有有状态的对象,存在 JVM1、JVM2、JVM3 三个 JVM 内存中,成员变量 X同时都会在 JVM 分配一块内存,三个请求发过来同时对这个变量操作,显然结果是不对的,不是同时发过来,三个请求分别操作三个不同 JVM 内存区域的数据,变量 X 之间不存在共享,也不具有可见性,处理的结转载 2021-03-28 21:32:29 · 742 阅读 · 0 评论 -
Redis缓存中常见问题及解决方案
1.数据一致性的问题缓存应用和数据库在更新时经常会出现不一致的问题,采用哪种策略,值得去思考。从理论上来说,给缓存设置过期时间,是保证最终一致性的解决方案。这种方案下,我们可以对存入缓存的数据设置过期时间,所有的写操作以数据库为准,对缓存操作只是尽最大努力即可。也就是说如果数据库写成功,缓存更新失败,那么只要到达过期时间,则后面的读请求自然会从数据库中读取新值然后回填缓存。因此,接下来讨论的思...原创 2020-01-15 17:46:11 · 2168 阅读 · 0 评论 -
redis(三)SpringBoot整合redis 使用RedisTemplate
SpringBoot整合redis 使用RedisTemplate在数据结构,原理分析,适用场景 三篇中分别了解了redis的基本数据结构,基本原理分析,各种数据类型的适用场景,本次我们进行java操作redis.之前用的spring整合redis使用jedis操作,个人觉得有点麻烦,现在常使用springBoot,操作更方便,所以在这里学习使用springBoot整合redis 使用redis...原创 2020-01-15 15:20:02 · 594 阅读 · 0 评论 -
Redis各种数据类型的适用场景
1、字符串使用场景a) 缓存功能 典型使用场景:Redis作为缓存层,MySQL作为存储层,绝大部分请求的数据都是从Redis中获取,由于Redis具有支撑高并发的特性,所以缓存通常能起到加速读写和降低后端压力的作用。 开发提示:与MySQL等关系型数据库不同的是,Redis没有命令空间,而且也没有对键名有强制要求,但设计合理的键名,有利于防止键冲突和项目的可维护性,比较推荐...原创 2020-01-15 10:51:59 · 181 阅读 · 0 评论 -
redis(二) redis原理分析和 执行lua脚本
1.redis原理分析1.过期时间1.1设置过期时间在Redis中提供了Expire命令设置一个键的过期时间,到期以后Redis会自动删除它。这个在我们实际使用过程中用得非常多。EXPIRE命令的使用方法为EXPIRE key seconds其中seconds 参数表示键的过期时间,单位为秒。EXPIRE 返回值为1表示设置成功,0表示设置失败或者键不存在如果向知道一个键还有多久时...原创 2020-01-15 10:40:09 · 735 阅读 · 0 评论 -
redis(一) 基本数据结构
redis(一) 基本数据结构redis的简介 Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。,它以字典...原创 2020-01-15 09:29:43 · 206 阅读 · 0 评论 -
分布式事务
极速解决企业级分布式事务之spingCloud+tx-lcnhttps://blog.csdn.net/qq_33449307/article/details/102550878中我们实现了[springBoot+jpa+jta+atomikos实现分布式事务,模拟多数据源],这种方式基于2PC的,了解2PC,3PC会知道这些方式存在一些问题:1.引入了中间件中心化协调者 操作复杂化 一...原创 2019-11-30 20:44:23 · 254 阅读 · 0 评论 -
极速解决企业级分布式事务之spingCloud+tx-lcn
极速解决企业级分布式事务之spingCloud+tx-lcnhttps://blog.csdn.net/qq_33449307/article/details/102550878中我们实现了[springBoot+jpa+jta+atomikos实现分布式事务,模拟多数据源],这种方式基于2PC的,了解2PC,3PC会知道这些方式存在一些问题:1.引入了中间件中心化协调者 操作复杂化 一...原创 2019-10-22 23:18:40 · 664 阅读 · 0 评论 -
springBoot+jpa+jta+atomikos十分钟实现分布式事务,模拟多数据源
基于jta+atomikos解决分布式事务 模拟多数据源jta: Java Transactio API,即是java中对事务处理的api,api即是接口的意思.atomikos:Atomikos TransactionsEssentials 是一个为Java平台提供增值服务的并且开源类事务管理器,基于2PC协议.不明白XA 2PC 3PC TCC的同学可以花几分钟的时间去看一下.1....原创 2019-10-14 16:16:48 · 3082 阅读 · 1 评论 -
注解开发dubbo 如何设置方法级别的配置
如上图所示 用@Service设置类级别的配置 用注解开发dubbo 如何设置方法级别的内容原创 2019-09-26 10:11:48 · 976 阅读 · 4 评论 -
基于zookeeper实现配置中心
基于zookeeper实现配置中心api使用的是curator不知道curator的同学 请移步:https://blog.csdn.net/qq_33449307/article/details/100562669实现配置中心有两种模式:push pull**实现原理:**zookeeper采用的是推拉相结合的方式.客户端向服务端注册自己需要关注的节点.一旦节点数据发生变化.那么服务器端...原创 2019-09-06 16:33:29 · 477 阅读 · 0 评论 -
初始zookeeper,java客户端操作zookeeper
Zookeeper1. 初步认识Zookeeperzookeeper是一个开源的分布式协调服务,是由雅虎创建的,基于google chubby(分布式锁).分布式数据一致性的解决方案.1.1 zookeeper能做什么?数据的发布订阅(配置中心.比如:disconf),负载均衡(dubbo+zookeeper),命名服务,master选举(kafka,hadoop,hbase),分布式队列...原创 2019-09-05 17:27:29 · 217 阅读 · 0 评论