Java框架介绍

2022-08-04 17:35:01 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

1、MongoDB–较受欢迎的,跨平台的,面向文档的数据库。

MongoDB是 个基于分布式文件存储的数据库,使用C 语言编写。旨在为Web应用提供可扩展的高性能数据存储解决方案。应用性能高低依赖于数据库性能,MongoDB则是非关系数据库中功能较丰富,较像关系数据库的,随着MongDB 3.4版本发布,其应用场景适用能力得到了进 步拓展。   MongoDB的核心优势就是灵活的文档模型、高可用复制集、可扩展分片集群。

2、Elasticsearch –为云构建的分布式RESTful搜索引擎。

ElasticSearch是基于Lucene的搜索服务器。它提供了分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是比较流行的企业 搜索引擎。

3、Cassandra–开源分布式数据库管理系统,较初是由Facebook开发的,旨在处理许多商品服务器上的大量数据,提供高可用性,没有单点故障。

Apache Cassandra是 套开源分布式NoSQL数据库系统。集Google BigTable的数据模型与Amazon Dynamo的完全分布式架构于 身。于2008开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等Web 2.0网站所采纳,成为了 种流行的分布式结构化数据存储方案。

4、Redis –开源(BSD许可)内存数据结构存储,用作数据库,缓存和消息代理。

Redis是 个开源的使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

5、Hazelcast –基于Java的开源内存数据网格。

Hazelcast 是 种内存数据网格 in-memory data grid,提供Java程序员关键任务交易和万亿 内存应用。虽然Hazelcast没有所谓的‘Master’,但是仍然有 个Leader节点(the oldest member),这个概念与ZooKeeper中的Leader类似,但是实现原理却完全不同。同时,Hazelcast中的数据是分布式的,每 个member持有部分数据和相应的backup数据,这点也与ZooKeeper不同。

6、EHCache–广泛使用的开源Java分布式缓存。主要面向通用缓存、Java EE和轻量 容器。

EhCache 是 个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。主要特性有:快速简单,具有多种缓存策略;缓存数据有两 ,内存和磁盘,因此无需担心容量问题;缓存数据会在虚拟机重启的过程中写入磁盘;可以通过RMI、可插入API等方式进行分布式缓存;具有缓存和缓存管理器的侦听接口;支持多缓存管理器实例,以及 个实例的多个缓存区域;提供Hibernate的缓存实现。

7、hadoop –用Java编写的开源软件框架,用于分布式存储,并对非常大的数据集进行分布式处理。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群进行高速运算和存储。Hadoop实现了 个分布式文件系统(Hadoop Distributed File System),简称HDFS。Hadoop的框架较核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算。

8、Solr –开源企业搜索平台,用Java编写,来自Apache Lucene项目。

Solr是 个独立的企业 搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交 定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

9、Spark –Apache Software Foundation中较活跃的项目,是 个开源集群计算框架。

Spark 是 种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在 些不同之处,这些不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。   Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象 样轻松地操作分布式数据集。

10、Memcached –通用分布式内存缓存系统。

Memcached是 套分布式快取系统,当初是Danga Interactive为了LiveJournal所发展的,但被许多软件(如MediaWiki)所使用。Memcached作为高速运行的分布式缓存服务器,具有以下的特点:协议简单,基于libevent的事件处理,内置内存存储方式。

11、Apache Hive –在Hadoop之上提供类似SQL的层。

Hive是 个基于Hadoop的数据仓库平台。通过hive,可以方便地进行ETL工作。hive定义了 个类似于SQL的查询语言,能够将用户编写的SQL转化为相应的Mapreduce程序基于Hadoop执行。目前,已经发布了Apache Hive 2.1.1 版本。

12、Apache Kafka –较初是由LinkedIn开发的高吞吐量,分布式订阅消息系统。

Apache Kafka是 个开源消息系统项目,由Scala写成。该项目的目标是为处理实时数据提供 个统 、高通量、低等待的平台。Kafka维护按类区分的消息,称为主题(topic)。生产者(producer)向kafka的主题发布消息,消费者(consumer)向主题注册,并且接收发布到这些主题的消息。

