高性能队列:Disruptor介绍以及使用场景 (一)

最近看了一些关于Disruptor的介绍,觉得这个新的消息队列非常厉害,单机性能就非常高。于是搜索并整理了一些资料,寻找往后可能使用的场景。 Disruptor 介绍 Disruptor 是LMX开源出来的java编写的一个并发消息处理器,在队列中一边生产者放入消息,另外一边消费者并行取出处理,其核心是根据现代CPU硬件缓存特点发明不同于通用LinkedList或Queue的新型数据结构RingB … 继续阅读

OpenResty+ Nginx + Lua + Redis 动态封禁 IP

之前有试过实现如何封禁某个国家的IP访问网站。最近在看如何封禁某些特定IP对资源的访问,于是整理了一份通过Nginx + Lua + Redis 动态封禁 IP的资料。 需求背景 为了封禁某些爬虫或者恶意用户对服务器的请求,需要建立一个动态的 IP 黑名单。对于黑名单之内的 IP ,拒绝提供服务。 实现方式 实现 IP 黑名单的功能有很多方法: 1.在操作系统层面,配置 iptables,拒绝指定 … 继续阅读

API接口签名生成算法和签名验证算法

为了接口安全,需要做API接口校验。 接口安全问题 请求身份是否合法? 请求参数是否被篡改? 请求是否唯一? 1.请求身份 为开发者分配AppKey(开发者标识,确保唯一)和AppSecret(用于接口加密,确保不易被穷举,生成算法不易被猜测)。 2.防止篡改 参数签名 按照请求参数名的字母升序排列非空请求参数(包含AppKey),使用URL键值对的格式(即key1=value1&key2 … 继续阅读

Redis协议

redis 通信协议 协议是通信计算机双方必须共同遵从的一组约定。 协议规定了:怎么样建立连接、怎么样互相识别等。 只有遵守这个约定,计算机之间才能相互通信交流。 对于 redis 而言,为了保证服务器与客户端的正常通信,也定义了自己的通信协议,客户端和服务器在接收解析数据时都需要遵循这个协议才能保证通信正常进行。 redis 请求协议的一般形式 *<参数数量> CR LF $< … 继续阅读