Sentinel

redis集群之哨兵模式

淺唱寂寞╮ 提交于 2020-11-10 03:08:37
redis集群之哨兵模式 1、集群部署 安装配置可参考一下地址: https://www.cnblogs.com/zhoujinyi/p/5569462.html 2、与springboot集成 这里哨兵模式暂时只提供了故障自动转移等,暂时不提供负载均衡功能,自动提供了故障转移和主从复制功能 配置 spring.redis.database=0 spring.redis.password=123456 # pool settings ...池配置 spring.redis.pool.max-idle=8 spring.redis.pool.min-idle=0 spring.redis.pool.max-active=8 spring.redis.pool.max-wait=-1 #哨兵监听redis server名称 spring.redis.sentinel.master=mymaster #哨兵的配置列表 spring.redis.sentinel.nodes=192.168.12.194:26379,192.168.12.194:36379,192.168.12.194:4637 调用封装 [@Component](https://my.oschina.net/u/3907912) public class RedisComponent { @Autowired /

轻松两步,我在 SpringBoot 服务上实现了接口限流

跟風遠走 提交于 2020-11-09 02:11:59
点击上方蓝色“ 方志朋 ”,选择“设为星标” 回复“ 666 ”获取独家整理的学习资料! Sentinel是阿里巴巴开源的限流器熔断器,并且带有可视化操作界面。 在日常开发中,限流功能时常被使用,用于对某些接口进行限流熔断,譬如限制单位时间内接口访问次数;或者按照某种规则进行限流,如限制ip的单位时间访问次数等。 之前我们已经讲过接口限流的工具类ratelimter可以实现令牌桶的限流,很明显sentinel的功能更为全面和完善。来看一下sentinel的简介: https://github.com/spring-cloud-incubator/spring-cloud-alibaba/wiki/Sentinel Sentinel 介绍 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景 :Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、实时熔断下游不可用应用等。 完备的实时监控 :Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。 广泛的开源生态

分布式锁之redisson

倾然丶 夕夏残阳落幕 提交于 2020-11-07 13:05:03
redisson是redis官网推荐的java语言实现分布式锁的项目。当然,redisson远不止分布式锁,还包括其他一些分布式结构。详情请移步:https://github.com/mrniko/redisson/wiki   redisson支持4种链接redis的方式:    Cluster (集群)    Sentinel servers (哨兵)    Master/Slave servers (主从)    Single server (单机)   下面通过简单的案例使用redisson的lock。   1、RedissonManager类,管理redisson的初始化等操作。 public class RedissonManager { private static final String RAtomicName = "genId_"; private static Config config = new Config(); private static Redisson redisson = null; public static void init(){ try { config.useClusterServers() //这是用的集群server .setScanInterval(2000) //设置集群状态扫描时间

东汉末年,他们把「服务雪崩」玩到了极致(干货)

牧云@^-^@ 提交于 2020-11-05 13:36:18
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者 | 悟空聊架构 来源 | 悟空聊架构(ID:PassJava666) 转载请联系授权(微信ID:PassJava) 滚滚长江东逝水,浪花淘尽英雄。 是非成败转头空。青山依旧在,几度夕阳红。 -- 来自《三国演义》 本篇将会通过三国中的 赤壁之战 来讲述周瑜、黄盖和诸葛亮是怎么把 服务雪崩 玩到极致的。 本文已收录到我的 Github,点击文末的阅读原文打开。给个Star吧~ https://github.com/Jackson0714/PassJava-Learning 赤壁之战 话说东汉末年,曹操、孙权、刘备在长江赤壁(今湖北蒲圻西北)进行了一次争夺老大位置的大战,这就是有名的 赤壁之战 。 一、还原赤壁之战 曹操统一北方后,南下打败了刘备,占领荆襄之地后,还想干掉东边的孙权,于是刘备和孙权一起联合抗击曹军八十万大军。 曹操的军队大部分都是北方的,对于水上作战的经验非常欠缺,而且很多士兵晕船,于是曹操命令军队将 船尾用铁索相连 ,减弱了风浪颠簸,利于士兵演练。 铁索连环-图片来源网络 我们来看看周瑜、黄盖、诸葛亮的对话: 三人对话@悟空聊架构 ❝ 黄盖 :曹操是真的蠢啊,把船连着,如果船烧着了,其他船会跟着一起烧着的

Spring Cloud alibaba网关 sentinel zuul 四 限流熔断

不打扰是莪最后的温柔 提交于 2020-11-04 02:26:55
spring cloud alibaba 集成了 他内部开源的 Sentinel 熔断限流框架 Sentinel 介绍 官方网址 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。 完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。 Sentinel 的主要特性: Sentinel 的开源生态: 介绍一下 如果搭建。本次并不会一点点延伸更深层次的地方。只教大家快速使用。等spring

mysql,redis

