摘要:
新增码云地址:https://gitee.com/hanmov5/mop hbase template 一、写在前面 业务架构用到HBase,但由于某些不可名状原因,没有用phoniex等上层工具,开发都是用原生的HBase Api来实现逻辑,原生API虽然使用不算困难,但是在复用性和可读性方便很差 阅读全文
摘要:
[TOC] 一、介绍 RabbitMQ是基于AMQP协议的消息中间件,服务器端用Erlang语言编写,支持多种客户端,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 二、安装 去官网下载对应的版本,在安装rabbitmq之前需要安装对应Erlang环境,安装完成后通过命令 阅读全文
摘要:
ps:伪延时队列先卖个关子,我们先了解下延时队列。 [TOC] 一、什么是延时队列 所谓延时队列是指消息push到队列后,监听的消费者不能第一时间获取消息,需要等到指定时间才能消费。 一般在业务里面需要对某些消息做定时发送,不想走定时任务或者是用户下单之后多长时间自动失效类似的场景可以考虑通过延时队 阅读全文
摘要:
[TOC] 前言 紧跟上文的: "分布式锁实现(一):Redis" ,这篇我们用Zookeeper来设计和实现分布式锁,并且研究下开源客户端工具Curator的分布式锁源码 设计实现 一、基本算法 1.在某父节点下创建临时有序节点 2.判断创建的节点是否是当前父节点下所有子节点中序号最小的 3.是序 阅读全文
摘要:
前言 最近面试比较多,发现生产消费者模型在各公司面试的过程中问的还是比较多的,记录一下常见JAVA实现生产者消费模型的代码 思路 我们通过三种模式来实现 1. 通过wait和notify 2. 通过Lock和Condition 3. 通过JAVA内部的阻塞队列ArrayBlockingQueue 代 阅读全文
摘要:
前言 后端在写对外的API接口时,一般会对参数进行签名来保证接口的安全性,在设计签名算法的时候,主要考虑的是这几个问题: 1. 请求的来源是否合法 2. 请求参数是否被篡改 3. 请求的唯一性 我们的签名加密也是主要针对这几个问题来实现 设计 基于上述的几个问题,我们来通过已下步骤来实现签名加密: 阅读全文
摘要:
前言 单机环境下我们可以通过JAVA的Synchronized和Lock来实现进程内部的锁,但是随着分布式应用和集群环境的出现,系统资源的竞争从单进程多线程的竞争变成了多进程的竞争,这时候就需要分布式锁来保证。 实现分布式锁现在主流的方式大致有以下三种 1. 基于数据库的索引和行锁 2. 基于Red 阅读全文