架构演变与分布式架构

  1. 架构演变

  2. 分布式架构的成本

    1. 分布式事务:几个操作在多台服务器上执行如何保证要么成功要么不成功
    2. 不允许服务有状态:处理一次请求的数据要么从数据库取要么从请求中拿,不允许服务器本身存储任何信息
    3. 服务依赖关系复杂
    4. 部署运维成本
    5. 分布式会话,如何保证session一致性
    6. 分布式job,定时任务在哪一台机器上执行
  3. 远程调用技术

    1. RMI java远程方法调用 简单容易使用 不支持跨语言
    2. webService 跨语言sdk支持 实现较重 发布繁琐
    3. http 简单轻量跨语言 不支持sdk
    4. hession 简单轻量sdk支持 不支持跨语言
    • 问题
      1. 负载均衡 多台机器应该调用哪一个
      2. 服务发现 发现新的服务地址
      3. 健康检测 服务宕机或恢复后怎么办
      4. 容错 调用其中一台出错怎么办
  4. 分布式架构的三种解决方案

    1. 基于反向代理的集中式分布式架构
      • 在server1与baseServer1中通过nginx做负载均衡
      • 优点 简单快速
      • 问题 Nginx中心负载 http传输 json序列化 开发效率 运维效率
    2. 嵌入应用内部的去中心化架构
      • 独立的注册中心 服务启动自动注册到注册中心并定期报心跳 客户端代理发现服务并负载均衡
      • 优点 去中心化,客户直连服务端 动态注册并发现服务 高效稳定网络传输,可容错
    3. 独立代理进程架构
      • 独立的注册中心 代理作为独立的进程部署在一个主机上 实现负载均衡和服务发现
作者: JaminYe
版权声明:本文原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文地址:https://www.cnblogs.com/JaminYe/p/13526397.html