中间件
文章平均质量分 87
lzcWHUT
这个作者很懒,什么都没留下…
展开
-
Nginx详解
Nginx详解1. 什么是 Nginx2. Nginx+FastCGI运行原理3. Nginx 常用命令4. Nginx常用配置5. Nginx 有哪些优点6. Nginx 如何处理 HTTP 请求7. 动态资源、静态资源分离8. Nginx 有哪些负载均衡策略1. 什么是 NginxNginx ,是一个 Web 服务器和反向代理服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IM...原创 2019-07-18 09:41:14 · 245 阅读 · 0 评论 -
【RabbitMQ】一文带你搞定RabbitMQ死信队列
一、说明RabbitMQ是流行的开源消息队列系统,使用erlang语言开发,由于其社区活跃度高,维护更新较快,性能稳定,深得很多企业的欢心(当然,也包括我现在所在公司【手动滑稽】)。为了保证订单业务的消息数据不丢失,需要使用到RabbitMQ的死信队列机制,当消息消费发生异常时,将消息投入死信队列中。但由于对死信队列的概念及配置不熟悉,导致曾一度陷入百度的汪洋大海,无法自拔,很多文章都看起来可...转载 2019-09-05 14:54:57 · 862 阅读 · 0 评论 -
RabbitMQ入门
RabbitMQ 简介RabbitMQ是一个在AMQP(Advanced Message Queuing Protocol )基础上实现的,可复用的企业消息系统。它可以用于大型软件系统各个模块之间的高效通信,支持高并发,支持可扩展。AMQPAMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标...转载 2019-09-05 10:36:05 · 169 阅读 · 0 评论 -
Redis 事务
Redis 事务redis事务特征事务的错误处理语法错误运行错误Watch命令如何使用watch命令利用watch实现incrredis事务特征和众多其它数据库一样,Redis 作为 NoSQL 数据库也同样提供了事务机制。在Redis中,MULTI / EXEC / DISCARD / WATCH 这四个命令是我们实现事务的基石。相信对有关系型数据库开发经验的开发者而言这一概念并不陌生,即便...原创 2019-07-25 15:34:09 · 138 阅读 · 0 评论 -
跳表
跳表(skip list) 对标的是平衡树(AVL Tree),是一种 插入/删除/搜索 都是 O(log n) 的数据结构。它最大的优势是原理简单、容易实现、方便扩展、效率更高。因此在一些热门的项目里用来替代平衡树,如 redis, leveldb 等。跳表的基本思想首先,跳表处理的是有序的链表(一般是双向链表,下图未表示双向),如下:这个链表中,如果要搜索一个数,需要从头到尾比较每个元...原创 2019-07-25 12:08:01 · 3617 阅读 · 3 评论 -
消息队列常见问题和解决方案
一、为什么使用消息队列? 消息队列使用的场景和中间件有很多,但解决的核心问题主要是:异步、解耦、消峰填谷。二、消息队列的优缺点 异步、解耦、消峰填谷这是消息队列最大的优点,除了这些消息队列还可以会解决一些我们特殊业务场景的问题。但是缺点主要在于系统的可用性、复杂性、一致性问题,引入消息队列后,需要考虑MQ的可用性,万一MQ崩溃了岂不是要爆炸?而且复杂性明显提高了,需要考虑一些消息队列的...转载 2019-08-02 16:16:55 · 537 阅读 · 0 评论 -
RabbitMQ消息确认机制+延时队列
RabbitMQ之TTL(JAVA设置TTL) 大白话讲解RabbitMQ消息可靠传输保障 消息确认机制 死信队列 应用RabbitMQ可靠性传输机制实现 Redis 缓存的实时更新 深入分析RabbitMQ消息异常处理,及延迟队列在缓存架构中的应用 RabbitMQ消息确认机制 生产者消息确认机制 当消息发...转载 2019-08-02 15:32:55 · 1870 阅读 · 0 评论 -
MySQL和Redis实现分布式锁
MySQL和Redis实现分布式锁1. 为何需要分布式锁2. 分布式锁的一些特点3. 常见的分布式锁4. Mysql实现分布式锁4.1 lock()4.2 tryLock()和tryLock(long timeout)4.3 unlock()4.4 锁超时4.5 MySQL实现方式小结4.6 乐观锁5. Redis实现分布式锁5.1 使用setnx实现5.2 使用Redission来实现5.3 R...原创 2019-07-24 18:50:05 · 2825 阅读 · 2 评论 -
Redis的LRU算法
Redis的LRU算法LRU算法背后的的思想在计算机科学中无处不在,它与程序的"局部性原理"很相似。在生产环境中,虽然有Redis内存使用告警,但是了解一下Redis的缓存使用策略还是很有好处的。下面是生产环境下Redis使用策略:最大可用内存限制为4GB,采用 allkeys-lru 删除策略。所谓删除策略:当redis使用已经达到了最大内存,比如4GB时,如果这时候再往redis里面添加新的...原创 2019-07-24 16:06:27 · 278 阅读 · 0 评论 -
redis阻塞处理分析
1.内因:A.api或数据结构使用不合理: 如:对一个包含上万元素的hash结构执行hgetall操作,数据量大且命令复杂度O(n),必然阻塞B.慢查询:和很多关系型数据库(例如:MySQL)一样, Redis 也提供了慢查询日志记录,Redis 会把命令执行时间超过 slowlog-log-s...转载 2019-07-29 12:53:29 · 361 阅读 · 0 评论 -
Redis的过期策略和内存淘汰策略
Redis的过期策略我们都知道,Redis是key-value数据库,我们可以设置Redis中缓存的key的过期时间。Redis的过期策略就是指当Redis中缓存的key过期了,Redis如何处理。过期策略通常有以下三种:定时过期:每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从...转载 2019-07-29 10:36:28 · 129 阅读 · 0 评论 -
Kafka、RabbitMQ、RocketMQ等消息中间件的对比
消息中间件现在有不少,网上很多文章都对其做过对比,在这我对其做进一步总结与整理。RocketMQ淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步优化,2011年初,Linkin开源了Kafka这个优秀的...转载 2019-07-12 14:06:35 · 763 阅读 · 0 评论 -
Nginx的异步非阻塞
1. 同步与异步同步与异步的重点在消息通知的方式上,也就是调用结果通知的方式。同步:当一个同步调用发出去后,调用者要一直等待调用结果的通知后,才能进行后续的执行。异步:当一个异步调用发出去后,调用者不能立即得到调用结果的返回。异步调用,要想获得结果,一般有两种方式:主动轮询异步调用的结果;被调用方通过callback来通知调用方调用结果。阻塞和非阻塞阻塞与非阻塞的重点在于进/线...转载 2019-09-16 14:10:58 · 1461 阅读 · 0 评论