• 暂时停更一段时间!
  • 近期网站将陆续进行前端页面改造!
  • 招募网站编辑,联系站长!

标签:分布式

基于SSM框架的Tomcat集群与Redis分布式电商系统平台的设计与开发(二)

项目截图项目预览项目初始化数据库初始化安装 IDEAMaven 创建 Web 项目git 创建仓库及初始化项目包初始化Mybatis-generatorMybatis-pluginMybatis-pagehelperWeb.xml 初始化spring 配置 applicationContext.xmlsp……

基于SSM框架的Tomcat集群与Redis分布式电商系统平台的设计与开发(一)

项目概述题目:基于 JavaWeb 的大型分布式集群电商系统平台的设计与开发课题需求:本课题需要学生自行设计一个高并发,高性能,高可用的互联网在线电商系统,使用主流的SSM框架以及前后端分离的开发模式,设计并完善多种企业级架构解决方案,如在线支付解决方案,搜索解决方案,负载均衡解决方案,自动化发布解决方案,Tomcat集群与 Redis分布式解决方案等等……

系统设计学习笔记之分布式

一、分布式锁在单机场景下,可以使用 Java 提供的内置锁来实现进程同步。但是在分布式场景下,需要同步的进程可能位于不同的节点上,那么就需要使用分布式锁。阻塞锁通常使用互斥量来实现:互斥量为 1 表示有其它进程在使用锁,此时处于锁定状态;互斥量为 0 表示未锁定状态。1 和 0 可以用一个整型值表示,也可以用某个数据存在或者不存在表示,存在表示……

一致性协议(三)Raft 协议

Raft 和 Paxos 类似,但是更容易理解,也更容易实现。Raft 主要是用来竞选主节点。单个 Candidate 的竞选有三种节点:Follower、Candidate 和 Leader。Leader 会周期性的发送心跳包给 Follower。每个 Follower 都设置了一个随机的竞选超时时间,一般为 150ms\~300ms,如果在这个时间……

一致性协议(二)Paxos 协议

 用于达成共识性问题,即对多个节点产生的值,该算法能保证只选出唯一一个值。主要有三类节点:1. 提议者(Proposer):提议一个值;2. 接受者(Acceptor):对每个提议进行投票;3. 告知者(Learner):被告知投票的结果,不参与投票过程。执行过程规定一个提议包含两个字段:[n, v],其中 n 为序号(具有唯一性)……

一致性协议(一)两阶段提交协议

 Two-phase Commit(2PC)。可以保证一个事务跨越多个节点时保持 ACID 特性。两类节点:协调者(Coordinator)和参与者(Participants),协调者只有一个,参与者可以有多个。运行过程1. 准备阶段:协调者询问参与者事务是否执行成功;2. 提交阶段:如果事务在每个参与者上都执行成功,协调者发送通知让参……

分布式问题分析(六)分库与分表带来的分布式困境与应对之策