旧城冷巷雨未停 提交于 2020-11-03 16:33:59
1、搭建mysql服务器,并实现主主复制、半同步复制 存储引擎: 表类型:也称为“表类型”,表级别概念,不建议在同一个库中的表上使用不同的ENGINE; CREATE TABLE ... ENGINE[=]STORAGE_ENGINE_NAME ... SHOW TABLE STATUS 常见的存储引擎: MyISAM, Aria, InnoDB, MRG_MYISAM, CSV, BLACKHOLE, MEMORY, PERFORMANCE_SCHEMA, ARCHIVE, FEDERATED InnoDB:InnoBase Percona-XtraDB, Supports transactions, row-level locking, and foreign keys 数据存储于“表空间(table space)"中: (1) 所有数据库中的所有类型为InnoDB的表的数据和索引存储于同一个表空间中; 表空间文件:datadir定义的目录中 文件:ibdata1, ibdata2, ... (2) innodb_file_per_table=ON,意味着每表使用单独的表空间文件; 每表的数据文件(数据和索引,存储于数据库目录)存储于自己专用的表空间文件中,并存储于数据库目录下: tbl_name.ibd 表结构的定义:在数据库目录,tbl_name.frm 事务型存储引擎

Sentinel: 使用注解限流

回眸只為那壹抹淺笑 提交于 2020-11-02 21:54:39
在前面我们对Sentinel做了一个详细的介绍,可以手动的通过Sentinel提供的SphU类来保护资源。 文章查看: Sentinel: 分布式系统的流量防卫兵 这种做法不好的地方在于每个需要限制的地方都得写代码,从 0.1.1 版本开始,Sentinel 提供了 @SentinelResource 注解的方式,非常方便。 要使用注解来保护资源需要引入下面的Maven依赖: <dependency> <groupId> com.alibaba.csp </groupId> <artifactId> sentinel-annotation-aspectj </artifactId> <version> 1.4.1 </version> </dependency> 引入之后我们需要配置SentinelResourceAspect切面让其生效,因为是通过SentinelResourceAspect切面来实现的,我这边以Spring Boot中使用进行配置示列: import org . springframework . context . annotation . Bean ; import org . springframework . context . annotation . Configuration ; import com . alibaba . csp .

程序猿:论学习方式的重要性

痞子三分冷 提交于 2020-11-02 06:46:23
大家都知道,做我们开发这行的,最核心的竞争力就是学习能力。技术一直在变化,框架一直在更新,学还是不学。 不学,你会落伍,学,太累了,根本学不过来。学习只要找对了方法,也没那么累。 最好的学习方式那就是兴趣驱使你去学习,但这种几乎很少,还有一种就是群体学习,就是大家一起学习,有问题一起讨论,这样的方式学起来会很轻松,这条路上的人多了,并不孤单。 知识星球是干嘛的? • 知识星球是我跟大家分享,交流技术的小圈子。 • 在这里可以交流技术,工作中遇到的问题。 • 我也会定期分享自己的心得和技术文章。 • 核心就是一起学习,讨论后端技术。主要是Java方向的哈! 有个圈子可以组队学习新技术,分享学习经验,面试经验,工作经验,理财经验等有益于成长的知识。这是我对知识星球的理解。 我希望加入星球的朋友们可以养成习惯,每日打卡,分享自己每天的学习成果,久而久之,学习将不再是一种负担,而是一种习惯。 后续计划 如果真的有更多的朋友愿意加入进来,后面我们可以一起学习,现在就已经开始了,第一个主题是阿里的Sentinel ,目前就我一个人在打卡,还没见到其他球友的打开记录,不过目前人也比较少。 还有就是我会通过各种激励的方式鼓励大家去学习,去分享,去总结,然后用奖品的方式来支持大家,比如赠书,发红包等方式,当然这个取决于后面星球的规模,规模大的话次数多点,规模小的话次数少点,但是肯定会做下去的

Redis哨兵功能与集群搭建

那年仲夏 提交于 2020-11-01 17:51:22
6.redis哨兵功能 Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户端都没有实现主从切换的功能。 而redis-sentinel就是一个独立运行的进程,用于监控多个master-slave集群,自动发现master宕机,进行自动切换slave > master。 sentinel主要功能如下: 不时的监控redis是否良好运行,如果节点不可达就会对节点进行下线标识 如果被标识的是主节点,sentinel就会和其他的sentinel节点“协商”,如果其他节点也认为主节点不可达,就会选举一个sentinel节点来完成自动故障转义 在master-slave进行切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换 ↓ShowCode↓ redis命令: redis-cli info #查看redis数据库信息 redis-cli info replication #查看redis的复制授权信息 redis-cli info sentinel

Sentinel规则配置之外部数据源

六眼飞鱼酱① 提交于 2020-10-31 09:50:07
在前面的示例中,对于Sentinel的限流和熔断的规则都是通过硬编码实现的,在实际的开发过程中,我们都会选择外部配置的方式来定制规则。Sentinel为我们提供了sentinel-datasource-extension来实现规则的外部配置化,并能实现热更新。 首先我们需要引入对应的依赖包 <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-extension</artifactId> <version>1.8.0</version> </dependency> 该依赖包中源文件总共也就9个,其关系如下所示 其中的FileRefreshableDataSource可供我们读取外部的配置文件,并对文件的更新做监控。那么在代码中我们应该怎么使用呢? /** * 格式: * [ * { * "resource": "helloworld", * "controlBehavior": 2, * "count": 5, * "grade": 1, * "limitApp": "default", * "strategy": 0 * } * ] * */ public void flowRule() throws FileNotFoundException { //