跳至主要內容

SpringCloud简介

wangdx大约 10 分钟

业务中心

业务中心

  • 软件项目存在的前提条件就是要有其需要解决的问题,例如:为解决公民信息的管理问题而建立的公民信息管理系统、为了解决企业客户信息留存管理而创建了 CRM 系统而每一个系统除了精美的界面展示以及丰富的设备支持之外,最为重要的就是该系统的业务中心设计与开发

传统项目开发

  • 在现代项目开发中,很多的业务处理都离不开数据的支持。在传统的单 WEB 实例系统开发的环境中,为了可以清楚的描述出业务中心的概念,往往会为其设计专属的业务层就可以依据业务层的方法并结合实例的注入这样在控制层进行请求处理时,与数据层管理进行业务层的功能调用

业务中心

  • 随着项目业务的不断完善以及并发量的不断提升,如果使用单一的 WEB 容器,那么必然会降低程序的可维护性,同时也不便于外部平台的对接。在这样背景下,就会将单实例中的业务逻辑抽取出来,形成一套独立的业务中心,这样就可以由不同的团队进行各自代码的维护,使得项目的分工更加明确。

RPC 技术

调用远程业务中心

  • 基于业务中心的管理,可以使得项目的设计与开发更加的灵活,不仅有着明确的项目分也可以实现任意的平台对接,使整个的项目架构更加的清晰。在这样一套实现架构之中,业务中心是一个独立的运行单元,而业务中心的调用者(客户端)需要通过网络调用业务接口提供的方法而调用的过程就像调用本地接口一样,而这就是 RPC(远程过程调用)技术的核心处理形式。Remote Procedure Cal..

RPC 调用原理

  • 在 RPC 的调用过程中一般会分为服务端节点以及客户端节点两个组成部分,由于接口的具体实现子类保存在服务器端,这样在服务器端就需要维护有一个方法映射表,而客户端在进行远程方法调用时,也是依据此映射表中的 ID 来发送调用请求,由于服务器端和客户端属于两个不同的进程,这样就需要将所有请求的参数以及方法的相应结果以二进制数据流的形式进行传输,所以还需要提供有对象序列化与反序列化的机制才可以实现最终的远程调用

EJB 技术

EJB

  • EJB(Enterprise Java Beans、企业 JavaBean)是早期 JavaEE 设计与开发之中最为常用的一个设计组件,可以将 JavaBean 技术扩展到独立的服务端领域,适合于开发和部署多层结构的、分布式的业务中心,在 EJB 程序开发完成后,可以方便的将其部署到任何支持 EJB 技术标准的容器之中(例如:WebShere、WebLogic、JBoss 等),在一个完整的 EJB 架构之中会包含有三个核心组件:
    • 会话 Bean(Session Bean):EJB 的业务中心,考虑到应用环境不同分为如下两种类型:·无状态会话 Bean:不保存每一个客户端的状态信息,可以减少资源占用,并提供良好的服务端处理性能,是 EJB 在实际开发中最为常用的一种组件;有状态会话 Bean:保存每一个客户端的状态信息,会造成极大的服务器资源占用;
    • 实体 Bean(Entity Bean):持久化状态处理的对象,可以提供关系型数据库的操作,也有两种实现类型:
      • CMP(Container Managed Persistence、容器管理持久化):由开发者定义数据接口标准,随后由容器生成相应的数据库操作代码,由于不需要直接编写代码,所以有较强的数据库可移植性,Hibernate 开发框架就是一种模拟 CMP 技术理论实现的 Bean 管理持久化):开发者除了要定义数据接口标准之外,还需
      • BMP(Bean Managed Persistence、要通过 JDBC 技术标准编写数据接口的实现子类,程序的可移植性不强
    • 消息驱动 Bean(Message Driven Bean):提供异构数据平台的整合处理,采用消息的异步处理机制提供数据交互,MDB 基于 JMS 服务标准构建(Apache 提供的 ActiveMQ 组件也是基于 JMS 标准实现)

EJB 标准架构

  • EJB 是一个完全独立的组件,可以通过 WEB 容器或者通过 CORBA 协议实现远程调用所有的调用全部由会话 Bean 负责处理(需要暴露远程接口),随后会依据不同的业务处理需要实现实体 Bean 的调用(本地接口),每一个实体 Bean 都会与数据源中的数据表进行结构映射,操作实体 Bean 接口时就可以实现数据表数据的操作

CORBA

  • CORBA(Common ObjectRequest Broker Architecture、公共对象请求代理体系结构)是由 OMG 组织在 1991 年提出的公用对象请求代理程序结构的技术规范,被广泛的应用在各个大型系统之中,可以通过各个语言来实现,而后在 EJB 技术中基于 CORBA 以及 RMl(Remote Method Invocation、远程方法调用)标准定义出了 RMI-IIOP(Internet Inter-ORB Protocol、互联网内部对象请求代理协议)通讯标准,而这也成为了 EJB 技术中主要采用的调用形式,同时考虑到操作的标准化,在 EJB 中的所有组件全部为远程调用(即使多个组件在同一个 EJB 容器之中,进行调用时也采用 JINDI 远程调用)

WebService

平台整合

  • 在技术发展多元化的今天,项目平台的构建手段也越来越多,而随着各个公司业务的不也需要不断的对接其它的技术平台(断扩张,除了需要不断维护自身的技术平台之外,例如:短信平台、存储平台或者其它信息平台)这样才可能满足当前的业务需要

WebService 异构平台整合

  • 此时如果要整合的平台采用的是同一种开发技术,那么对于整合的处理会非常的容易然而实际上不同的平台可能会由不同的开发语言编写,例如:PHP、.NET、Python、GoLang、Java、Ruby 等,这样一来就需要提供有一个平台独立的通讯标准,这样就有了 WebService 技术

WebService 发布与调用

  • WebService 是一种新的利用网络进行应用集成的解决方案,主要是对外发布应用服务接口,所有的服务数据统一被 UDDl(UniversalDescription, Discovery andIntegration、通用描述,发现与集成服务)所管理,在客户端访问时,就可以通过 UDDI 实现服务接口的调用处理。 UDDI 只是提供了一个接口服务的管理功能,但是客户端在调用接口之前需要明确的知道该接口的传递参数以及返回的数据类型,这样就需要为接口提供有一个 WSDL 文件,该文件基干 XML 语法 Web Services Description Language、Web 服务描述语言)标准,实现了一个接口的完整描述,最终客户端就可以基于 SOAP 协议(SimpleObject Access Protocol、简单对象访问协议)采用 XML 数据格式实现接口数据传输

