• 架构演变与分布式架构


    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 版权协议,转载请附上原文出处链接和本声明。
  • 相关阅读:
    springboot事物和事物回滚
    MyBatis Sql语句中的转义字符
    使用 vagrant新建Linux虚拟机
    Centos 6.7 安装mongodb
    阿里云windows server 2012 TIME_WAIT CLOSE_WAIT
    使用Eclipse打jar包 包含依赖jar包
    linux crontab定时器
    mysql 存储过程学习笔记
    oracle windows 新建用户授权 导出导入bmp文件
    解决hash冲突的方法
  • 原文地址:https://www.cnblogs.com/JaminYe/p/13526397.html
Copyright © 2020-2023  润新知