2KB项目,专业的源码交易网站 帮助 收藏 每日签到

面向 Java 开发者的 NoSQL 选项

  • 时间:2019-01-23 18:25 编辑:2KB 来源:2KB.COM 阅读:366
  • 扫一扫,手机访问
  • 分享
摘要: 英文原文:NoS
英文原文:NoSQL Options for Java Developers

因为了解和喜欢 Java 社区,所以尽管很少有人将 NoSQL 与某种语言绑在一起,我也要为全世界的 Java 开发者写下这篇文章。文中,我将为你展示几种 NoSQL 数据库。之后,我将根据实际在 Github  stars 和 Stack Overflow tags 的项目中的使用情况,选出最常用的五个。并且我会让你知道它们是否支持 Spring Data 和 SpringBoot。

为什么使用 NoSQL?

NoSQL 数据库帮助许多互联网公司通过最终一致性实现高可拓展性。因为 NoSQL 数据库通常分布在多台机器上,而且有一些延迟,所以它只保证所有的实例最终都是一致的。最终一致性服务通常被称为 BASE(基本可用,软状态,最终一致性)服务,这点与传统的 ACID 正好相反。

其它翻译版本 (1) 加载中

选择 NoSQL 的候选项

定义前五名可能很困难。最近许多人都在尝试这个。请参考本文结尾处的研究和注释部分。

八月中旬,我在推特上告诉我的粉丝,我正在写这篇文章。我询问了关于 NoSQL 数据库的正面或负面的评述,收到了人们的反馈,其中有希望我涵盖的一些选项。

我收到许多建议,以下按字母顺序列出:

  1. ArangoDB

  2. Cassandra

  3. Couchbase

  4. DynamoDB

  5. FaunaDB

  6. Hazelcast

  7. MongoDB

  8. Neo4j

  9. PostgreSQL JSON

  10. Redis

  11. (JetBrains) Xodus

人们还提到 Hibernate OGM(NoSQL 的 JPA)和 NoSQLUnit 来作为帮助访问和测试 NoSQL 数据库的工具。

请注意,我没有收到需要将 CouchDB,HBase,Elasticsearch 或 Solr 包括在内的任何请求。 由于 CouchDB 和 Couchbase 的名称相似,它们经常被混淆,但是它们是完全不一样的。 由于 CouchDB 是一个文件存储数据库,我将其包括在我的排名中。 我还添加了 HBase,因为它在 ITBusinessEdge,KDnuggets 和 DB-Engines 被提到过(在研究和注释部分)。 我没有将 Elasticsearch 或 Solr 包括在内,因为我相信这些并不常用作主数据存储。

Raible 的排序技术

我用 Indeed 上职位数量、GitHub 上 star 数量、Stack Overflow 标签数和 Docker 上 pull 的数量作为指标去开发我的 TOP5 NoSQL 数据库排名系统。

Indeed 上职位数量

 我在 Indeed Jobs 上不区分地域搜索,结果除了 Amazon 的 DynamoDB 显示出的是排行榜的竞争者外,并没有新奇发现。


NOTE:把“PostgreSQL JSON”做为搜索条件很难得到准确的结果,因为很多招聘信息把“PostgreSQL” 作为一个要求,而不是它对 NoSQL 的支持。因此我搜索“postgres + json”。Xodus 是一家公司的名字,所以我添加“JetBrains”关键字来保证结果的准确。

其它翻译版本 (1) 加载中

GitHub Stars

我搜索并找到了 5 个顶级(Star 最多)的 NoSQL 项目,分别是 Redis,MongoDB,ArangoDB,Neo4j 和 Cassandra。

注意: Cassandra, HBase 和 PostgreSQL 是镜像库。DynamoDB, Couchbase 和 FaunaDB 没有服务在 GitHub 上,因此,我统计他们的时候是基于他们的 Java 驱动。统计每个项目的 Java 驱动项目的星星数量是个好办法,但是 Redis 只有 11 颗星

你可以使用 Tim Qian 的 历史 star 项目来查看这 5 个项目的 star 增长情况。

Stack Overflow 标签

我在 StackOverflow 中搜索了上述每一个数据库的 tag,发现 MongoDB 和 PostgreSQL 是最受欢迎的,接下来是 Neo4j, Cassandra 和 Redis.

Docker Pulls

我在 Docker Hub 上搜索了相关的镜像,可以看到少部分数据库有 1000 万以上的 Docker Pull,Neo4j 有 500 万以上,其他的大多数也有 100 多万, FaunaDB 和 JetBrains Xodus 暂时没有可用的镜像

综合来看,这些数据和我的排名关系并不大,我觉得可能有两个原因,数据并不精确而且对于每一个数据库,并没有所谓标准的镜像

NoSQL 选项矩阵

