zoukankan      html  css  js  c++  java
  • Spring Cloud 微服务入门(一)--初识分布式及其发展历程

    分布式开发出现背景

    当有计算机出现一段时间之后就开始有人去想如何将不同的电脑进行网络连接,而网络连接之后对于web的项目开发就探索所谓的分布式设计,同时人们也意识到重要的数据必须多份存在。所以分布式就逐步发展起来了。

    经过多年的发展,人们认识到的问题自然而然是:单一主机所能处理的信息量是有限的,所以为了得到更高性能的设计方案,一定采用多台电脑,那么随之而来的问题是多台主机之间如何进行分配合作呢?

    于是对于分布式的设计开发,最开始就有如下思考:

    • 分布式的开发如何让代码更加安全?
    • 分布式开发中如何进行准确有效的交互?
    • 分布式中如何进行程序功能的划分?

    对于有很多开发经验的人实际都明白现在项目开发进行的分布式面对的问题:

    • WEB应用集群:考虑到多用户考虑到多用户并发访问的处理能力;
    • 业务中心:在庞大的项目设计中,应该有完善的业务处理能力,这样所有的客户端(服务器)直接调用这些业务中的操作就可以完成具体的功能;
    • 数据库集群:解决了数据库的存储问题,以及数据的分片管理;

    分布式技术历史迭代

    对于分布式的开发历史发展,经历了一下一些技术:

    1. CORBA:公共对象请求代理架构,它是一种开发的标准,有多种语言支持的开发标准。
    2. RMI(远程方法调用):该技术是有SUN推出,该技术出现的主要目标可以与CORBA的市场竞争。但是很多用户不认可该技术

               但是RMI带来了一项革命性的举措:在Java里面提出了远程接口的概念。不过RMI实现还是有些不尽人意(详细可以查阅RMI弊端)

             提出的存根和骨架是两个比较糟心的东西,使得开发变得不方便,后来被消除了。

             后来SUN的设计师发现,RMI虽然好用,但是不如CORBA广泛,于是就开始思考是否能基于CORBA做一些更好用的设计呢?于是就产生一个新的协议:RMI——IIOP的协议,这个技术用在了EJB技术上。

             3.EJB技术:EJB带来了优秀的理论,但是实现起来还是比较糟糕(具体查阅EJB缺陷),而它的理论被其它开源框架借鉴改进,无疑推动Java技术的发展。EJB方案如下:

           

                   同时,问题的存在必定使人们不断寻求解决方案,之后出现了足以改变现状的优秀语言:XML。很多公司用户就把XML当作数据交换的基础,在这种情况下, WebService(WEB服务)登上历史舞台。

             

     相比以前的技术方案,WebService是很大的进步,但是也是存在不小的缺陷:

    • 速度是比较慢的,处理速度不行;
    • 如果使用远程接口的方式调用,需要利用工具生成一对工具类代码;

    随着WebService的发展,2005左右有形成了一大核心技术:SOA(面向服务架构),它提出了服务总线(ESB)的概念

    SOA技术对新老系统的整合有着重要的意义,它解决的是系统历史包袱,当然这也是它的局限性,毕竟这些问题也不是人们刻意让它存在的。就这样SOA技术继续不温不火的持续着。

    但是SOA提出的服务总线又成为新一代分布式的讨论需求,人们发现把所有的服务统一管理起来,就成为了服务总线,如此所有的开发者直接调用里面的服务就完成需要的功能,是多么轻松省事。后来有不断出现了许多的RPC开发技术,如dubbo技术等。不过这个时候发展最快的是Rest。因为JSON的广泛应用,就像当初XML技术造就WebService一样,JSON造就了Rest服务,大家都希望我们的操作应该跟简单一些,同时Rest还是一个未成型的标准它还在发展着。

    而随着Rest技术的广泛关注和认可,Spring得到了新的机会:利用Rest进行RPC技术的实现,处理速度快,占用资源少。在Spring Cloud中真正的将整个的Rest作为RPC实现技术,并且这一技术已经开始出现有行业的统一之势;而且SpringCloud也借力与SpringBoot开发技术,可以实现项目快速打包发布运行。这点非常符合当前云时代的开发要求。至此我们对RPC实现又迈入一个更加崭新的时代。

    作者: xiaogao

    出处: http://www.cnblogs.com/tocode/>

    关于作者:专注Java Web,网络爬虫,请多多赐教!

    本文版权归作者和博客园共有,欢迎转载,但务必注明出处,且在文章页面明显位置给出, 原文链接 如有问题请咨询。

  • 相关阅读:
    海明距离分类 JavaScript
    控制器语法糖
    中文版 ImageNet Classification with Deep Convolutional Neural Networks
    中文版 R-FCN: Object Detection via Region-based Fully Convolutional Networks
    中文版 Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
    Scrapy中scrapy.Request和response.follow的区别
    神马是回调函数?
    数据库索引原理及优化
    MYSQL数据库引擎区别详解
    数据库索引原理详解
  • 原文地址:https://www.cnblogs.com/tocode/p/8835090.html
Copyright © 2011-2022 走看看