分布式架构设计

  • 分布式理论与分布式架构设计理论
  • 1. 分布式架构介绍
  • 2.分布式理论
    • 2.1 数据一致性
    • 2.2 CAP定理
    • 3.分布式一致性协议
    • 4.分布式系统设计策略
    • 5. 分布式架构服务调用
      • 5.1 服务调用
      • 5.2 实现方式
    • 6.分布式服务治理
      • 6.1 服务协调
      • 6.2 服务削峰
      • 6.3 服务降级
      • 6.4 服务限流
      • 6.5 服务熔断
      • 6.6 服务链路追踪

分布式理论与分布式架构设计理论

1. 分布式架构介绍

通俗的理解,所谓分布式系统,就是一个业务拆分成多个子业务,分布在不同的服务器节点,共同构成的系统称为分布式系统
分布式系统面临的问题:

  1. 通信异常
  2. 网络分区
  3. 节点故障
  4. 三态:成功、失败和超时
  5. 重发
  6. 一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外)。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同

2.分布式理论

2.1 数据一致性

分布式数据一致性,指的是数据在多份副本中存储时,各副本中的数据是一致的.
一致性分类:

  1. 强一致性
  2. 弱一致性
  3. 最终一致性: 最终一致性也是弱一致性的一种

2.2 CAP定理

CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer’s theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点

一致性这里指的是强一致性
CAP三者不可能同时满足论证
一般选AP

3.分布式一致性协议

两阶段提交协议,简称2PC(2 Prepare Commit),是比较常用的解决分布式事务问题的方式,要么所有参与进程都提交事务,要么都取消事务,即实现ACID中的原子性(A)的常用手段。

三阶段提交协议
3PC,全称 “three phase commit”,是 2PC 的改进版,将 2PC 的 “提交事务请求” 过程一分为二,共形成了由CanCommit、PreCommit和doCommit三个阶段组成的事务处理协议。

4.分布式系统设计策略

4.1 心跳检测
4.2 高可用
4.3 容错性
4.4 负载均衡

5. 分布式架构服务调用

5.1 服务调用

5.2 实现方式

HTTP 应用协议的通信框架
RPC 框架
跨域常见的解决方案

  1. 使用jsonp解决网站跨域
    缺点:不支持post请求,代码书写比较复杂
  2. 使用HttpClient内部转发
  3. 使用设置响应头允许跨域
    response.setHeader(“Access-Control-Allow-Origin”, “*”); 设置响应头允许跨域.
  4. 基于Nginx搭建企业级API接口网关
  5. 使用Zuul搭建微服务API接口网关
    Zuul是spring cloud中的微服务网关。网关: 是一个网络整体系统中的前置门户入口。请求首先通过网关,进行路径的路由,定位到具体的服务节点上。可以使用zuul的过滤器的请求转发去解决跨域问题

6.分布式服务治理

6.1 服务协调

分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果
分布式锁

6.2 服务削峰

  1. 消息队列解决削峰
  2. 流量削峰漏斗:层层削峰

6.3 服务降级

6.4 服务限流

6.5 服务熔断

6.6 服务链路追踪