事务问题使用分布式事务。查询问题使用汇总表。ID 唯一性– 使用全局唯一 ID:GUID。– 为每个分片指定一个 ID 范围。– 分布式 ID 生成器 (如 Twitter 的 [Snowflake](https://twitter.github.io/twitter-server/) 算法)。参考资料……

分布式问题分析(五)分布式 Session

在分布式场景下,一个用户的 Session 如果只存储在一个服务器上,那么当负载均衡器把用户的下一个请求转发到另一个服务器上,该服务器没有用户的 Session,就可能导致用户需要重新进行登录等操作。1. Sticky Sessions需要配置负载均衡器,使得一个用户的所有请求都路由到一个服务器节点上,这样就可以把用户的 Session 存放在该服务器……

分布式问题分析(四)分布式锁

Java 提供了两种内置的锁的实现,一种是由 JVM 实现的 synchronized 和 JDK 提供的 Lock,对于单机单进程应用,可以使用它们来实现锁。当应用涉及到多机、多进程共同完成时,那么这时候就需要一个全局锁来实现多个进程之间的同步。使用场景在服务器端使用分布式部署的情况下,一个服务可能分布在不同的节点上,比如订单服务分布在节点 A 和节点……

分布式问题分析(三)负载均衡的算法与实现

 算法1. 轮询(Round Robin)轮询算法把每个请求轮流发送到每个服务器上。下图中,一共有 6 个客户端产生了 6 个请求,这 6 个请求按 (1, 2, 3, 4, 5, 6) 的顺序发送。最后,(1, 3, 5) 的请求会被发送到服务器 1,(2, 4, 6) 的请求会被发送到服务器 2。该算法比较适合每个服务器的性能差不多的……

分布式问题分析(二)分布式事务

指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。产生原因– 数据库分库分表;– SOA 架构,比如一个电商网站将订单业务和库存业务分离出来放到不同的节点上。应用场景– 下单:减少库存、更新订单状态。库存和订单如果不在同一个数据库,就涉及分布式事务。– 支付:买家账户扣款、卖家账户入账。……

分布式问题分析(一)分布式的场景

分布式主要是为了提供可扩展性以及高可用性,业务中使用分布式的场景主要有分布式存储以及分布式计算。分布式存储中可以将数据分片到多个节点上,不仅可以提高性能(可扩展性),同时也可以使用多个节点对同一份数据进行备份(高可用性)。至于分布式计算,就是将一个大的计算任务分解成小任务分配到多个节点上去执行,再汇总每个小任务的执行结果得到最终结果。MapReduce ……

分布式基础(八)CDN 架构

通过将内容发布到靠近用户的边缘节点,使不同地域的用户在访问相同网页时可以就近获取。不仅可以减轻服务器的负担,也可以提高用户的访问速度。从下图可以看出,DNS 在对域名解析时不再向用户返回源服务器的 IP 地址,而是返回边缘节点的 IP 地址,所以用户最终访问的是边缘节点。边缘节点会先从源服务器中获取用户所需的数据,如果请求成功,边缘节点会将页面缓存下来,下……

分布式基础(七)容错

 分布式系统故障发生的概率很大,为了实现高可用以及减少人工运维成本,需要实现自动化容错。故障检测通过 **租约机制** 来对故障进行检测。假设节点 A 为主控节点,节点 A 向节点 B 发送租约,节点 B 在租约规定的期限内才能提供服务。期限快到达时,节点 B 需要向 A 重新申请租约。如果过期,那么 B 不再提供服务,并且 A 也能知道 ……

分布式基础(六)BASE

 BASE 是 Basically Available(基本可用)、Soft State(软状态)和 Eventually Consistent(最终一致性)三个短语的缩写。BASE 理论是对 CAP 中一致性和可用性权衡的结果,是基于 CAP 定理逐步演化而来的。BASE 理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点……

分布式基础(五)CAP

 分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)和分区容忍性(P:Partition tolerance),最多只能同时满足其中两项。这三个概念上文中已经提到。在设计分布式系统时,需要根据实际需求弱化某一要求。因此就有了下图中的三种设计:CA、CP 和 AP。需要注意的是,分区容忍性必不……

分布式基础(四)复制

复制是保证分布式系统高可用的基础,让一个数据存储多个副本,当某个副本所在的节点出现故障时,能够自动切换到其它副本上,从而实现故障恢复。多个副本通常有一个为主副本,其它为备副本。主副本用来处理写请求,备副本主要用来处理读请求,实现读写分离。主副本将同步操作日志发送给备副本,备副本通过回放操作日志获取最新修改。主备副本之间有两种复制协议,一种是强同步复制协……

分布式基础(三)负载均衡

 衡量负载的因素很多,如 CPU、内存、磁盘等资源使用情况、读写请求数等。分布式系统应当能够自动负载均衡,当某个节点的负载较高,将它的部分数据迁移到其它节点。每个集群都有一个总控节点,其它节点为工作节点,由总控节点根据全局负载信息进行整体调度,工作节点定时发送心跳包(Heartbeat)将节点负载相关的信息发送给总控节点。一个新上线的工作节点……

分布式基础(二)数据分布

分布式系统的数据分布在多个节点中,常用的数据分布方式有哈希分布和顺序分布。哈希分布哈希分布就是将数据计算哈希值之后,按照哈希值分配到不同的节点上。例如有 N 个节点,数据的主键为 key,则将该数据分配的节点序号为:hash(key)%N。传统的哈希分布算法存在一个问题:当节点数量变化时,也就是 N 值变化,那么几乎所有的数据都需要重新分布,将导致大量……

分布式基础(一)基本概念

异常1. 服务器宕机内存错误、服务器停电等都会导致服务器宕机,此时节点无法正常工作,称为不可用。服务器宕机会导致节点失去所有内存信息,因此需要将内存信息保存到持久化介质上。2. 网络异常有一种特殊的网络异常称为 **网络分区** ,即集群的所有节点被划分为多个区域,每个区域内部可以通信,但是区域之间无法通信。3. 磁盘故障磁盘故障是一种发生概率……