Sentinel

Java后端面试题

烈酒焚心 提交于 2020-11-19 06:34:45
标★号为重要知识点 id全局唯一且自增,如何实现? Redis的 incr 和 increby 自增原子命令 统一数据库的id发放 美团Leaf Leaf——美团点评分布式ID生成系统(批发号段) Twitter的snowflake算法 UUID ★如何设计算法压缩一段URL? 通过发号策略,给每一个过来的长地址,发一个号即可,小型系统直接用mysql的自增索引就搞定了。如果是大型应用,可以考虑各种分布式key-value系统做发号器。不停的自增就行了。第一个使用这个服务的人得到的短地址是 http://xx.xx/0 第二个是 http://xx.xx/1 第11个是 http://xx.xx/a 第依次往后,相当于实现了一个62进制的自增字段即可。 常用的url压缩算法是短地址映射法。具体步骤是: 将长网址用md5算法生成32位签名串,分为4段,,每段8个字符; 对这4段循环处理,取每段的8个字符, 将他看成16进制字符串与0x3fffffff(30位1)的位与操作,超过30位的忽略处理; 将每段得到的这30位又分成6段,每5位的数字作为字母表的索引取得特定字符,依次进行获得6位字符串; 这样一个md5字符串可以获得4个6位串,取里面的任意一个就可作为这个长url的短url地址。 ★Dubbo负载均衡策略? 随机、轮询、最少使用、一致性哈希(除了一致性哈希外,都有加权)

分布式缓存技术redis学习系列

耗尽温柔 提交于 2020-11-19 01:03:34
分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装以及操作redis问题整理 分布式缓存技术redis学习系列(二)——详细讲解redis数据结构(内存模型)以及常用命令 分布式缓存技术redis学习系列(三)——redis高级应用(主从、事务与锁、持久化) 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作) 分布式缓存技术redis学习系列(五)——spring-data-redis与JedisPool的区别、使用ShardedJedisPool与spring集成的实现及一致性哈希分析 分布式缓存技术redis学习系列(六)——sentinel哨兵机制 分布式缓存技术redis学习系列(七)——spring整合jediscluster 分布式缓存技术redis学习系列(八)——JedisCluster源码解读:集群初始化、slot(槽)的分配、值的存取 分布式缓存技术redis学习系列(九)——Redis主从实现读写分离 Jedis的Publish/Subscribe功能的使用 结合实际项目理解集群和分布式的关系 来源: oschina 链接: https://my.oschina.net/u/4316056/blog/4002586

我真的尽力了,最经典Redis面试14题,没时间复习就看这个吧

☆樱花仙子☆ 提交于 2020-11-18 23:53:43
前言 小编真的努力了,Redis面试官灵魂14问!你值得拥有! 1.redis 简介 简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以存写速度非常快,因 此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业 务场景。除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。 2.为什么要用 redis /为什么要用缓存 主要从“高性能”和“高并发”这两点来看待这个问题。 高性能 假如用户第一次访问数据库中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。将该用户访问的数据存在数 缓 存中,这样下一次再访问这些数据的时候就可以直接从缓存中获取了。操作缓存就是直接操作内存,所以速度相当 快。 如果数据库中的对应数据改变的之后,同步改变缓存中相应的数据即可! 高并发 直接操作缓存能够承受的请求是远远大于直接访问数据库的,所以我们可以考虑把数据库中的部分数据转移到缓存中 去,这样用户的一部分请求会直接到缓存这里而不用经过数据库。 3.为什么要用 redis 而不用 map/guava 做缓存? 缓存分为本地缓存和分布式缓存。以 Java 为例,使用自带的 map 或者 guava 实现的是本地缓存,最主要的特点是 轻量以及快速,生命周期随着

Spring Cloud 系列之 Gateway 服务网关(四)

