摘要:
一、Socket是什么 Socket 的中文翻译过来就是“套接字”。套接字是什么,我们先来看看它的英文含义:插座。 Socket 就像一个电话插座,负责连通两端的电话,进行点对点通信,让电话可以进行通信,端口就像插座上的孔,端口不能同时被其他进程占用。而我们建立连接就像把插头插在这个插座上,创建一个 阅读全文
摘要:
ShardingSphere List sub item List sub item List sub item 阅读全文
摘要:
下载地址:http://kafka.apache.org/downloads 我这里现在的是 kafka_2.13-2.6.0.tgz 注意:Kakfa依赖Zookeeper,所以需要正确安装好JDK和zookeeper。 一、单机模式 ① 解压缩,然后新建一个空的logs文件夹 ② 进入confi 阅读全文
摘要:
一、为什么使用消息系统 解耦 在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 冗余 有些情况下,处理数据的过程会失败。除非数据 阅读全文
摘要:
一、什么是Kafka Kafka是一个分布式消息队列。Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)称为broker。无论是kafka集群,还是consumer都依赖于 阅读全文
摘要:
系统唯一ID生成分案有很多种,例如:数据库 auto_increment,UUID,Redis生成ID(Redis原子操作INCR和INCRBY),Twiitter的snowflake算法,ZooKeeper生成ID,MongoDb的ObjectId,下面我们就看一下ZooKeeper实现分布式系统 阅读全文
摘要:
一、核心机制 Zookeeper节点角色 在zookeeper中,节点分为下列几种角色: 领导者(leader),负责进行投票的发起和决议,更新系统状态,在Zookeeper集群中,只有一个Leader节点。 跟随者(follower),用于接受客户端请求并想客户端返回结果,在选主过程中参与投票,在 阅读全文
摘要:
实现分布式锁目前有三种流行方案,分别为基于数据库、Redis、Zookeeper的方案,今天我们就来探讨下Zookeeper的分布式锁。 一、Zookeeper节点的几个性质 有序节点:假如当前有一个父节点为/lock,我们可以在这个父节点下面创建子节点;zookeeper提供了一个可选的有序特性, 阅读全文
摘要:
Curator是Netflix公司开源的一个Zookeeper客户端,目前是apache顶级项目。与Zookeeper提供的原生客户端相比,Curator的抽象层次更高,简化了Zookeeper客户端的开发量,相当于netty之于socket编程。提供了一套易用性和可读性更强的Fluent风格的客户 阅读全文
摘要:
Zookeeper下载:http://archive.apache.org/dist/zookeeper/ 我下载的是:zookeeper-3.4.13 一、单节点 # 解压到常用的安装目录 # 将conf目录下的zoo_sample.cfg文件,复制一份,重命名为zoo.cfg。 # 修改zoo. 阅读全文
摘要:
百度百科的介绍:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 我们还是通俗地来认识Zookee 阅读全文
摘要:
Zookeeper简介 Windows安装Zookeeper zookeeper核心原理 Zookeeper Java客户端Curator Zookeeper分布式锁 Zookeeper全局唯一ID 阅读全文
摘要:
1 阅读全文
摘要:
1 阅读全文
摘要:
常用框架介绍 Slf4j框架的用法 阅读全文
摘要:
1 阅读全文
摘要:
1 阅读全文
摘要:
设计模式是什么 创建型模式 结构型模式 行为型模式 阅读全文
摘要:
Docker Docker简介 Docker安装 Docker底层原理 阿里云镜像加速配置 Docker常用命令 Docker镜像 Docker容器数据卷 Dockerfile解析 Docker常用安装 本地镜像发布到阿里云 docker使用过程遇到的问题 阅读全文
摘要:
Lettuce是一个高性能基于Java编写的Redis驱动框架,底层集成了Project Reactor提供天然的反应式编程,通信框架集成了Netty使用了非阻塞IO,5.x版本之后融合了JDK1.8的异步编程特性,在保证高性能的同时提供了十分丰富易用的API,5.1版本的新特性如下: 支持Redi 阅读全文
摘要:
中文文档:https://github.com/redisson/redisson/wiki Redisson 不只是一个 Java Redis 客户端,它是一个以内存 Redis 服务器作为后端的处理 Java 对象(如 java.util.List, java.util.Map, java.ut 阅读全文
摘要:
Redis的Java客户端很多,官方推荐的有三种:Jedis、Redisson和lettuce。 1、概况 Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持; Jedis中的方法调用是比较底层的暴露的Redis的API,也即Jedis中的Java方法基本和R 阅读全文
摘要:
一、布隆过滤器使用场景 比如有如下几个需求: ①、原本有10亿个号码,现在又来了10万个号码,要快速准确判断这10万个号码是否在10亿个号码库中? 解决办法一:将10亿个号码存入数据库中,进行数据库查询,准确性有了,但是速度会比较慢。 解决办法二:将10亿号码放入内存中,比如Redis缓存中,这里我 阅读全文
摘要:
在介绍这篇文章之前,我们先来看如下几个问题: ①、如何设置Redis键的过期时间? ②、设置完一个键的过期时间后,到了这个时间,这个键还能获取到么?假如获取不到那这个键还占据着内存吗? ③、如何设置Redis的内存大小?当内存满了之后,Redis有哪些内存淘汰策略?我们又该如何选择? 一、设置Red 阅读全文
摘要:
我这里搭建演示的版本是redis-5.0.5,这个版本对于集群搭建会有很大的简化,比如最常用的redis-trib.rb脚本功能已经集成到redis-cli工具中了,具体下面会详细介绍。 一、为什么需要集群 ①、并发量 通常来说,单台Redis能够执行10万/秒的命令,这个并发基本上能够满足我们所有 阅读全文
摘要:
一、架构图 二、服务器列表 三、搭建主从模式 ① 主要配置项 主服务器(上图的Node1)配置文件 redis.config 主要配置项: #配置端口 port 6379 #以守护进程模式启动 daemonize yes #pid的存放文件 pidfile /var/run/redis_6379.p 阅读全文
摘要:
依赖项: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> 一、 jedis对应redis的四种工作模式 Jedis, 阅读全文
摘要:
如果我们都在一台服务器上进行操作的,也就是说读和写以及备份操作都是在一台Redis服务器上进行的,那么随着项目访问量的增加,对Redis服务器的操作也越加频繁,虽然Redis读写速度都很快,但是一定程度上也会造成一定的延时,那么为了解决访问量大的问题,通常会采取的一种方式是主从架构Master/Sl 阅读全文
摘要:
RDB 持久化存在一个缺点是一定时间内做一次备份,如果redis意外down掉的话,就会丢失最后一次快照后的所有修改(数据有丢失)。对于数据完整性要求很严格的需求,怎么解决呢? 使用Redis的另一种持久化方式——AOF。 一、AOF简介 Redis的持久化方式之一RDB是通过保存数据库中的键值对来 阅读全文
摘要:
Redis 的另外一大优势——持久化。 由于 Redis 是一个内存数据库,所谓内存数据库,就是将数据库中的内容保存在内存中,这与传统的MySQL,Oracle等关系型数据库直接将内容保存到硬盘中相比,内存数据库的读写效率比传统数据库要快的多(内存的读写效率远远大于硬盘的读写效率)。但是保存在内存中 阅读全文
摘要:
Redis 相对于 Memcache 等其他的缓存产品,有一个比较明显的优势就是 Redis 不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。本篇博客我们就将介绍这些数据类型的详细使用以及顺带介绍Redis系统的相关命令用法。注意:Red 阅读全文
摘要:
1、开头说明 需要使用内存大小时,可以指定单位,通常是以 k,gb,m的形式出现,并且单位不区分大小写。 2、INCLUDES 我们知道Redis只有一个配置文件,如果多个人进行开发维护,那么就需要多个这样的配置文件,这时候多个配置文件就可以在此通过 include /path/to/local.c 阅读全文
摘要:
下载redis:https://github.com/MicrosoftArchive/redis/releases (这里选择Redis-x64-3.0.504.zip) 一、单节点环境 Redis临时服务 # 打开cmd,进入到刚才解压到的目录,启动临时服务:redis-server.exe r 阅读全文
摘要:
一、缓存的需求 前端页面广告位数据无需每次查询后台系统的接口,可以在前台系统添加缓存,提高访问首页的速度。 电商网站首页左侧商品类目一栏的数据也可以缓存起来,不用每次打开首页都去数据库读取数据,读取数据库IO开销大。 解决方案:使用缓存。 目前缓存的主流技术 Redis Memcached。 red 阅读全文
摘要:
一、缓存的意义 二、缓存更新策略 三、缓存的设计粒度 四、缓存穿透 五、缓存雪崩 六、热点KEY 阅读全文
摘要:
一、spymemcached的使用 添加依赖 <!-- memcache客户端 spymemcached--> <dependency> <groupId>net.spy</groupId> <artifactId>spymemcached</artifactId> <version>2.12.3< 阅读全文
摘要:
一、安装memcached 使用以下地址下载: http://downloads.northscale.com/memcached-win32-1.4.4-14.zip http://downloads.northscale.com/memcached-win64-1.4.4-14.zip 然后解压 阅读全文
摘要:
一、memcache是什么 memcache是一套分布式内存缓存系统(虽称为“分布式”缓存服务器,但服务器端并没有“分布式”功能。服务器端仅包括内存存储功能,分布式功能完全由客户端程序库实现。)。所谓分布式,意味着它不是本地的,而是基于网络连接完成服务。Memcached把一些数据通过key=val 阅读全文
摘要:
一、如何使用Ehcache # 在pom.xml中引入依赖 <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.10.6</version> </dependency> 阅读全文
摘要:
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip 阅读全文