Sentinel

Redis 备份、容灾及高可用实战,一文看齐~

做~自己de王妃 提交于 2021-01-03 16:26:31
点击▲关注 “ DevOps社群 ” 给公众号标星置顶 更多精彩 第一时间直达 来源丨java思维导图 一、Redis简单介绍 Redis是一个高性能的key-value非关系型数据库,由于其具有高性能的特性,支持高可用、持久化、多种数据结构、集群等,使其脱颖而出,成为常用的非关系型数据库。 此外,Redis的使用场景也比较多。 会话缓存(Session Cache) Redis缓存会话有非常好的优势,因为Redis提供持久化,在需要长时间保持会话的应用场景中,如购物车场景这样的场景中能提供很好的长会话支持,能给用户提供很好的购物体验。 全页缓存 在WordPress中,Pantheon提供了一个不错的插件wp-redis,这个插件能以最快的速度加载你曾经浏览过的页面。 队列 Reids提供list和set操作,这使得Redis能作为一个很好的消息队列平台来使用。 我们常通过Reids的队列功能做购买限制。比如到节假日或者推广期间,进行一些活动,对用户购买行为进行限制,限制今天只能购买几次商品或者一段时间内只能购买一次。也比较适合适用。 排名 Redis在内存中对数字进行递增或递减的操作实现得非常好。所以我们在很多排名的场景中会应用Redis来进行,比如小说网站对小说进行排名,根据排名,将排名靠前的小说推荐给用户。 发布/订阅 Redis提供发布和订阅功能,发布和订阅的场景很多

Spring Cloud Alibaba学习总结

落花浮王杯 提交于 2021-01-02 11:07:58
Spring Cloud Alibaba 1.入门简介 1.1 为什么会出现SpringCloud alibaba spring cloud Netflix进入维护模式 1.2 是什么 2018.10.31, Spring cloud Alibaba正式入驻了Spring Cloud官方孵化器,并在Maven中央库发布了第一个版本. 1.3 能干嘛 服务限流降级 默认支持Servlet、Feign、RestTemplate、Dubbo和RocketMQ限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级Metrics监控 服务注册与发现 适配Spring Cloud服务注册与发现标准,默认集成了Ribbon的支持 分布式配置管理 支持分布式系统中的外部化配置,配置更改时自动刷新 消息驱动能力 基于Spring Cloud Stream为微服务应用构建消息驱动能力 阿里云存储对象 阿里云提供的海量、安全、低成本、高可靠的云存储服务.支持在任何应用、任何时间、任何地点存储和访问任意类型的数据 分布式任务调度 提供秒级、精准、高可靠、高可用的定时(基于Cron表达式)任务调度服务.同时提供分布式的任务执行模型,如网格任务.网格任务支持海量子任务均匀分配到所有Worker(schedulerx-client)上执行 1.4 怎么用 Sentinel

2020年程序员平均年薪20.36万,被这个职能震撼了!

柔情痞子 提交于 2021-01-01 19:34:31
2020年度程序员洞察报告就出炉了 : 程序员平均年薪为20.36万元 。学历水平与工资水平成正比,同时值得注意的是,即使是 大专学历群体的平均工资,也达到了16.13万之多 。 (来自猎聘) 企业热招程序员职能TOP15中, 需求占比最大的职能是Java ,占比为17.82%。 (来自猎聘) 而其中有个职位更是稳得一批—— 架构师的薪资最高达60000元 , 依旧稳居Java 所有职能的第二 。根据全国各大高校数据显示,2021年将新增超20万程序员,而阿里腾讯京东美团字节等大厂都在大肆招人,互联网不缺程序员,缺的是高级的精尖程序员。 如果你是一名架构师 如何检验自己是否是个够格的架构师?一年一度的双十一,就是现成的考题。 高并发场景秒杀下单超卖Bug、利用Redis集群架构抗住双十一大流量洪峰 等等,都是必备技能。 每个开发人员成为高级开发、架构师的必经之路是什么呢?打开招聘网站看看大牛的必备技能, 从Redis、Zookeeper,JVM、Spring、RocketMQ,再到高并发场景下框架的运用、秒杀系统的优化实战,都是高薪技能点 ,因为企业需要你有,你有了就是大大的加分项。何况这些都是来年金三银四必问的面试考点。 涉及过,但并不深入? 很多程序员觉得能够吃透两套架构就能躺赢了,但是实际项目中,会遇到很多问题,需要更多的技能点来支撑,却因为对这些技术点不够了解