13、Akka –用于在JVM上构建高并发,分布式和弹性消息驱动应用程序的工具包。

Akka 是 个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。它已经成功运用在电信行业,系统几乎不会宕机。

14、HBase –开放源代码,非关系型,分布式数据库,采用Google的BigTable建模,用Java编写,并在HDFS上运行。

与FUJITSU Cliq等商用大数据产品不同,HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。

15、Neo4j –在Java中实现的开源图形数据库。

Neo4j是 个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是 个嵌入式的、基于磁盘的、具备完全事务特性的Java持久化引擎。

16、CouchBase –开源分布式的NoSQL面向文档数据库,针对交互式应用程序进行了优化。

如果以前没有NoSQL的使用经验,那么理解couchbase的时候关键有两点:延后写入和松散存储。该产品基于Apache CouchDB,并整合了GeoCouch( 个基于Erlang、紧密集成的地理空间索引系统,可支持LBS应用)。

17、Apache Storm–开源分布式实时计算系统。

Apache Storm 是 个能近实时地在数据之上运行用户代码片段的流式数据处理框架。它实际上是 系列连在 起的管道。通常用于简单的分析任务 ,诸如计算,以及清洗,使其常规化,并且准备摄入用于长期存储的数据。

18、CouchDB–开源的面向文档的NoSQL数据库,使用JSON存储数据。

CouchDB 是 个开源的面向文档的数据库管理系统,可以通过 RESTful JavaScript Object Notation (JSON) API 访问。CouchDB落实到较底层的数据结构就是两类B Tree 。

19、Oracle Coherence–内存数据网格解决方案,通过提供对常用数据的快速访问,使企业能够可预测地扩展关键任务应用程序。

简单来说,Coherence仅支持Java,.NET和C API三个版本,这三个都是面向对象的语言,这也说明Coherence和应用开发的亲和性。

20、Titan–可扩展的图形数据库,优化用于存储和查询包含分布在多机集群上的数百亿个顶点和边的图形。

21、Amazon DynamoDB–快速,灵活的全面管理NoSQL的数据库服务,适用于任何规模的要求 致性,单位毫秒延迟的应用程序。

Amazon DynamoDB 是 种完全托管的 NoSQL 数据库服务,提供快速而可预测的性能,能够实现无缝扩展。

22、Amazon Kinesis–AWS上的实时流式传输数据平台。

Web 应用程序、移动设备、可穿戴设备、行业传感器和许多软件应用程序和服务都可能生成大量的流数据(有时达到每小时数 TB),需要对其进行连续地收集、存储和处理。Amazon Kinesis 就是针对这种需求产生的。

23、Datomic–完全事务,云就绪,分布式数据库,用Clojure编写。

Datomic 是 个灵活的、基于时间因子的数据库,支持联合查询,具有弹性的可扩展性以及支持ACID事务性。Datomic 提供高可用的、分布式存储服务。

24、Spring家族

  • Spring 是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。
  • Spring MVC 属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。
  • Spring Task 是一个定时任务框架。应用:定时执行刷新Redis数据。定时执行删除过期数据
  • Spring Security 是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
  • Spring Data 是Spring 的一个子项目, 旨在统一和简化对各类型持久化存储, 而不拘泥于是关系型数据库还是NoSQL 数据存储。
  • SpringDataSolr 是一个搜索解决方案,基于Lucene的搜索服务器。应用:站内产品搜索
  • Spring Boot 是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
  • Spring Cloud 是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

25、mybatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

26、struts

Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller(MVC)设计模式的应用框架,是MVC经典设计模式中的一个经典产品。

27、Hibernate (开放源代码的对象关系映射框架)

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JaveEE架构中取代CMP,完成数据持久化的重任。

28、JBPM

JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,使用它要遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)协议。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/106545.html原文链接:https://javaforall.cn

0 人点赞