▼魔方 西西 提交于 2020-11-18 20:38:01
Spring Cloud 系列之 Gateway 服务网关(四) 本篇文章为系列文章,未读第一集的同学请猛戳这里: Spring Cloud 系列之 Gateway 服务网关(一) Spring Cloud 系列之 Gateway 服务网关(二) Spring Cloud 系列之 Gateway 服务网关(三) 本篇文章讲解 Gateway 网关如何实现限流、整合 Sentinel 实现限流以及高可用网关环境搭建。 网关限流 顾名思义,限流就是限制流量,就像你宽带包有 1 个 G 的流量,用完了就没了。通过限流,我们可以很好地控制系统的 QPS,从而达到保护系统的目的。 为什么需要限流 比如 Web 服务、对外 API,这种类型的服务有以下几种可能导致机器被拖垮: 用户增长过快(好事) 因为某个热点事件(微博热搜) 竞争对象爬虫 恶意的请求 这些情况都是无法预知的,不知道什么时候会有 10 倍甚至 20 倍的流量打进来,如果真碰上这种情况,扩容是根本来不及的。 从上图可以看出,对内而言:上游的 A、B 服务直接依赖了下游的基础服务 C,对于 A,B 服务都依赖的基础服务 C 这种场景,服务 A 和 B 其实处于某种竞争关系,如果服务 A 的并发阈值设置过大,当流量高峰期来临,有可能直接拖垮基础服务 C 并影响服务 B,即雪崩效应。 限流算法 点击链接观看:限流算法视频

Redis高可用集群-哨兵模式(Redis-Sentinel)