爱奇艺在 Dubbo 生态下的微服务架构实践

妖精的绣舞 提交于 2020-12-31 11:07:47
导读 :本文整理自作者于 2020 年云原生微服务大会上的分享《爱奇艺在 Dubbo 生态下的微服务架构实践》,重点介绍了爱奇艺在 Dubbo、Sentinel 等开发框架方面的使用经验以及微服务生态体系的建设经验。 本文将主要围绕以下几个主题展开: Apache Dubbo 简介及其在爱奇艺的发展历史 爱奇艺内部对 Dubbo SDK 的扩展及围绕 Dubbo 相关的微服务生态建设 后续规划 Apache Dubbo 简介及其在爱奇艺的发展历史 1. Apache Dubbo 简介 Apache Dubbo 是一款由阿里开源的高性能 RPC 框架。Dubbo 框架本身除了通信外,还内置了微服务治理的多项功能(如注册发现,路由规则等)。 自从 2017 年重启维护以来,Dubbo 社区一直保持了较高的活跃度。从周边生态来看也相对比较完善,比如 Nacos、Sentinel 等开源框架都对其提供了支持。在语言支持方面,除了 Java 语言之外,Dubbo-go 社区目前也非常活跃,且针对 python,nodejs 等主流开发语言 Dubbo 也有一些开源实现。基于以上这些因素,我们决定引入 Dubbo 框架,用以替换原先自研的 RPC 框架。 爱奇艺是在 2019 年 6 月正式开始引入 Dubbo 框架的。我们将其与对接公司内部的基础设施做了对接,如注册中心、监控系统等等,并在

Redis集群--Redis集群之哨兵模式

元气小坏坏 提交于 2020-12-30 04:33:05
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!! 搭建Redis集群之前请准备好3台已经安装好Redis的服务器,CentOS7下安装Redis请阅读: https://blog.csdn.net/xlecho/article/details/102975520 为什么需要Redis集群 Redis 本身的 QPS 已经很高了,但是如果在一些并发量非常高的情况下,性能还是会受到影响。这个时候我们希望有更多的 Redis 服务来完成工作。 第二个是出于存储的考虑。因为Redis所有的数据都放在内存中,如果数据量大,很容易受到硬件的限制。升级硬件收效和成本比太低,所以我们需要有一种横向扩展的方法。 第三个是可用性和安全的问题。如果只有一个Redis服务,一旦服务宕机,那么所有的客户端都无法访问,会对业务造成很大的影响。另一个,如果硬件发生故障,而单机的数据无法恢复的话,带来的影响也是灾难性的。可用性、数据安全、性能都可以通过搭建多个 Reids 服务实现。其中有一个是主节点(master),可以有多个从节点(slave)。主从之间通过数据同步,存储完全相同的数据。如果主节点发生故障,则把某个从节点改成主节点,访问新的主节点。

redis5.0集群配置

强颜欢笑 提交于 2020-12-29 11:41:18
介绍    redis自3.0版本以来支持主从模式的集群,可用哨兵监控集群健康状态,但这种方式的集群很不成熟,数据备份需要全量拷贝。在之后的版本才真正支持集群分片。   在redis5.0中去除了以redis-trib.rb作为搭建集群的工具,全部整合到了redis-cli中,这极大地简化了集群环境的搭建,特别是对不懂ruby语言的小伙伴们(但是ruby以及zlib还是需要安装的)。 Redis集群的优点:   无中心架构,分布式提供服务。数据按照slot存储分布在多个redis实例上。增加slave做standby数据副本,用于failover,使集群快速恢复。实现故障auto failover,节点之间通过gossip协议交换状态信息;投票机制完成slave到master角色的提升。支持在线增加或减少节点。降低硬件成本和运维成本,提高系统的扩展性和可用性。 Redis集群的缺点:   client实现复杂,驱动要求实现smart client,缓存slots mapping信息并及时更新。目前仅JedisCluster相对成熟,异常处理部分还不完善,比如常见的“max redirect exception”。客户端的不成熟,影响应用的稳定性,提高开发难度。节点会因为某些原因发生阻塞(阻塞时间大于clutser-node-timeout),被判断下线

