SpringCloud开发框架入门知识

1.分布式开发简介

  1. 分布式开发的思考点:如何可以让代码更安全;如何有效的通讯;
在进行分布式处理的时候如何进行程序功能划分;
  1. web集群:考虑多用户并发访问的处理速度 。
业务中心:在进行一些庞大的项目设计过程之中,应该有更加完善的业务处理,这样所有的客户端(服务器),用这些业务中心的操作就可以完成具体的功能 。
数据库集群:解决了数据的存储问题,以及数据的分片管理 。
对于分布式的项目开发按照历史的发展经历过如下的一些技术:
CORBA:公共对象请求代理架构,它是一种开发的标准,而且也是许多语言都支持的开发标准 。
RMI(远程方法调用):该技术是sun提出的,该技术出现的最大特征是希望可以与CORBA进行市场的竞争,于是这技术出现时,很多公司不认可这些技术 。
SpringCloud开发框架入门知识

文章插图
 
2、RMI实现方案用户->接口(存根)->接口及实现类(骨架)
发现RMI很好用,单不如CORBA广泛 。后基于CORBA设计了RMI-IIOP协议,这个协议应用在了EJB上 。
3.EJB思想用户->WEB容器->EJB容器(WebSphere、WebLogic、JBoss)
优秀的理论,糟糕的实现 。后因XML的出现,基于XML作为交互语言的WebService登场了 。
4.Web服务及Soa服务思想1、.Net 与JAVA通过SOAP协议相互调用(WebService=XML+SOAP).
2、WebService技术开发,存在如下问题:
速度太慢了;
想要采用远程接口方式调用,就要利用开发工具生成一堆工具类代码;
3、基于上述SOA思想出现,即将所有的服务统一管理起来,就成了服务总线,那么所有的开发者直接调用里面的服务就完成一些功能 。后来又不断出现了许多的RPC开发技术,其中国内具有代表性的dubbo开发技术,不过成长最快的Rest,因为JSON的广泛引用,就如同最初XML技术造就了WebService,JSON造就了Rest服务;
利用Rest进行RPC技术实现,这样的操作速度很快,而且占用的带宽要少,SpringCloud就将整个Rest作为了RPC实现技术,并且这一技术已经开始出现现有行业的统一之势 。而且Spring Cloud依照Spring Boot开发技术,可以实现项目的打包发布以及单独运行,这一点符合当前云时代的开发要求 。
5.微服务的缺点SpringCloud整体核心架构只有一点:Rest服务,也就是说在整个SpringCloud配置过程之中,所有的配置处理都是围绕着Rest完成的,在整个Rest处理之中,一定要有两个端:服务的提供者(Provider)及服务的消费者(Consumer),所以对于整个SpringCloud基础结构就是如下所示:
用户-反向代理-Web微服务-(Restful即服务地址:端口)-微服务提供者
微架构缺点:只有业务层才能规划为微架构,
REST指的一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件 。满足这些约束条件和原则的应用程序或设计就是 RESTful 。它主要用于客户端和服务器交互类的软件 。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制 。
SpringCloud开发框架入门知识

文章插图
 
6.Feign-robbon-Eureka-Hystrix熔断处理机制客户端(WEB)-注册中心-业务层-数据层-MySQL
Web端通过Nginx实现负载均衡,业务端通过在Eureka注册中心之中进行注册,通过robbon进行业务端负载均衡配置 。通过feign伪造接口实现,将robbon伪造为接口 。Hystrix熔断处理机制,保证某一个微服务即使出现了问题,依然可以正常使用 。(原理为某个微服务出现问题,返回定义好的错误信息,而不是报错或无返回)
Feign-robbon-Eureka-Hystrix熔断处理机制
7.Zuul代理机制:客户端-调用微服务X(RPC前端/springBoot)-Rest(zuul代理)-调用微服务X(RPC后端SpringCloud)-数据层-数据库 。
通过Zuul代理的用户只需要知道指定路由的路径,就可以访问指定微服务信息,这样更好的体现了java中的“key=value”的设计思想,而且所有的微服务Zuul进行代理 。
springCloud设计的时候提供有一个SpringCloudConfig程序组件,利用这个组件就可以直接基于GIT或SVN来进行配置文件的管理 。
springBoot-zuul代理及Eureka注册服务-可通过GitHup管理的Config及微服务 。
在整体设计上SpringCloud更好的实现了RPC架构,而且使用了Rest作为通讯的基础,且大量使用的netfix公司的产品技术,这些技术也有了可靠的保证 。
8.Restful基础架构配置项目开发环境对于rest基础架构实现处理是Springcloud核心所在 。


推荐阅读