架构的演变与分布式架构

210 阅读2分钟

本文已参加「新人创作礼」活动,一起开启掘金创作之路

  1. 架构演变
  1. 分布式架构的成本

  2. 分布式事务:几个操作在多台服务器上执行如何保证要么成功要么不成功

  3. 不允许服务有状态:处理一次请求的数据要么从数据库取要么从请求中拿,不允许服务器本身存储任何信息

  4. 服务依赖关系复杂

  5. 部署运维成本

  6. 分布式会话,如何保证session一致性

  7. 分布式job,定时任务在哪一台机器上执行

  8. 远程调用技术

  9. RMI java远程方法调用 简单容易使用 不支持跨语言

  10. webService 跨语言sdk支持 实现较重 发布繁琐

  11. http 简单轻量跨语言 不支持sdk

  12. hession 简单轻量sdk支持 不支持跨语言

  • 问题
    1. 负载均衡 多台机器应该调用哪一个
    2. 服务发现 发现新的服务地址如何自动处理
    3. 健康检测 服务宕机或恢复后怎么办
    4. 容错 调用其中一台出错怎么办重试机制
  1. 分布式架构的三种解决方案
  2. 基于反向代理的集中式分布式架构 - 在server1与baseServer1中通过nginx做负载均衡 - 优点 简单快速 - 问题 Nginx中心负载 http传输 json序列化 开发效率 运维效率
  3. 嵌入应用内部的去中心化架构 - 独立的注册中心 服务启动自动注册到注册中心并定期报心跳 客户端代理发现服务并负载均衡 - 优点 去中心化,客户直连服务端 动态注册并发现服务 高效稳定网络传输,可容错
  4. 独立代理进程架构 - 独立的注册中心 代理作为独立的进程部署在一个主机上 实现负载均衡和服务发现