(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 aop应用场景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任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。2.Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可
以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。
(8)Kafka:Apache Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目,该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。Kafka是一个分布式消息队列:生产者、消费者的功能。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。 Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集有多个kafka实例组成,每个实例(server)成为broker。无论是kafka集,还是producer和consumer都依赖于zookeeper集保存一些meta信息,来保证系统可用性。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论