SpringCloudNetflix 技术架构

SpringCloudNetflix 核心架构 SprinaCloud 是基于 SpringBoot 基础之上构建的,是一套完整微服务集群架构管理组件集合,每一个组件都是独立的,并且不断的提供有版本更新迭代其中在 SpringCloud 早期的技术整合中主要使用了 Netflix 提供的开发套件

HA 机制

  • HA(High Available、高可用性集群)是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点,当一个节点出现故障之后可以自动的切换到其它节点提供服务

Eureka 注册中心

  • 为了便于微服务的管理,所有的微服务必须统一在注册中心进行注册,不同的微服务利用名称来进行区分(一个微服务的名称会对应有若干个节点)在调用时依据微服务的名称进行访问。利用注册中心可以有效的帮助用户监控微服务节点状态,并且可以更加方便的实现 HA 机制。由于注册中心是整个微服务的核心所在,这样就需要提供良好的处理性能,并为其配置 HA 机制以保证服务的稳定提供。

Ribbon 负载均衡

  • 单个节点微服务的处理性能是有限的,所以为了提升某一个微服务的性能,则必须引入若干个相同的微服务,所有的微服务需要在注册中心进行注册,而为了便于同一微服务的管理,则需要为同样功能的微服务设置相同的名称,在客户端进行微服务调用时,会通过 Ribbon 组件而后依据微服务的名称找到对应的节点列表,以获取相应的资源,Ribbon 除了可以实现微服务的调用之外,也可以采用特定的算法实现客户端的负载均衡处理。

Feign 接口映射

  • 每一个微服务都会提供有若干个不同的访问接口,而为了便于客户端的调用可以将全部的资源接口映射为一个 Java 接口,这样客户端只需要通过 Java 接口即可实现服务端资源调用,此时就可以依靠 Feian 技术实现接口的映射转换处理。

微服务网关

SpringCloudconfig

  • 微服务的出现使得业务中心的维护更加的复杂化,同时也增加了服务的维护难度,在一个完整的微服务系统之中可能会包含有成百上千个微服务节点,同时也会随着业务的不断发展出现更多的微服务,为了便于微服务的配置管理,在 SpringCloud 技术中提供了 SpringCloudConfig 技术所有的微服务都可以直接通过 SpringCloudConfig 动态的实现服务配置文件的抓取,同时维护者也可以直接将各个微服务所需要的内容保存在 GIT 或 SVN 服务器之中,这样就可以轻松的实现微服务的配置维护。

SpringCloudAlibaba 技术架构

SpringCloudAlibaba 架构

  • SpringCloudAlibaba 是阿里巴巴结合自身的微服务实践开源的一套微服务管理套件由若干个不同的应用组件所组成,但是其核心依然是围绕着 RESTfuI 微服务应用展开的

demo


上次编辑于: