一 分布式应用架构演进

来源:互联网 发布:中国招标网软件 编辑:程序博客网 时间:2024/05/22 02:07
    垂直应用架构:LAMP架构:linux+apache tomcat+mysql+php,复杂应用的开发维护成本高,部署效率逐渐降低;团队协作效率差,部分公共功能重复开发,代码重复率居高不下;系统可靠性变差;维护和定制困难;新功能上线周期长;不利于业务扩展;性能瓶颈;
    RPC全称是Remote Procedure Call,它是一种进程间通信方式。
    PRC框架的目标就是让远程过程调用更加简单/透明,PRC框架负责屏蔽底层的传输方式(TCP或UDP)/序列化方式(XML/JSON/二进制)和通信细节。
    JAVA原生态的序列化/SOCKET通信/动态代理/反射机制,实现最简单的RPC框架。它有三部分组成:
    1)服务提供者,它运行在服务端,负责提供服务接口定义和服务实现类。
    2)服务发布者,它运行在RPC服务端,负责将本地服务发布成远程服务,供其它消费者调用。
    3)本地服务代理,它允许在PRC客户端,通过代理调用远程服务提供者,然后将结果进行封装返回给本地消费者。

    Apache Thrift
    Avro-RPC   hadoop下的一个子项目
    Hessian    二进制RPC框架
    Dubbo
    gRPC    基于HTTP/2设计,更多强大的功能

    Protobuf是一个灵活/高效/结构化的数据系列化框架,跨语言

    SOA服务化架构,是一种粗粒度/松耦合的以服务为中心的架构,接口之间通过定义明确的协议和接口进行通信。
    原则:服务可复用;服务共享一个标准契约;服务是松耦合的;服务是底层逻辑的抽象;服务是可组合/可编排的;服务之自治的(不依赖于其他服务);服务是无状态的;服务是可以被自动发现的;

微服务架构是一种服务化架构风格,通过将功能分散到各个离散的服务中以实现对解决方案的解耦。
特征:原子服务,专注于做一件事;高密度部署;敏捷交付;微自治。

企业服务总线(ESB)

微服务架构对比SOA:
1)服务拆分粒度
2)服务依赖
3)服务规模
4)架构差异
5)服务治理
6)敏捷交付


总结

MVC --> RPC --> SOA --> 微服务
    



























    
原创粉丝点击