我创建了一个结合了职位数、星数和标签数的矩阵表格。我根据它们在每个类别的排名授予 1-5 分。如果一个选项没有进入前五,就得零分。结果排名前五的是 MongoDB、Redis、Cassandra、Neo4j 和 PostgreSQL,如下表所示。

                NoSQL选项                职位                星                标签                合计
                MongoDB                5                4                5                14
                Redis                3                5                1                9
                Cassandra                4                1                2                7
                Neo4j                0                2                3                5
                PostgreSQL                0                0                4                4
                ArangoDB                0                3                0                3
                HBase                2                0                0                2
                DynamoDB                1                0                0                1
                Couchbase                1                0                0                1
                CouchDB                0                0                0                0
                Hazelcast                0                0                0                0
                JetBrains Xodus                0                0                0                0
                FaunaDB                0                0                0                0

DB-Engines 排名的前五个选项是 PostgreSQL、MongoDB、Cassandra、Redis 和 HBase。

两个表格的前五排名非常接近!

NoSQL 选项概述

由于我做出的前五个排名结果非常接近于 DB-Engines 的结果,所以我将使用我的前五个结果。下面是对每一个的概述,以及关于它们的 Spring Boot 支持的信息。

你可能会问“为什么是 Spring Boot?” 我的答案很简单:因为 Spring Boot 采用率很高。根据 Redmonk 对 Java 框架的最近的观察, Spring Boot 采用率从 2016 年 9 月到 2017 年 6 月增长了 76%。

自 6 月以来的增长速度并没有减缓: 到 2017 年 8月 Maven 下载量是 2220 万

MongoDB

MongoDB 在 2007 年由 DoubleClick、 ShopWiki 和 Gilt Groupe 的高级技术人员建立。它的源码在 GitHub 上,使用的是 Apache 和 GNU-APGL 许可证。它的众多大客户包括 Adobe、 eBay 和 eHarmony。

  • 在 start.spring.io 上是否可用? 是的,包括用于测试的嵌入式 MongoDB 。

  • 是否能在 Spring Data 上获得支持? 是的,通过 Spring Data MongoDB

  • 加分项: 为 Hibernate OGM、 NoSQLUnit 和 JHipster 所支持。

Redis

Redis 代表 REmote Dictionary Server(远程字典服务器),由 Salvatore Sanfilippo 开创。它最初发布于 2009 年 4 月 10 日根据 redis.io 的描述,Redis 是采用 BSD 许可证的内存式数据结构存储,可以被用作数据库、缓存和消息代理。 使用 Redis 的知名企业 包括 Twitter、 GitHub、 Snapchat 和 Craigslist。

  • 是否在 start.spring.io 上可用? 是。

  • 是否为 Spring Data 所支持? 是的,通过 Spring Data Redis

  • 加分项: 为 NoSQLUnit 所支持。Hibernate ORM 支持正在进行中。

Cassandra

Cassandra 是“一个管理结构化数据的分布式存储系统,其设计的目的是支持扩展到大数量级的商用服务器,并避免单点的失败” (引至 “Cassandra – 在 P2P 网络中的一种结构化存储系统”  在 Facebook 的工程博客上)。Facebook 最初开发 Cassandra 用于支持其收件箱的搜索功能。它的创始人,Avinash Lakshman (Amazon DynamoDB 的一位创始者) 和 Prashant Malik 在 2008 年七月把它作为开源项目发布。在 2009 年 3 月,Cassandra 成为了 Apache 的孵化器项目并在 2010 年 2 月成为了最高等级的项目。

除了 Facebook 之外, Cassandra 还帮助了许多企业实现网络规模的扩展。 关于其可扩展性的介绍在其主页上有很多惊人的数字

其中一个最大的产品部署者是苹果公司,有超过 75000 个节点存储超过 10PB 的数据。其他大的 Cassandra 使用者包括 Netflix (2500 节点,420 TB,每天超过万亿的请求量),中国的搜索引擎宜搜 (270 节点,300 TB,每天超过 8 亿请求),eBay (超过 100 节点, 250 TB)。

  • start.spring.io 中是否支持? 是。

  • Spring Data 中是否支持? 是,通过 Spring Data Cassandra.

  • 福利: NoSQLUnit 和 JHipster 已支持,Hibernate ORM 的支持正在进行中。

其它翻译版本 (1) 加载中

Neo4j

Neo4j 可以作为基于 GPL3 许可的“社区版”使用,带有 Affero GPL 下的一些扩展。社区版被限制只能在一个节点上运行,并且不包括对集群或热备份的支持。Neo4J 的“企业版”支持横向扩展,内存页缓存和热备份。可以试用 30 天,没有提供定价。

Neo4j 是众所周知的图数据库,所有内容都是以一个边,节点,或者一个属性的方式存储。版本 1.0 在 2010 年二月份发布,自此以来由 Neo4j 公司开发。它的大客户包括 Walmart, Airbnb, Monsanto, 和eBay.

  • 是否在 start.spring.io上可以使用?是。

  • Spring Data 是否支持 Neo4j ? 是的,通过 Spring Data Neo4j.

  • 加分项:Hibernate ORM 和 NoSQLUnit 也支持 Neo4j

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部