中间件
文章平均质量分 93
奋斗吧_攻城狮
JUST DO IT!
展开
-
如何优化缓存中百万级并发的KEY
引言这个问题实际上就是热点key问题,其实热点key问题说来也很简单,就是瞬间有几十万上百万,甚至更大的请求去访问redis上某个固定的key,从而压垮缓存服务的情情况。其实生活中也是有不少这样的例子,比如XX明星结婚。那么关于XX明星的Key就会瞬间增大,就会出现热点数据问题。PS:hot key和big key问题,大家一定要有所了解,非常重要。本文预计分为如下几个部分: 热点key问题 如何发现 业内方案 正文热点Key问题上面提到,所谓热点key问题转载 2021-09-17 09:57:12 · 725 阅读 · 0 评论 -
阿里 RocketMQ 如何解决消息的顺序&重复两大硬伤?
分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题: 消息的顺序问题 消息的重复问题 RocketMQ 作为阿里开源的一款高性能、高吞吐量的消息中间件。 它是怎样来解决这两个问题的? RocketMQ 有哪些关键特性? 其实现原理是怎样的? 关键特性以及其实现原理一、顺序消息消息有序指的是可以按照消息的发送顺序来消费。例如:一笔订单产生了 3 条消息,分别是订单创转载 2021-08-25 10:17:59 · 637 阅读 · 0 评论 -
sentinel 基本概念
开发的原因,需要对吞吐量(TPS)、QPS、并发数、响应时间(RT)几个概念做下了解,查自百度百科,记录如下:响应时间(RT) 响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,人们通常是指该系统所有功能的平均时间或者所有功能转载 2021-06-08 10:53:28 · 663 阅读 · 0 评论 -
Zookeeper启动流程分析
前言上篇我们通过了解Paoxs算法开始,到Zab协议的两大特性:崩溃恢复和消息广播,学习了Zookeeper是如何通过Zab协议实现高可用,本篇开始我们来学习Zookeeper的启动流程单机模式启动流程我们知道,Zookeeper使用中分为单机和集群两种,而这两种最大的不同则是,集群启动下需要进行Leader选举以及Leader和Follower之间的数据同步操作,而单机启动则不需要此操作,Zookeeper单机启动大概分为三个部分,分别为预处理、初始化和注册,接下来我们分别来看看三个流程的步骤转载 2021-05-04 17:35:20 · 2080 阅读 · 0 评论 -
ZK请求处理链概述
摘要从这一节开始,讲解请求处理链相关内容,在集群版启动中,所处的位置如下图所示使用责任链来处理每个客户端的请求时Zookeeper的特色本节主要讲解接口RequestProcessor 以及实现类不同角色的请求处理链Leader下的请求处理链路,以及各个处理器的意义Follower下的请求处理链路,以及各个处理器的意义Observer下的请求处理链路,以及各个处理器的意义接口RequestProcessor 以及实现类RequestProcessor是所有处理器的父接口,其定义了处转载 2021-05-04 17:25:26 · 324 阅读 · 0 评论 -
Redis ==> 集群的三种模式
一、主从同步/复制 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据。但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。 为了避免单点故障,通常的做法是将数据库复制多个副本以部署在不同的服务器上,这样即使有一台服务器出现故障,其他服务器依然可以继续提供服务。为此,Redis 提供了复制(replication)功能,可以实现当一台数据库中的数据更新后,自动将..转载 2021-02-23 15:42:19 · 199 阅读 · 0 评论 -
KAFKA OFFSET的存储问题
注意:从kafka-0.9版本及以后,kafka的消费者组和offset信息就不存zookeeper了,而是存到broker服务器上,所以,如果你为某个消费者指定了一个消费者组名称(group.id),那么,一旦这个消费者启动,这个消费者组名和它要消费的那个topic的offset信息就会被记录在broker服务器上1.概述Kafka版本[0.10.1.1],已默认将消费的 offse...转载 2019-08-28 21:19:17 · 292 阅读 · 0 评论 -
Redis数据过期策略详解
本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存session,又或者只存放日行情股票数据)那么就会出现一下几个问题了Redis会自己回收清理不用的数据吗? 如果能,那如何配置? 如果不能,如何防止数据累加后大量占用存储空间的问题? 之前一直...转载 2018-09-12 11:31:10 · 368 阅读 · 0 评论 -
Zookeeper系列--ZAB协议
在前一篇中,写了Zookeeper的相关概念,以及节点、acl,watcher等机制,这一篇就写一下保证ZK集群高可用及数据一致性的底层实现算法:ZAB协议。ZAB协议概述在前面的文章中,介绍了经典的分布式数据一致性算法Paxos算法,但事实上zookeeper并没有采用完全的Paxos算法,而是采用了一种称为Zookeeper Atomic Broadcast(ZAB,zookeep...转载 2018-08-16 20:32:15 · 927 阅读 · 0 评论 -
ZooKeeper的三种角色
上周有人和我说,有篇讲怎么调zk API的水文都上了csdn首页,我表示相当无奈,毕竟大多数人看一门技术就是想知道怎么调API,很少有人去了解内部机制。而懂不懂原理,恰恰是码农和架构师的最大区别。我肯定也会讲API,不过是下下篇的内容,最近仍然要讲原理。 这次说的是ZooKeeper的三种角色,也就是ZooKeeper服务器的三种节点类型(需要区分这里的“节点”和名字空间的“节点”,完全不是...转载 2018-06-20 10:10:31 · 16937 阅读 · 2 评论 -
redis.conf配置详细解析
# redis 配置文件示例 # 当你需要为某个配置项指定内存大小的时候,必须要带上单位,# 通常的格式就是 1k 5gb 4m 等酱紫:## 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes#转载 2017-03-16 21:15:35 · 862 阅读 · 0 评论 -
Redis安装和自启动配置
一. 安装Redis Redis的安装其实相当简单,推荐的方式是下载redis的源码,并在本机编译后安装。 首次进入主文件夹的下载目录下,执行wget下载源码[root@localhost ~]$ wget http://download.redis.io/redis-stable.tar.gz接下来解压之后,移动到/usr/redis目录下[root@localhost ~]$ tar -zx原创 2017-01-17 14:46:19 · 441 阅读 · 0 评论 -
消息队列-推/拉模式学习 && ActiveMQ及JMS学习
消息中间件的主要功能是消息的路由(Routing)和缓存(Buffering)。在AMQP中提供类似功能的两种域模型:Exchange和Message queue。AMQP的更多内容可以看这里:http://www.cnblogs.com/charlesblc/p/6058799.html一种分类是推和拉 。还有一种分类是 Queue 和 Pub/Sub翻译 2018-01-26 10:54:06 · 508 阅读 · 0 评论 -
大型网站架构之分布式消息队列
以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。本次分享大纲消息队列概述消息队列应用场景消息中间件示例JMS消息服务常用消息队列参考(推荐)资料本次分享总结一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少转载 2017-08-30 16:37:42 · 332 阅读 · 0 评论 -
nginx负载均衡策略
Nginx能够配置代理多台服务器。当一台服务器宕机之后。仍能保持系统可用。详细配置步骤例如以下:1、配置upstreamhttp节点下,加入upstream节点。upstream linuxidc { server 10.0.6.108:7080; server 10.0.0.85:8980; }2、配置proxy_pass...原创 2018-07-18 14:30:15 · 515 阅读 · 0 评论 -
idea远程部署war到docker
1、拉取最新的tomcat镜像到本地sudo docker pull tomcat 2、基于Dockerfile创建镜像文件dockerfile可以帮助我们创建自定义的镜像,本文比较简单直接基于最新的tomcat镜像,当然tomcat镜像也可以自定义(tomcat版本、jdk版本)。 新建Dockerfile文件,并将需要部署的war包放在相同文件夹下#基础镜像FR...原创 2018-07-20 15:29:35 · 3448 阅读 · 2 评论 -
Kafka数据可靠性深度解读
1 概述Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark等都支持与Kafka集成。Kafka凭借着自身的优势,越来越受到互联网企业的青睐,唯品会也采用Kafka作为其内部核心消息引擎之一。Kafka作...转载 2018-08-18 15:10:51 · 204 阅读 · 0 评论 -
基于Sentinel(哨兵)搭建实现Redis高可用集群
原文地址:https://blog.csdn.net/shouhuzhezhishen/article/details/69221517概述Redis哨兵为Redis提供了高可用性。实际上这意味着你可以使用哨兵模式创建一个可以不用人为干预而应对各种故障的Redis部署。哨兵模式还提供了其他的附加功能,如监控,通知,为客户端提供配置。下面是在宏观层面上哨兵模式的功能列表:监控:哨兵不断的检查mast...转载 2018-06-20 09:40:16 · 328 阅读 · 0 评论