技术综述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(1)Spring:Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。

每个模块的功能如下:

核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组是BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。

Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。

Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。

Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。

Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用

程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSPVelocity、Tiles、iText 和 POI。

Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。

(2)Spring Boot:Spring框架功能很强大,但是就算是一个很简单的项目,我们也要配

置很多东西。因此就有了Spring Boot框架,它的作用很简单,就是帮我们自动配置。Spring Boot框架的核心就是自动配置,只要存在相应的jar包,Spring就帮我们自动配置。如果默认配置不能满足需求,我们还可以替换掉自动配置类,使用我们自己的配置。另外,Spring Boot还集成了嵌入式的Web服务器,系统监控等很多有用的功,让我们快速构建企业及应

用程序

(3)JSF(中文名:杰夫):是Jingdong Service Framework (京东服务框架)的缩写,JSF是SAF的演进(研发版本号:SAF210)完全自主研发的高性能服务框架;它据有如下的特性:

1.高效RPC调用,20线程场景下调用效率比SAF高30%以上;

2.高可用的注册中心,完备的容灾特性;

3.服务端口同时支持TCP与HTTP协议调用,支持跨语言调用,构造一个HTTP POST请求即可对接口进行测试;

4.支持msgpack、json等多种序列化格式,支持数据压缩;

5.提供黑白名单、负载均衡、provider动态分组、动态切换调用分组等服务治理功能;

6.提供对接口-方法的调用次数、平均耗时等在线监控报表功能;

7.兼容SAF协议,可以调用SAF1.X接口;

8.全部模块均为自主研发,自主设计应用层JSF协议;各模块功能可控,可扩展性较好;(4)jmq(京东):是系统技术部消息组自主研发的,提供可靠传递消息及数据的消息中间件平台,具有高的可用性、扩展性和运维性。

1.技术标准:自定义协议规范,zookeeper作为分布式协调器

2.高可用:采用Master/Slave模式部署,支持Failover;采用同步发送、消息持久化,防止数据丢失;消息异步归档到云存储,便于故障跟踪;统一的异常消息重试服务,便于容错。

3.高性能:自定义消息序列化,默认开启压缩;批量发送和接收;基于Netty4,采用NIO,EPOLL模型;更轻量级的数据存储模型,消息存储一份,减少拷贝,支持组提交,更快的索引,消息积压不影响写入速度;内存镜像文件,更少的内存拷贝操作。

4. 轻客户端:只和Broker通信;内置管理和性能采集协议;较合理的超时时间设置;

批量发送和消费,消费者为拉模式;支持二阶段事务;支持业务ID顺序消费(服务端BROKER 数量调整或网络异常容错会破坏顺序)。支持跨机房部署,就近发送和消费

5.更完善集群:一组支持多个节点,主、从、备份类型;主从默认同步复制,可以降级为异步复制,备份节点异步复制;更完善的主从选举,从节点可以从Agent同步主节点数据,防止数据不一致;支持从节点和备份节点消费。

6. 管理监控:管理端配置消费策略,生产策略,消息回放;更丰富的监控图表;

(5)hadoop:Hadoop是Apache组织的一个分布式计算框架(java语言),其最核心的设计就是:HDFS 和MapReduce,HDFS实现存储,MapReduce实现原理分析处理。

(6)storm:Storm是一个分布式计算框架,主要使用Clojure和Java语言编写。Storm

框架的核心由7个部分组成,它们同时也是Storm的基本组成部分。

Topology(拓扑)一个拓扑是一个图的计算。用户在一个拓扑的每个节点包含处理逻辑,节点之间的链接显示数据应该如何在节点之间传递。Topology的运行是很简单的。

Stream(流)流是Storm的核心抽象。一个流是一个无界Tuple序列,Tuple可以包含整型、长整型、短整型、字节、字符、双精度数、浮点数、布尔值和字节数组。用户可以通过定义序列化器,在本机Tuple使用自定义类型。

Spout(龙卷) Spout是Topology流的来源。一般Spout从外部来源读取Tuple,提交到Topology。Spout可分为可靠的和不可靠的两种模式。Spout可以发出超过一个流。

Bolt(闪电) Topology中的所有处理都在Bolt中完成。Bolt可以完成过滤、业务处理、连接运算、连接、访问数据库等业务。Bolt可以做简单的流的转换,发出超过一个流,主要方法是execute方法。完全可以在Bolt中启动新的线程做异步处理。

Stream grouping(流分组)流分组用于在Bolt的任务中定义流应该如何分区。Storm有8个内置的流分组接口:随机分组(shuffle grouping)、字段分组(Fields grouping)、部分关键字分组(Partial key grouping)、全部分组(All grouping)、全局分组(Global grouping)、无分组(None grouping)、直接分组(Direct grouping)、本地或者随机分组(Local or shuffle grouping)。

Task(任务)每个Spout或者Bolt在集群执行许多任务。每个任务对应一个线程的执行,流分组定义如何从一个任务集到另一个任务集发送Tuple。可通过TopologyBuild类的setSpout()和setBolt()方法来设置每个Spout或者Bolt的并行度。

Worker(工作进程) Topology跨一个或多个Worker节点的进程执行。每个Worker节点的进程是一个物理的JVM和Topology执行所有任务的一个子集。

(7)hive:1.hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运

相关文档
最新文档