Redis面试总结

柔情痞子 提交于 2020-12-25 05:05:59
Redis port:6379 简介 redis3.0以上支持redis cluster redis :remote dictionary server 远程字典服务 nosql非关系型数据库:redis/memcached/mongoDB/hbase redis和memcached区别 1)redis支持存储多种数据结构 redis不仅仅支持简单的K/V数据类型的存储,同时还提供string(字符串)、list(列表)、set(集合)、zset(有序集合),hash(哈希数据)等数据结构的存储 支持更大的value数据:memcache单个key value最大,支持1MB,而redis最大支持512MB。 2)redis支持数据的备份 redis支持数据的备份,即master<----->slave模式的数据备份,redis通过哨兵(sentlinet)来进行主从的切换 从redis 3.0开始支持redis cluster 集群 3)redis支持数据持久化(RDB/AOF) 1:在redis中并不是所有的数据都一直存储在内存中的,这是redis和memcache最致命的优势,反之memcached存储的数据是完全存储在内存中的 2:另外redis单线程,memcached多线程(多线程的好处-->可以使用多核心cpu) 3:虽然

Redis:从应用到底层,一文帮你搞定

£可爱£侵袭症+ 提交于 2020-12-23 10:47:25
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨sowhat1412 来源丨sowhat1412(ID:sowhat9094) 高清思维导图已同步Git:https://github.com/SoWhat1412/xmindfile,关注公众号sowhat1412获取海量资源 总感觉哪里不对,但是又说不上来 1、基本类型及底层实现 1.1、String 用途: 适用于简单key-value存储、setnx key value实现分布式锁、计数器(原子性)、分布式全局唯一ID。 底层 :C语言中String用char[]数组表示,源码中用 SDS (simple dynamic string)封装char[],这是是Redis存储的 最小单元 ,一个SDS最大可以存储512M信息。 struct sdshdr{ unsigned int len; // 标记char[]的长度 unsigned int free; //标记char[]中未使用的元素个数 char buf[]; // 存放元素的坑 } Redis对SDS再次封装生成了 RedisObject ,核心有两个作用: 说明是5种类型哪一种。 里面有指针用来指向 SDS。 当你执行 set name sowhat

SpringCloud-Sentinel

半世苍凉 提交于 2020-12-21 17:57:53
TODO: 线程池线程异常,处理??? Add Dependency <!-- replace here with the latest version --> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-core</artifactId> <version>1.8.0</version> </dependency> Define Resource // > - 2. Define Resource try (Entry entry = SphU.entry("HelloWorld")) { // Your business logic here. System.out.println("hello world"); } catch (BlockException e) { // Handle rejected request. e.printStackTrace(); } // try-with-resources auto exit Define Resource List<FlowRule> rules = new ArrayList<>(); FlowRule rule = new FlowRule(); rule.setResource("HelloWorld"); // set

Redisson实现Redis分布式锁的N种姿势(转)

懵懂的女人 提交于 2020-12-19 06:23:29
Redis几种架构 Redis发展到现在,几种常见的部署架构有: 单机模式; 主从模式; 哨兵模式; 集群模式; 我们首先基于这些架构讲解Redisson普通分布式锁实现,需要注意的是,只有充分了解普通分布式锁是如何实现的,才能更好的了解Redlock分布式锁的实现,因为 Redlock分布式锁的实现完全基于普通分布式锁 。 普通分布式锁 Redis普通分布式锁原理这个大家基本上都了解,本文不打算再过多的介绍,上一篇文章 《 Redlock:Redis分布式锁的实现 》 也讲的很细,并且也说到了几个重要的注意点。如果你对Redis普通的分布式锁还有一些疑问,可以再回顾一下这篇文章。 接下来直接show you the code,毕竟 talk is cheap。 redisson版本 本次测试选择redisson 2.14.1版本。 单机模式 源码如下: // 构造redisson实现分布式锁必要的Config Config config = new Config(); config.useSingleServer().setAddress( " redis://172.29.1.180:5379 " ).setPassword( " a123456 " ).setDatabase( 0 ); // 构造RedissonClient RedissonClient