后端总结(分布式架构设计)相关推荐

  1. 如何实现高容量大并发数据库服务 | 数据库分布式架构设计

    袋鼠学院和优云.阿里云联合举办的沙龙结束之后,总是有小伙伴们来问PPT内容,想要进一步了解Topic内容.(哦,对了对了,竟然还有小伙伴专门冲着袋鼠云去听沙龙,感动cry~~) 千呼万唤,忙成狗的袋鼠 ...

  2. 阿里P8架构师谈:分布式架构设计12精讲

    分布式架构设计包含: 分布式缓存 分布式消息中间件 分库分表.读写分离 单点登录等 想成为阿里160万年薪的P8架构师?你必须掌握如下6大技能体系! 阿里P8架构师谈:分布式架构系统拆分原则.需求.微 ...

  3. 分布式架构设计概要总结

    分布式架构概要总结 构建分布式的原因 业务架构的演进 在上图简单以时间线为准,粗略描述了我们系统架构随着业务的需求考量以及业务的发展,系统承担的并发量也将逐步提升,这就要求我们的系统架构需要开始思考如 ...

  4. 分布式架构设计之基础软件系统架构

    分布式架构设计之基础软件系统架构 原创文章来之不易,转载请注明出处: http://blog.csdn.net/why_2012_gogo/article/details/74137631 一个好的系 ...

  5. Java性能优化:架构设计-分布式架构设计

    分布式架构设计 一.前言 随着微服务的流行,"分布式架构"作为高频词时常出现在开发者面前,我们是否理解分布式架构?它和微服务有什么区别呢?这一小节我们将讲解微服务和分布式架构那些事 ...

  6. 后端与前端架构设计的区别

    这里的后端指Java后端,PHP后端,GO后端,服务器端等. 前端指Web端(网页,小程序,APP内嵌),移动端/Pad/手表/定制设备等,包括(Android & IOS & 鸿蒙) ...

  7. 以电商网站为例,谈大型分布式架构设计与优化

    本文大纲: 1. 使用电商案例的原因 2. 电商网站需求 3. 网站初级架构 4. 系统容量估算 5. 网站架构分析 6. 网站架构优化 本文主题为电商网站架构案例,将介绍如何从电商网站的需求,到单机 ...

  8. php项目分布式架构设计,【转】互联网项目架构之基于服务的分布式架构

    以前一直找一篇通俗易懂的文章,今天终于找到了,记录下. 文章来源:赵小忠 文章地址:https://www.cnblogs.com/1315925303zxz/p/6371550.html 随着互联网 ...

  9. 腾讯QQgame高性能服务器集群架构看分布式架构设计原则

    腾讯QQGame游戏同时在线的玩家数量极其庞大,为了方便组织玩家组队游戏,腾讯设置了大量游戏室(房间),玩家可以选择进入属意的房间,并在此房间内找到可以加入的游戏组(牌桌.棋盘等).玩家选择进入某个房 ...

最新文章

  1. MonkeyRunner实例及使用说明
  2. MySQL触发器的使用
  3. dubbo k8s 服务发现_服务化改造实践(二)| Dubbo + Kubernetes
  4. spring cloud 集成consul
  5. warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID
  6. Angry Birds Rio 攻略 1-1
  7. 【Android】事件传递:向下拦截,向上处理
  8. Android之java.lang.OutOfMemoryError: Failed to allocate a ** byte allocation with **free bytes and 2M
  9. HTML<div>标签、<img>标签
  10. 40张图+万字,从9个数据类型帮你稳稳的拿捏Redis数据结构
  11. 将Entity Framework Core v5.0移至单独的项目
  12. 读我是一只IT小小鸟有感
  13. 【Git/Github学习笔记】Git常用命令(推送到远程)
  14. android后厨打印机漏单,后厨打印丢单解决方案
  15. 苹果丽黑字体下载 Hiragino Sans GB W3/W6 ttf格式
  16. 前言,flutter页面切换动画
  17. 如何编制试算平衡表_编制试算平衡表
  18. Vue+Element UI完成新建调查问卷
  19. 数据仓库-6.元数据管理
  20. RSI指标各种买卖信号公式源码分享

热门文章

  1. ata考证和计算机一级b,ATA
  2. 速锐得科技开发新能源汽车在城市物流配送TBOX的背景和意义
  3. PCB各层的含义 (solder 和 paste 区别)
  4. Python基础练习题--第二章 顺序结构
  5. 疯狂Java讲义(五)----第二部分
  6. 7个关键组件保障小型企业安全在线
  7. “吃鸡”外挂黑产上亿,游戏行业如何做好防御?
  8. 【读书笔记】《用一年时间重生》-第二章
  9. 哪种企业邮箱最好?企业邮箱最好有哪些功能?
  10. 三线城市很难受,要重回一线城市吗?