两盒软妹~` 提交于 2020-11-18 05:00:31
前言 Redis哨兵模式,用现在流行的话可以说就是一个“哨兵机器人”,给“哨兵机器人”进行相应的配置之后,这个"机器人"可以7*24小时工作,它能能够自动帮助你做一些事情,如监控,提醒,自动处理故障等。 Redis-sentinel简介 Redis-sentinel是Redis的作者antirez,因为Redis集群的被各大公司使用,每个公司要写自己的集群管理工具,于是antirez花了几个星期写出了Redis-sentinel。 Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance),Redis 的 Sentinel 为Redis提供了高可用性。使用哨兵模式创建一个可以不用人为干预而应对各种故障的Redis部署。 该系统执行以下三个任务: 监控(Monitoring): Sentinel会不断地检查你的主服务器和从服务器是否允许正常。 提醒(Notification): 当被监控的某个Redis服务器出现问题时,Sentinel可以通过API向管理员或者其他应用程序发送通知。 自动故障迁移(Automatic failover): (1)当一个主服务器不能正常工作时,Sentinel会开始一次自动故障迁移操作,他会将失效主服务器的其中一个从服务器升级为新的主服务器,并让失效主服务器的其他从服务器改为复制新的主服务器; (2

Redis 备份、容灾及高可用实战

与世无争的帅哥 提交于 2020-11-13 09:52:01
Redis已经大量应用于各种互联网架构场景中,其优异的性能,良好的操作性,以及大量的场景应用案例,使得Redis备受瞩目。本文作者向大家介绍了一种Redis在非大集群分布式应用场景下的灾备解决方案。一起来品读一下吧~ 作者介绍 郝朝阳 ,宜搜科技,运维工程师,负责前端运维工作。专注于运维自动化的实现。致力于DevOps思想的推广,帮助企业形成形成自有文化的运维体系建设。 一,Redis简单介绍 Redis是一个高性能的key-value非关系型数据库,由于其具有高性能的特性,支持高可用、持久化、多种数据结构、集群等,使其脱颖而出,成为常用的非关系型数据库。 此外,Redis的使用场景也比较多。 会话缓存(Session Cache) Redis缓存会话有非常好的优势,因为Redis提供持久化,在需要长时间保持会话的应用场景中,如购物车场景这样的场景中能提供很好的长会话支持,能给用户提供很好的购物体验。 全页缓存 在WordPress中,Pantheon提供了一个不错的插件 wp-redis ,这个插件能以最快的速度加载你曾经浏览过的页面。 队列 Reids提供list和set操作,这使得Redis能作为一个很好的消息队列平台来使用。 我们常通过Reids的队列功能做购买限制。比如到节假日或者推广期间,进行一些活动,对用户购买行为进行限制

2020 中国技术力量年度榜单

偶尔善良 提交于 2020-11-12 14:40:29
2020 年,新基建的全面铺开加速了全行业数字化、智能化转型升级。在这一过程中,越来越多的企业开始思考借助优质创新技术,提升自身业务水平。然而在数字化技术变得越来越为重要的当下,国内 IT 产业的发展却正面临着全新的挑战。在技术供给侧,不同技术方案的性能良莠不齐,国内 IT 软件行业的发展面临资源错配、内耗严重等挑战,而这些乱象往往又会导致用户在选择技术方案时犹豫不决,进一步削弱数字化转型意愿。 InfoQ 面向云计算与开源赛道,正式启动 2020 中国技术力量年度榜单评选活动。阿里云作为云原生和开源领域的引领者和实践者,在刚刚结束的 2020 年 双11 实现了核心系统全面云原生化,成为全球最大规模的云原生实践,并首次实现自研、开源、商业“三位一体”,在本次 InfoQ 的中国技术力量年度榜单评选中,新锐开源项目榜单中有 12 个开源项目入围,在开源杰出人物榜单中共有 2 位入围。以下是入围项目和入围人物的概览。 如果你了解甚至熟悉他们, 欢迎给他们投上关键的一票。 在阿里巴巴云原生公号评论区回复你和相关开源项目和开源大佬的故事, 我们将选出 3 位送出阿里云定制充电宝。 截止时间 11 月 13 日晚上 11 点。 榜单一:开源新锐项目 1. Nacos 地址 : https://github.com/alibaba/nacos 上榜理由 :Nacos 是 2018 年 8

阿里内部P8大神架构师都在用的神仙级Spring Cloud文档,赶紧学起来

谁都会走 提交于 2020-11-11 10:24:59
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。值得一提的是Spring Cloud Alibaba对Dubbo做了很好的兼容,同时也提供了一些强大的功能,如 Sentinel 流控 ,Seata 分布式事务,Nacos 服务发现与注册等等。 但现在网上学习SpringCloud的资料要么不全,要么很少,完整的就更别说了, 所以今天给大家免费分享的这个关于Spring Cloud的学习文档,图文并茂,量身打造,非常适合再学习Spring Cloud 的朋友观看!下面来看看这份Spring Cloud 学习文档吧! 由于篇幅问题,为了不影响阅读,这份完整的Spring Cloud 学习文档已经整理好了,见文末获取 一、微服务概念 随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。从互联网早起到现在

Redis哨兵集群模式

此生再无相见时 提交于 2020-11-10 07:37:31
转载出处 https://www.cnblogs.com/PatrickLiu/p/8444546.html 一、引言 上一篇文章我们详细的讲解了Redis的主从集群模式,其实这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改,但是有一点,Master和Slave两个节点的持久化配置尽量保持一致,否则会有奇怪的问题出现。从今天开始我们开始讲Redis集群模式的第二模式,也就是“哨兵”模式,该模式是从Redis的2.6版本开始提供的,但是当时这个版本的模式是不稳定的,直到Redis的2.8版本以后,这个哨兵模式才稳定下来,在生产环境中,如果想要使用Redis的哨兵模式,也会尽量使用Redis的2.8版本之后的版本。无论是主从模式,还是哨兵模式,这两个模式都有一个问题,不能水平扩容,并且这两个模式的高可用特性都会受到Master主节点内存的限制。还有一点,实现哨兵模式的配置也不简单,甚至可以说有些繁琐,所以在工业场景里这两个模式都不建议使用,如果要使用必须有相关的问题的解决方案,以免后续带来的问题。 二、Redis Sentinel简介 Sentinel(哨兵)进程是用于监控redis集群中Master主服务器工作的状态,在Master主服务器发生故障的时候,可以实现Master和Slave服务器的切换,保证系统的高可用

面试突击 005 | Redis 是如何实现高可用的?它的实现方式有哪些?「视频版」

拟墨画扇 提交于 2020-11-10 05:37:10
这是我的第 35 篇原创文章 作者 | 老王(javacn666) 这部视频的录制、剪辑、做 PPT、写文稿大约花费了 5 个小时的时间,希望这种形式能被更多的人喜欢,希望这篇文章会给你带来更多的价值。 1 面试题 Redis 是如何实现高可用的?它的实现方式有哪些? 2 涉及问题 什么是高可用? Redis 中高可用的实现方式有哪些? 各种实现方式的优缺点有哪些? 3 视频 视频内容如下: 4 答案 高可用是指通过设计减少程序不能提供服务的时间叫做高可用。 Redis 实现高可用的方式有四种: 持久化 主从同步(主从复制) Redis Sentinel Redis Cluster 1)持久化 持久化有三种方式: RDB(Redis DataBase)全量复制 AOF(Append Only File)增量复制 混合持久化(支持版本 Redis 4.0+) 持久化让 Redis 的数据不再丢失,当某个节点奔溃时,可以很快的重新启动或重新搭建一个 Redis 服务器端,加载持久化文件即可恢复 Redis 的正常运行,为 Redis 奔溃恢复节省了宝贵的时间。 更多介绍详见视频部分。 2)主从同步 提供的功能是从单机 Redis 变成多机 Redis。 提供两种模式:主从模式和从从模式。 主从模式, 如下图所示 : 从 从模式,如下图所示: 当主节点出现问题