zoukankan      html  css  js  c++  java
  • SOA

    以下是金蝶中间件有限公司总经理 奉继承博士写的一篇关于SOA的理解,笔者感觉受益颇多。

    PS:笔者在此之前对于SOA毫无认知

    http://blog.vsharing.com/fengjicheng/A1059842.html

    SOA概念

           面向服务架构,是构造分布式系统的方法论,也提供一些标准和工具。、

    分布式

           一个服务器能做的事情,可以多个服务器去做,减轻压力。

    布式诞生的原因

         系统架构演变过程     

        以早期的电商平台为例,UI层调用服务层(分了N多得模块),服务层调用DB,这样的系统瓶颈会很多

     

    随着业务需求的提升,此时的系统架构无法满足需求,于是系统架构进行了升级

    出现了分库分表的概念,来解决数据库所带来的瓶颈问题,但是又出现了新的问题

    比如用户在下了一个订单之后,要同时收集多个模块里包含的一些信息,那么需要

    链接的数据库也将会很多,导致系统性能大降。

     

    系统架构再一次进行调整,UI层会访问企业数据总线,而比如订单、财务等会做成

    服务,需要订单信息的就访问订单服务诸如此类,将不再直接操作数据库,而是通过

    服务,企业数据总线叫网关,在微服务架构中有体现,数据总线会调用提供的服务,服务发布

    的时候需要注册到数据总线

     

    但是更多的时候,系统并不是这么理想化的一步步演变,很多情况是有N多个系统需要互相交互

    不管是从系统的稳定性还是各个方面来看,这无疑是很糟糕的情况,但是现有的各种系统又无法

    重构且需要满足业务需求,SOA针对于这种情况也提供了一种解决方案,建立一个数据总线,并定义

    标准,各个系统之间不再直接交互,而是通过数据总线去完成交互

     

    写好的服务需要注册到数据总线,数据总线不做其他事情只是类似于网关中转一样

    可以理解为服务向数据总线注册时就写了一些IP地址端口协议格式等信息,Client

    调用的时候就像根据Key去数据总线找(因为在注册的时候,服务肯定要描述你这个服务是要干嘛的)

    实际上Client还是直连的服务,不过不再直接去找而是找数据总线要

  • 相关阅读:
    上传文件
    vue 动态数据请求
    Layui——layerjs 用法汇总(持续更新)
    以插入排序为例子带你彻底理解算法中的时间复杂度和各种渐进符号
    flappy pig小游戏源码分析(4)——核心pig模块(未完待续)
    flappy pig小游戏源码分析(3)——解剖util
    flappy pig小游戏源码分析(2)——解剖option
    flappy pig小游戏源码分析(1)——主程序初探
    Express细节探究(1)——app.use(express.static)
    部分常用Express方法详解
  • 原文地址:https://www.cnblogs.com/JohnTang/p/12019516.html
Copyright © 2011-2022 走看看