随笔分类 - Distributed System
Knowledge Of Distributed System
摘要:一、基本功能演示1.1 Maven依赖信息1.2 代码演示方法说明1.3 创建Zookeeper节点信息二、Watcher2.1 什么是Watcher接口2.2 Watcher代码一、基本功能演示1.1 Maven依赖信息 org.apache.zookeeper zookeeper 3.4.61.2 代码演示public clas...
阅读全文
摘要:一、概述实现原理实现代码一、概述分布式锁解决方案(目的:为了保证在分布式领域中共享数据安全问题)数据库实现分布式锁(不推荐、效率特别低)基于Redis实现分布式锁setNx (非常麻烦考虑死锁、释放问题) 、redission分布式锁基于Zookeeper实现分布式锁(强烈推荐)SpringCloud内置实现全局锁(冷门)实现起来非常简单,使用临时节点释放锁(效率最高)、失效时间容易控制分布式锁(...
阅读全文
摘要:一、思路使用Zookeeper实现负载均衡原理,服务器端将启动的服务注册到,zk注册中心上,采用临时节点。客户端从zk节点上获取最新服务节点信息,本地使用负载均衡算法,随机分配服务器。服务端启动的时候 会想注册中心Zookeeper中添加节点,(注意这个节点是临时的,目的是如果服务端关闭连接的时候,该结点会自动删除)客户端会查询注册中心里面的节点信息,拿到对应的地址和端口号,使用本地负载均衡算法随...
阅读全文
摘要:一、Windows环境1.1 下载和安装:1.2 开启1.3 关闭1.4 用客户端连接二、Linux 环境一、Windows环境1.1 下载和安装:环境要求:必须要有jdk环境1、安装JDK2、安装Zookeeper 。在官网http://zookeeper.apache.org/ 下载zookeeper,这里下载的zookeeper-3.4.12版本。解压zookeeper-3.4.12 (注意...
阅读全文
摘要:一、缓存雪崩1.1 缓存雪崩产生的原因1.2 解决方案1.3 锁的方式1.4 消息中间件1.5 一级和二级缓存1.6 均摊分配redis key 失效时间二、缓存穿透一、缓存雪崩1.1 缓存雪崩产生的原因 缓存雪崩通俗简单的理解就是:由于原有缓存失效(或者数据未加载到缓存中),新缓存未到期间(缓存正常从Redis中获取,如下图)所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造...
阅读全文
摘要:一、概述1.1 Redis3.0版本之前1.2 常见集群方案二、Redis-Cluster原理三、搭建集群方案3.1 准备工作3.2 创建模拟集群的文件夹3.3 复制脚本3.4 复制一个新 Redis 实例3.5 再复制出五个新 Redis 实例3.6 修改 9002-9006 的 redis.conf 文件3.7 启动9001-9006六个节点3.8 随便找一个节点测试试3.9 安装集群所需软件...
阅读全文
摘要:一、概述1.1 一些疑惑?1.2 场景1.3 一级缓存、两级缓存的产生1.4 流程分析二、项目搭建一、概述1.1 一些疑惑?Ehcache本地内存Redis 分布式缓存可以共享一级(redis) 和二级概念(Ehcache )目的是当redis挂的之后,有备台(本地JVM缓存)一级(Ehcache )和二级概念(redis) 先走本地,如果本地没有在走网络,效率会更高点。Redis与数据库的区别:...
阅读全文
摘要:一、概述1.1 什么是Redis持久化二、RDB持久化2.1 简介2.2 配置三、AOF持久化3.1 简介3.2 配置四、AOF与RDB区别一、概述1.1 什么是Redis持久化什么是Redis持久化,就是将内存数据保存到硬盘。Redis 持久化存储 (AOF 与 RDB 两种模式)二、RDB持久化2.1 简介RDB 是以二进制文件,是在某个时间 点将数据写入一个临时文件,持久化结束后,用这个临时...
阅读全文
摘要:一、概述什么是哨兵机制二、环境配置2.1 虚拟机2.2 安装Redis2.3 配置主从复制2.4 配置哨兵2.5 测试2.6 疑惑(待解决)一、概述什么是哨兵机制Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务:监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。提醒(Notificati...
阅读全文
摘要:一、概述1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。2、主从复制应用场景:集群(多台服务器)、读写分离3、通过redis的复制功能可以很好...
阅读全文
摘要:一、概述Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:155609当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会...
阅读全文
摘要:一、缓存概述1.1 缓存技术分类1.2 缓存框架分类1.3 Session理解的误区二、基于Map集合实现本地缓存2.1 定义Map缓存工具类2.2 使用案例三、Ehcache 缓存框架四、分布式缓存Redies一、缓存概述1.1 缓存技术分类1.客户端缓存页面缓存浏览器缓存App客户端缓存2.网络缓存代理缓存CDN缓存3.服务器缓存数据库缓存平台缓存级缓存4.缓存最终的目的是为减轻服务端压力,减...
阅读全文
摘要:一、概述 1.1 简介 1.2 Redis单线程好处 1.3 单线程弊端 1.4 Redis应用场景 1.5 Redis 和 Memecached 的区别 二、安装、开启以及关闭 三、Redis基本数据类型 四、SpringBoot整合Redis 五、Redis发布订阅 六、Redis主从复制 七、
阅读全文
摘要:一、Linux环境的操作1.1 下载安装1.2 启动1.3 连接Redis客户端1.4 关闭二、Windows和Mac下的操作2.1 下载安装2.2 启动2.3 连接客户端2.4 关闭三、Redis 管理工具一、Linux环境的操作1.1 下载安装1.下载Redis安装包wget http://download.redis.io/releases/redis-3.2.9.tar.gz2.解压Red...
阅读全文
摘要:一、概述二、String(字符串)三、List(列表)四、Hash(字典)五、Set(集合)六、Sorted Set(有序集合)一、概述 * Redis目前支持5种数据类型,分别是:String(字符串)List(列表)Hash(字典)Set(集合)Sorted Set(有序集合)下面就分别介绍这五种数据类型及其相应的操作命令。二、String(字符串)String是简单的 key-value ...
阅读全文
摘要:一、Ehcache概述1.1 简介1.2 Ehcache的主要特性二、Ehcache使用介绍2.1 Ehcache缓存过期策略2.2 如何解决缓存与db不同步的问题。三、Ehcache 基本项目演示3.1 Maven环境依赖3.2 YML配置文件信息3.3 App启动方式3.4 项目使用3.5 EhCache配置3.6 清除缓存四、Ehcache集群模式4.1 项目配置4.2 项目测试4.3 常用...
阅读全文
摘要:一、背景1.1 服务熔断1.2 服务降级1.3 服务隔离1.4 总结二、使用Hystrix实现服务隔离和降级2.1 Hytrix 简介2.2 线程池方式2.3 信号量三、项目搭建3.1 订单工程1. 引入Maven依赖2. Service3.Controller4.配置文件5.工具类3.2 会员工程四、项目源码一、背景 在今天,基于SOA的架构已经大行其道。伴随着架构的SOA化,相关联的服务熔断...
阅读全文
摘要:一、概述1.1 动态页面与静态页面区别1.2 什么是动静分离1.3 为什么要用动静分离二、Nginx实现动静分离2.1 架构分析2.2 配置三、动静分离与前后分离区别:四、一些问题一、概述1.1 动态页面与静态页面区别静态资源: 当用户多次访问这个资源,资源的源代码永远不会改变的资源。动态资源:当用户多次访问这个资源,资源的源代码可能会发送改变。1.2 什么是动静分离动静分离是让动态网站里的动态网...
阅读全文
摘要:一、LVS1.1 概述1.2 Nginx与LVS区别什么二、Keepalived2.1 概述2.2 keepalived和其工作原理三、LVS+Keepalived+Nginx 搭建双机主从热备3.1 问题引出3.2 架构流程图3.3 环境搭建1).环境服务配置2).下载并编译keepalived3).把keepalived安装成Linux系统服务4).使用keepalived虚拟VIP5).ke...
阅读全文
摘要:一、概述二、配置2.1 环境准备2.2 安装及配置1).下载Nginx2).下载nginx_tcp_proxy_module 插件3).编译Nginx4).修改Nginx.conf配置文件5).测试一、概述 Nginx1.9之后,开始支持四层负载均衡,需要引入额外的模块二、配置2.1 环境准备#测试环境 CentOS7#Nginx1.9开始支持tcp层的转发,通过stream实现的,而socke...
阅读全文


浙公网安备 33010602011771号