随笔分类 - Distributed System
Knowledge Of Distributed System
摘要:一、常见Web安全漏洞1.1 XSS攻击什么是XSS攻击手段如何防御XSS攻击1.2 SQL注入攻击什么是SQL注入SQL注入防攻击手段MyBatis #与$区别1.3 Http请求防盗链什么是防盗链如何实现防盗链1.4 CSRF攻击CSRF攻击产生的原因防御CSRF攻击手段1.5 忘记密码漏洞1.6 上传文件漏洞漏洞描述漏洞危害漏洞演示修复方案代码演示1.7 其他攻击和漏洞二、互联网API接口幂...
阅读全文
摘要:一、DNS域名解析二、大型网站系统应有的特点三、网站架构演变过程3.1 传统架构3.2 分布式架构3.3 SOA架构3.4 微服务架构四、高并发设计原则4.1 拆分系统4.2 服务化4.3 消息队列4.4 缓存技术4.5 并发化五、高可用设计原则5.1 降级5.2 限流5.4 切流量5.5 可回滚六、业务设计原则6.1 防重设计6.2 幂等设计6.3 流程定义6.4 状态与状态机6.5 后台系统操...
阅读全文
摘要:一、概述1.1 Web前端优化1.2 DNS域名解析过程1.3 传统方式请求静态资源二、CDN内容分发2.1 什么是CDN2.2 CDN内容分发原理2.3 阿里云环境实战搭建CDN内容分发一、概述1.1 Web前端优化网站动静分离动静分离动态的资源和静态资源分别部署到不同的服务器上,使用Nginx实现静态服务器,因为nginx实现静态服务器访问速度的效果比tomcat实现静态服务器访问效果好很多。...
阅读全文
摘要:一、概述1.1 高并发服务限流特技1.2 为什么要互联网项目要限流1.3 高并发限流解决方案二、限流算法2.1 计数器2.2 滑动窗口计数2.3 令牌桶算法使用RateLimiter实现令牌桶限流2.4 漏桶算法三、应用级限流3.1 限流总并发/连接/请求数3.2 限流某个接口的总并发/请求数3.3 限流某个接口的时间窗请求数3.4 接入层限流一、概述1.1 高并发服务限流特技在开发高并发系统时有...
阅读全文
摘要:一、概述二、相关命令列表2.1 MULTI2.2 EXEC2.3 DISCARD2.4 WATCH key [key ...]2.5 UNWATCH三、命令示例3.1 事务被正常执行3.2 事务中存在失败的命令3.3 回滚事务四、WATCH命令和基于CAS的乐观锁五、SpringBoot操作Redis事务六、Redis集群事物一、概述和众多其它数据库一样,Redis作为NoSQL数据库也同样提供了...
阅读全文
摘要:一、String1.1 概述1.2 相关命令列表1.3 命令示例二、List2.1 概述:2.2 相关命令列表:2.3 命令示例:2.4 链表结构的小技巧:三、Hashes3.1 概述3.2 相关命令列表3.3 命令示例四、Set4.1 概述:4.2 相关命令列表:4.3 命令示例:4.4 应用范围:五、Sorted-Sets5.1 概述:5.2 相关命令列表:5.3 命令示例:5.4 应用范围:...
阅读全文
摘要:一、Maven依赖 二、配置文件 Redis中有16库默认连接是0,假设公司有多个不同分布式项目,但是我们现在只有一个Redis以项目方式区分不同的库。每个项目连接是相同,但是库不同。SpringBoot可以通过配置yml的方式来修改保存到哪一个库中: 三、Service 四、Controller
阅读全文
摘要:一、概述 1.1 简介 1.2 Zookeeper集群机制 1.3 Zookeeper特性 二、Zookeeper应用场景 三、Zookeeper数据结构 四、Zookeeper安装 五、Java操作Zookeeper 六、Zookeeper实现负载均衡 七、Zookeeper 分布式锁 八、Zoo
阅读全文
摘要:一、Nginx 简介安装启动 二、Nginx的应用场景 三、Nginx中的配置命令 四、实现动态负载均衡 五、四层负载均衡 六、主从热备 七、动静分离 一、Nginx 简介安装启动 Nginx 作为一种轻量级的服务器,可用于负载均衡和反向代理,下面这篇文章主要介绍了Nginx在Window 、Lin
阅读全文
摘要:一、问题引出 二、分布式Session问题 三、网站跨域问题 四、分布式任务调度平台 五、分布式配置中心 六、分布式锁解决方案 七、缓存技术 一、问题引出 【Distributed】分布式系统中遇到的问题 二、分布式Session问题 【Redis】分布式Session 三、网站跨域问题 【Dist
阅读全文
摘要:一、概述1.1 分布式解决的核心思路1.2 分布式锁一般有三种实现方式二、基于Redis的分布式锁2.1 使用常用命令2.2 实现思路2.3 核心代码Maven依赖信息LockRedisService测试代码三、三种分布式对比一、概述1.1 分布式解决的核心思路在多台服务器中,只能保证一台服务器的jvm进行操作1.2 分布式锁一般有三种实现方式数据库乐观锁;基于Redis的分布式锁 setnx 也...
阅读全文
摘要:一、概述1.1 什么是分布式配置中心常用分布式配置中心框架二、Apollo阿波罗2.1 Apollo特点2.2 Apollo整体架构原理2.3 Apollo Portol 环境搭建Linux上创建数据库确保端口未被占用执行启动脚本使用Apollo配置中心2.4 Apollo配置中心客户端集成打入本地Maven仓库Maven依赖信息application.yml配置文件信息修改环境创建apoll...
阅读全文
摘要:一、概述什么是定时任务二、Java实现定时任务方式2.1 Thread2.2 TimerTask2.3 ScheduledExecutorService2.4 Quartz引入maven依赖任务调度类启动类Quartz表达式三、分布式情况下定时任务会出现哪些问题?四、分布式定时任务解决方案五、XXLJOB介绍5.1 分布式任务调度平台能够帮我们实现那些事情5.2 XXLJOB GitHub5.3 ...
阅读全文
摘要:一、概述1.1 Zookeeper的角色1.2 Zookeeper的读写机制1.3 Zookeeper的保证1.4 Zookeeper节点数据操作流程二、Zookeeper 集群环境搭建 2.1 安装jdk运行jdk环境2.2 安装jdk1.8环境变量2.3 安装配置Zookeeper2.4 克隆虚拟机2.5 运行测试三、Zookeeper配置文件介绍一、概述1.1 Zookeeper的角色领导...
阅读全文
摘要:一、概述1.1 什么是网站跨域1.2 网站跨域报错案例二、五种网站跨域解决方案三、使用JSONP解决网站跨域[1]3.1 前端代码3.2 后端代码四、使用设置响应头允许跨域[2]4.1 前端代码4.2 后端代码五、使用HttpClient进行内部转发[3]5.1 前端代码5.2 后端代码六、使用Nginx搭建API接口网关[4]6.1 Nginx相关配置6.2 前端代码6.3 后端代码七、Spri...
阅读全文
摘要:一、Master选举使用场景及结构二、代码实现2.1 Maven依赖信息2.2 IndexController2.3 MyApplicationRunner2.4 ElectionMaster一、Master选举使用场景及结构现在很多时候我们的服务需要7*24小时工作,假如一台机器挂了,我们希望能有其它机器顶替它继续工作。此类问题现在多采用master-salve模式,也就是常说的主从模式,正常情...
阅读全文
摘要:一、概述1.1 什么是Session1.2 Session实现原理1.3 Session常见问题Session 保证在那里?关闭浏览器Session会失效吗服务器集群之后,Session产生的问题1.4 NginxNginx配置负载均衡Upstream Server配置负载均衡算法二、Session 相关代码演示2.1 Controller2.2 TestSessionController三、分布...
阅读全文
摘要:一、概述 大型互联网公司公司一般都采用服务器集群,这样就要实现多个服务器之间的通讯,在nginx实现负载均衡(分布式解决方案)服务器集群会产生那些问题? 分布式锁(基本)单纯的Lock锁或者synchronized只能保证单个jvm中线程安全问题分布式Sessin一致性问题分布式全局id (也可以使用分布式锁)分布式配置中心分布式日志收集系统分布式任务调度系统分布式事务(重点) 二、服务器集...
阅读全文
摘要:一、问题引出1.1 Session的原理1.2 问题概述二、解决方案三、代码实现-使用Token代替Session3.1 Service3.2 TokenController一、问题引出1.1 Session的原理//默认创建一个session,默认值为true没有找到对应的session 自动创建sessionHttpSession session = request. getSession()...
阅读全文
摘要:一、数据发布与订阅(配置中心)二、负载均衡三、命名服务(Naming Service)四、分布式通知/协调五、集群管理与Master选举六、分布式锁七、分布式事务一、数据发布与订阅(配置中心)发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据发布到ZK节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新。例如全局的配置信息,服务式服务框架的服务地址列表等就非常适合使用。二、负载...
阅读全文