1.Cassandra实战内容简介
2.LevelDB 源码剖析1 -- 原理
3.盘点 35 个 Apache 顶级项目,码分我拜服了…
4.数据存储扫盲:hbase,码分cassandra,clickhouse,pg,neo4j...
5.Cassandra实战媒体推荐
6.å¦ä½è®¾è®¡å¹¶å®ç°ä¸ä¸ªçº¿ç¨å®å
¨ç Map
Cassandra实战内容简介
《Cassandra实战》是国内首部专注于Cassandra数据库的专著,由领域先驱和实践者撰写,码分多位数据库专家推荐,码分权威性高。码分该书内容全面,码分boltdb 源码分析基于最新版Cassandra编写,码分系统讲解了其所有功能和使用方法。码分实战性强,码分不仅包含大量示例代码,码分还通过一个完整的码分在线交易系统实例,展示了从理论到实践的码分全过程。深度挖掘,码分结合源代码分析Cassandra底层机制和工作原理,码分总结最佳实践,码分帮助读者深入理解。
全书共章,首先介绍NoSQL优势与代表性数据库特性,随后详细讲解Cassandra的安装、配置、数据模型、排序、编程接口等基础知识。通过迭代方式,演示基于Cassandra的在线交易系统开发,理论与实践紧密结合。接着,深入分析Cassandra集群、数据存储结构、更新、读取、压缩机制及启动流程等底层内容。最后,探讨Cassandra在分布式环境中的应用、与Hadoop整合及最佳实践。附录提供示例源代码及Eclipse环境下的编辑指导。
《Cassandra实战》面向所有对Cassandra感兴趣的读者,不仅能让读者全面掌握Cassandra基础知识和使用方法,还能深入理解其底层机制,以及在复杂现实环境中的应用。这本书是Cassandra学习者和实践者的必备指南。
LevelDB 源码剖析1 -- 原理
LSM-Tree,全称Log-Structured Merge Tree,被广泛应用于数据库系统中,如HBase、Cassandra、LevelDB和SQLite,甚至MongoDB 3.0也引入了可选的LSM-Tree引擎。这种数据结构旨在提供优于传统B+树或ISAM(Indexed Sequential Access Method)方法的写入吞吐量,通过避免随机的本地更新操作实现。
LSM-Tree的核心思想基于磁盘性能的特性:随机访问速度远低于顺序访问,三个数量级的差距。因此,简单地将数据附加至文件尾部(日志或堆文件策略)可以提供接近理论极限的写入吞吐量。尽管这种方法足够简单且性能良好,但它有一个明显的缺点:从日志中随机读取数据需要花费更多时间,因为需要按时间顺序从近及远扫描日志直至找到所需键。网页麻将游戏源码因此,日志策略仅适用于简单的数据访问场景。
为了应对更复杂的读取需求,如基于键的搜索、范围搜索等,LSM-Tree引入了一种改进策略,通过创建一系列排序文件来存储数据,每次写入都会生成一个新的文件,同时保留了日志系统优秀的写性能。在读取数据时,系统会检查所有文件,并定期合并文件以减少文件数量,从而提高读取性能。
在LSM-Tree的基本算法中,写入数据按照顺序保存到一组较小的排序文件中。每个文件代表了一段时间内的数据变更,且在写入前进行排序。内存表作为写入数据的缓冲区,用于保持键值的顺序。当内存表填满后,已排序的数据刷新到磁盘上的新文件。系统会周期性地执行合并操作,选择一些文件进行合并,以减少文件数量和删除冗余数据,同时维持读取性能。
读取数据时,系统首先检查内存缓冲区,若未找到目标键,则以反向时间顺序检查各个文件,直到找到目标键。合并操作通过定期将文件合并在一起,控制文件数量和读取性能,即使文件数量增加,读取性能仍可保持在可接受范围内。通过使用内存中保存的页索引,可以优化读取操作,尤其是在文件末尾保留索引块,这通常比直接二进制搜索更高效。
为了减少读取操作时访问的文件数量,新实现采用了分级合并(Leveled Compaction),即基于级别的文件合并策略。这不仅减少了最坏情况下需要访问的文件数量,还减少了单次压缩的副作用,同时提供更好的读取性能。分级合并与基本合并的主要区别在于文件合并的策略,这使得工作负载扩展合并的影响更高效,同时减少总空间需求。
盘点 个 Apache 顶级项目,我拜服了…
Apache软件基金会,全称为Apache Software Foundation(ASF),成立于年7月,是世界上最大的最受欢迎的开源软件基金会,是一个非营利性组织,专门支持开源项目。
目前,ASF旗下有超过+亿美元的安云系统源码价值,为开发者提供免费的开源软件和项目,惠及全球数十亿用户。
接下来,我们将盘点Apache软件基金会旗下的个顶级项目,这些项目在日常开发过程中常常遇到,有的可能已经使用过,而有的则值得学习了解,为未来项目提供参考。
1. Apache(httpd):Apache HTTP Server,中文名阿帕奇,是一个开源的HTTP服务器,支持在UNIX和Windows系统上运行。它自年4月起成为互联网上最受欢迎的web服务器,年2月庆祝了其岁生日。适用于HTML、等静态资源服务,类似于Nginx,但Nginx功能更为强大。
2. Tomcat:Apache开源的Java应用服务器,支持Java Servlet、JavaServer Pages、Java Expression Language和Java WebSocket技术。尽管近年来存在安全漏洞,但因其开源、免费的特性,仍被广泛应用于Java领域,成为主流应用服务器。
3. Commons:包含一系列Java公共组件的项目,提供Java核心API的额外组件,如StringUtils等。提供个实用的类库,极大地方便了Java开发。
4. POI:提供了一系列Java API对Microsoft Office格式文件进行读写处理,如Excel、Word、PowerPoint等文件的读写,功能强大。
5. HttpComponents:提供了HTTP及相关协议的Java组件和工具集,包括HttpCore、HttpClient、HttpAsyncClient,其中HttpClient是常用的HTTP客户端。
6. Logging services:包含Apache的日志服务,如Log4j,是使用最广泛的日志框架,还有Log4j 2、log4php、log4cxx等其他语言的日志框架。
7. Ant:一个较为老的Java项目编译和构建工具,虽然已经较少使用,但依然存在一定的价值。
8. Maven:是一个主流的软件项目管理工具,提供项目自动编译、单元测试、打包、发布等生命周期管理。健康小屋app源码
9. Subversion:一个开源的版本控制软件,用于代码版本控制、文件版本控制,几乎每个开发者都使用过。
. Struts:一个免费开源的MVC框架,用于创建Java web应用程序,曾风靡一时,但由于漏洞问题,已逐渐被Spring MVC、Spring Boot等替代。
. FreeMarker:是一个基于Java的模板引擎,允许使用简单而强大的模板语言引用Java代码中的对象来生成HTML页面、电子邮件、配置文件、源代码等。
. Velocity:一个基于Java语言的模板引擎,允许使用模板语言引用Java对象生成文本输出。尽管长期未更新,不再被Spring Boot 1.5.x版本支持,但仍推荐使用其他模板引擎。
. Tapestry:一个在Java Web开发界知名的面向组件的Web框架,用于创建高度可伸缩的Web应用程序。
. Shiro:一个功能强大且易于使用的Java安全框架,提供身份验证、授权、加密和会话管理等功能,有助于快速、轻松地开发和保护企业应用程序。
. Dubbo:阿里巴巴开源的分布式服务框架(RPC),曾停止维护后又重启维护并捐献给Apache软件基金会,现在在许多企业中仍大量运用。
. Thrift:一款优秀的、轻量级的RPC框架,最初由Facebook开发,后捐献给Apache软件基金会。支持多种语言,具备高度可扩展性。
. Zookeeper:一个分布式中间件神器,最初由Google Chubby的一个开源实现,主要用途包括配置中心、分布式锁等,支持高度可靠的分布式服务协调中间件。
. Curator:Zookeeper的Java客户端,提供一系列高级API和工具,简化了Zookeeper操作,易于使用。
. SkyWalking:一个可观测性分析平台和应用性能管理系统,提供分布式跟踪、指标监控、性能诊断、度量汇总和可视化的一体化解决方案。
. ShardingSphere:由一组分布式数据库中间件解决方案组成的开源生态系统,包括JDBC、Proxy、Sidecar(计划中),提供数据分片、docx.dll 源码分布式事务和数据库编排功能。
. Lucene:顶级的开源搜索框架,包括核心搜索库(Lucene core)和搜索服务器(Solr),提供强大的索引和搜索功能。
. ActiveMQ:一款灵活、强大的多协议开源消息中间件,支持JMS 1.1&2.0,目前最流行的Java消息中间件之一。
. RocketMQ:一款重量级、极具竞争力的消息队列产品,由阿里巴巴于年开源,年捐赠给Apache软件基金会,年正式毕业。
. Kafka:一款重量级开源项目,最初由LinkedIn公司开发,后捐献给Apache软件基金会。它是一种分布式、高吞吐量的发布订阅消息系统,能够实时处理大量数据。
. Hadoop:一种高可靠、可伸缩、分布式大数据处理框架,也是大数据行业公认的标准框架。
. HBase:建立在Hadoop HDFS上的非关系数据库,用于大数据存储,适用于随机、实时的读写访问。
. Pig:一个基于Hadoop的大数据分析平台,提供类似SQL的面向数据流的高级语言Pig Latin,用于执行Map Reduce任务。
. Hive:一个基于Hadoop的数据仓库工具,用于提取、转化和加载数据,可以将Hadoop原始结构化数据映射为Hive表,并提供类似SQL的HiveQL语言查询功能。
. Spark:一个用于大规模数据处理的统一分析引擎,支持无边界和有边界数据流上的有状态计算。
. Flink:一个分布式处理引擎框架,用于无边界和有边界数据流上的有状态计算,设计用于在所有常见的集群环境中运行。
. Storm:一个分布式实时计算系统,能够轻松可靠地处理数据流,类似于Hadoop的实时批处理。
. Cassandra:一款可伸缩、高可用、高性能去中心化的分布式数据库,最初由Facebook为了解决消息收件箱搜索问题而设计。
. CouchDB:一个面向文档的分布式数据库,以JSON作为存储格式和查询语言,提供直观可靠的RESTful API接口。
. Groovy:一个功能强大的基于JVM平台的动态编程语言,语法与Java相似,但更简洁、易于学习和高效。
. NetBeans:一款开源开发工具(IDE),集成开发环境和应用框架,支持Java、JavaScript、PHP等编程语言,最初由SUN公司开发,后被Oracle收购并捐赠给Apache软件基金会。
总结:这些顶级项目涵盖了基础组件、Web、分布式、搜索、消息中间件、大数据/数据库、编程语言、工具等多个领域,为Java生态系统的发展做出了巨大贡献。尽管有些项目面临淘汰,但它们都曾经辉煌过,正是这些开源项目推动了Java生态的繁荣。希望本文的分享对大家在日常开发中有所帮助。
数据存储扫盲:hbase,cassandra,clickhouse,pg,neo4j...
本文分享了关于数据存储系统HBase、Cassandra、ClickHouse、PostgreSQL和Neo4j的基本知识,适合数据存储初学者参考。HBase
作为列族数据库,HBase基于Hadoop HDFS,由Apache项目支持,Google和Bigtable的灵感之作。它使用JAVA实现,支持分布式、KV存储,可处理稀疏表和高并发写入。SQL操作需配合Phoenix,强调CP一致性,且支持单行ACID。相关资源包括官方文档、中文教程和源码。Cassandra
Cassandra是Apache项目,Facebook开发,适合大数据写入和实时查询,尤其在欺诈检测和位置服务领域。它采用Dynamo和Bigtable技术,无主架构,提供CQL查询,主副本设计。与HBase相比,Cassandra更偏向OLTP场景,且对写多读少的需求更友好。ClickHouse
ClickHouse是列式关系型数据库,专为OLAP设计,由Yandex研发,支持SQL和高性能读取。它不提供ACID特性,但适合日志分析和时间序列数据。ClickHouse的数据结构和部署特点使其在特定场景下表现出色。PostgreSQL
PostgreSQL作为行式RDBMS,对SQL标准支持好,支持索引和全文检索,可用于OLTP和OLAP。相比MySQL,提供更灵活的复制选项。索引结构丰富,适应多种查询需求。Neo4j
Neo4j是图数据库,专长于存储和查询复杂的图数据,适合知识图谱和社交网络应用。它支持弱模式设计,但不支持碎片处理和复杂的图算法。 在选择时,需要根据具体应用场景和性能需求来决定,比如HBase适合大量写入和简单查询,而ClickHouse则在分析性能上更胜一筹。Cassandra实战媒体推荐
毫无疑问,NoSQL数据库的出现让数据库的选择性变得更加丰富。Cassandra,作为Facebook公司推出的开源NoSQL产品,是其中的佼佼者。它凭借Facebook、Twitter、Digg等知名公司的实际应用案例,证明了自己在复杂生产环境中的强大实力。同时,关系数据库领域也开始关注NoSQL的影响,如MySQL数据库下的InnoDB存储引擎提供NoSQL访问方式。这些都使得Cassandra成为数据库技术领域的一颗明星。
《Cassandra实战》一书,详细介绍了Cassandra的配置、应用、编译等内容,是深入了解Cassandra的必读书籍。由资深MySQL数据库专家姜承尧撰写,本书不仅深入浅出地阐述了Cassandra的基础知识,还结合源码对一些底层机制和原理进行了分析,对初中级读者来说极具参考价值。
Cassandra最初由Facebook开发,是分布式NoSQL数据库系统,其数据模型借鉴了Google BigTable,而其架构则融合了Amazon Dynamo的特点,具备良好的可扩展性,广泛应用于大型Web2.0网站。《Cassandra实战》的作者长期维护Cassandra数据库,拥有丰富的实践经验,本书结合源码深入剖析了Cassandra的运行机制与原理,适合读者全面深入地了解Cassandra。
NoSQL技术是IT领域的热门话题之一,特别是在年,Cassandra以其去中心化和无缝扩展的特性吸引了众多NoSQL粉丝的关注。《Cassandra实战》不仅能帮助读者全面掌握Cassandra基础知识,深入了解其运行机制与原理,阅读本书后,读者将对Cassandra有全面深入的认识。对于喜爱NoSQL的读者来说,看到国内有相关书籍出版,无疑是一大惊喜,强烈推荐《Cassandra实战》。
在技术领域,很多新出现的技术往往因缺乏合适的应用环境而逐渐消失。而NoSQL技术的幸运在于,它在解决超大规模、高并发的Web 2.0网站应用问题时展现出巨大潜力,从而受到越来越多的关注和重视。亚马逊的Dynamo和谷歌的BigTable是成功的商业NoSQL产品,而开源NoSQL产品如Cassandra的发展也得到了长足的进步。《Cassandra实战》从浅入深地介绍了Cassandra的基础知识和生产环境应用,是全面了解Cassandra的优秀读物,将带领读者探索精彩纷呈的NoSQL世界。
《Cassandra实战》由张勤撰写,他著有《linux服务器配置全程实录》一书。本书不仅满足了对Cassandra感兴趣的读者需求,同时也为数据库专家和NoSQL先驱提供了深入学习和实践的机会,是深入研究Cassandra不可或缺的资源。
å¦ä½è®¾è®¡å¹¶å®ç°ä¸ä¸ªçº¿ç¨å®å ¨ç Map
Map æ¯ä¸ä¸ªé常常ç¨çæ°æ®ç»æï¼ä¸ä¸ªæ åºç key/value 对çéåï¼å ¶ä¸ Map ææç key é½æ¯ä¸åçï¼ç¶åéè¿ç»å®ç key å¯ä»¥å¨å¸¸æ°æ¶é´ O(1) å¤æ度å æ¥æ¾ãæ´æ°æå é¤å¯¹åºç valueã
è¦æ³å®ç°å¸¸æ°çº§çæ¥æ¾ï¼åºè¯¥ç¨ä»ä¹æ¥å®ç°å¢ï¼è¯»è åºè¯¥å¾å¿«ä¼æ³å°åå¸è¡¨ãç¡®å®ï¼Map åºå±ä¸è¬é½æ¯ä½¿ç¨æ°ç»æ¥å®ç°ï¼ä¼åç¨åå¸ç®æ³è¾ å©ã对äºç»å®ç keyï¼ä¸è¬å è¿è¡ hash æä½ï¼ç¶åç¸å¯¹åå¸è¡¨çé¿åº¦å模ï¼å° key æ å°å°æå®çå°æ¹ã
åå¸ç®æ³æå¾å¤ç§ï¼éåªä¸ç§æ´å é«æå¢ï¼
1. åå¸å½æ°
MD5 å SHA1 å¯ä»¥è¯´æ¯ç®ååºç¨æ广æ³ç Hash ç®æ³ï¼èå®ä»¬é½æ¯ä»¥ MD4 为åºç¡è®¾è®¡çã
MD4(RFC ) æ¯ MIT çRonald L. Rivest å¨ å¹´è®¾è®¡çï¼MD æ¯ Message Digestï¼æ¶æ¯æè¦ï¼ ç缩åãå®éç¨å¨ä½åé¿çå¤çå¨ä¸ç¨é«é软件å®ç°ââå®æ¯åºäº ä½æä½æ°çä½æä½æ¥å®ç°çã
MD5(RFC ) æ¯ Rivest äºå¹´å¯¹ MD4 çæ¹è¿çæ¬ãå®å¯¹è¾å ¥ä»ä»¥ä½åç»ï¼å ¶è¾åºæ¯4个ä½åç级èï¼ä¸ MD4 ç¸åãMD5 æ¯ MD4 æ¥å¾å¤æï¼å¹¶ä¸é度è¾ä¹è¦æ ¢ä¸ç¹ï¼ä½æ´å®å ¨ï¼å¨æåæåæå·®åæ¹é¢è¡¨ç°æ´å¥½ã
SHA1 æ¯ç± NIST NSA 设计为å DSA ä¸èµ·ä½¿ç¨çï¼å®å¯¹é¿åº¦å°äºçè¾å ¥ï¼äº§çé¿åº¦ä¸ºbit çæ£åå¼ï¼å æ¤æ穷举 (brute-force)
æ§æ´å¥½ãSHA-1 设计æ¶åºäºå MD4 ç¸ååç,并ä¸æ¨¡ä»¿äºè¯¥ç®æ³ã
常ç¨ç hash å½æ°æ SHA-1ï¼SHA-ï¼SHA-ï¼MD5 ãè¿äºé½æ¯ç»å ¸ç hash ç®æ³ãå¨ç°ä»£åç产ä¸ï¼è¿ä¼ç¨å°ç°ä»£ç hash ç®æ³ãä¸é¢å举å 个ï¼è¿è¡æ§è½å¯¹æ¯ï¼æååéå ¶ä¸ä¸ä¸ªæºç åæä¸ä¸å®ç°è¿ç¨ã
ï¼1ï¼ Jenkins Hash å SpookyHash
å¹´ Bob Jenkins å¨ã Dr. Dobbs Journalãæå¿ä¸å表äºä¸çå ³äºæ£åå½æ°çæç« ãA hash function for hash Table lookupããè¿ç¯æç« ä¸ï¼Bob 广æ³æ¶å½äºå¾å¤å·²æçæ£åå½æ°ï¼è¿å ¶ä¸ä¹å æ¬äºä»èªå·±æè°çâlookup2âãéåå¨å¹´ï¼Bob åå¸äº lookup3ãlookup3 å³ä¸º Jenkins Hashãæ´å¤æå ³ Bobâs æ£åå½æ°çå 容请åé ç»´åºç¾ç§ï¼Jenkins hash functionãmemcachedç hash ç®æ³ï¼æ¯æ两ç§ç®æ³ï¼jenkins, murmur3ï¼é»è®¤æ¯ jenkinsã
å¹´ Bob Jenkins åå¸äºä»èªå·±çä¸ä¸ªæ°æ£åå½æ°
SpookyHashï¼è¿æ ·å½åæ¯å 为å®æ¯å¨ä¸å£èåå¸çï¼ãå®ä»¬é½æ¥æ2åäº MurmurHash çé度ï¼ä½ä»ä»¬é½åªä½¿ç¨äºä½æ°å¦å½æ°è没æä½çæ¬ï¼SpookyHash ç»åºä½è¾åºã
ï¼2ï¼ MurmurHash
MurmurHash æ¯ä¸ç§éå å¯ååå¸å½æ°ï¼éç¨äºä¸è¬çåå¸æ£ç´¢æä½ã
Austin Appleby å¨å¹´åå¸äºä¸ä¸ªæ°çæ£åå½æ°ââMurmurHashãå ¶ææ°çæ¬å¤§çº¦æ¯ lookup3 é度ç2åï¼å¤§çº¦ä¸º1 byte/cycleï¼ï¼å®æä½åä½ä¸¤ä¸ªçæ¬ãä½çæ¬åªä½¿ç¨ä½æ°å¦å½æ°å¹¶ç»åºä¸ä¸ªä½çåå¸å¼ï¼èä½çæ¬ä½¿ç¨äºä½çæ°å¦å½æ°ï¼å¹¶ç»åºä½åå¸å¼ãæ ¹æ®Austinçåæï¼MurmurHashå ·æä¼å¼çæ§è½ï¼è½ç¶ Bob Jenkins å¨ãDr. Dobbs articleãæå¿ä¸å£°ç§°âæé¢æµ MurmurHash æ¯èµ·lookup3è¦å¼±ï¼ä½æ¯æä¸ç¥éå ·ä½å¼ï¼å 为æè¿æ²¡æµè¯è¿å®âãMurmurHashè½å¤è¿ é走红å¾çäºå ¶åºè²çé度åç»è®¡ç¹æ§ãå½åççæ¬æ¯MurmurHash3ï¼RedisãMemcachedãCassandraãHBaseãLuceneé½å¨ä½¿ç¨å®ã
ä½è ï¼ä¸ç¼æ®æµåéåè¾¹å°é
Java数据库,哪个更好用?
我将推荐给你们个最高效的Java数据库
1、MongoDB——最受欢迎,跨平台,面向文档的数据库
MongoDB是一个基于分布式文件存储的数据库,使用C++语言编写。旨在为Web应用提供可扩展的高性能数据存储解决方案。应用性能高低依赖于数据库性能,MongoDB则是非关系数据库中功能最丰富,最像关系数据库的,随着MongDB 3.4版本发布,其应用场景适用能力得到了进一步拓展。
MongoDB的核心优势就是灵活的文档模型、高可用复制集、可扩展分片集群。你可以试着从几大方面了解MongoDB,如实时监控MongoDB工具、内存使用量和页面错误、连接数、数据库操作、复制集等。
2、Elasticsearch ——为云构建的分布式RESTful搜索引擎
ElasticSearch是基于Lucene的搜索服务器。它提供了分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是比较流行的企业级搜索引擎。
ElasticSearch不仅是一个全文本搜索引擎,还是一个分布式实时文档存储,其中每个field均是被索引的数据且可被搜索;也是一个带实时分析功能的分布式搜索引擎,并且能够扩展至数以百计的服务器存储及处理PB级的数据。ElasticSearch在底层利用Lucene完成其索引功能,因此其许多基本概念源于Lucene。
3、Cassandra——开源分布式数据库管理系统
最初是由Facebook开发的,旨在处理许多商品服务器上的大量数据,提供高可用性,没有单点故障。
Apache Cassandra是一套开源分布式NoSQL数据库系统。集Google BigTable的数据模型与Amazon Dynamo的完全分布式架构于一身。于开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。
因Cassandra是用Java编写的,所以理论上在具有JDK6及以上版本的机器中都可以运行,官方测试的JDK还有OpenJDK 及Sun的JDK。 Cassandra的操作命令,类似于我们平时操作的关系数据库,对于熟悉MySQL的朋友来说,操作会很容易上手。
4、Redis ——开源(BSD许可)内存数据结构存储,用作数据库,缓存和消息代理
Redis是一个开源的使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis 有三个主要使其有别于其它很多竞争对手的特点:Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性目的; Redis相比许多键值数据存储系统有相对丰富的数据类型; Redis可以将数据复制到任意数。Redis 这么火,它都解决了哪些问题?
5、Hazelcast ——基于Java的开源内存数据网格
Hazelcast 是一种内存数据网格 in-memory data grid,提供Java程序员关键任务交易和万亿级内存应用。虽然Hazelcast没有所谓的“Master”,但是仍然有一个Leader节点(the oldest member),这个概念与ZooKeeper中的Leader类似,但是实现原理却完全不同。同时,Hazelcast中的数据是分布式的,每一个member持有部分数据和相应的backup数据,这点也与ZooKeeper不同。
Hazelcast的应用便捷性深受开发者喜欢,但如果要投入使用,还需要慎重考虑。
6、Ehcache——广泛使用的开源Java分布式缓存
主要面向通用缓存、Java EE和轻量级容器。
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是hibernate中默认的CacheProvider。
主要特性有:快速简单,具有多种缓存策略;缓存数据有两级,内存和磁盘,因此无需担心容量问题;缓存数据会在虚拟机重启的过程中写入磁盘;可以通过RMI、可插入API等方式进行分布式缓存;具有缓存和缓存管理器的侦听接口;支持多缓存管理器实例,以及一个实例的多个缓存区域;提供Hibernate的缓存实现。Ehcache介绍及整合Spring实现高速缓存。
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格式的返回结果。
与ElasticSearch一样,同样是基于Lucene,但它对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化。
9、Spark ——Apache Software Foundation中最活跃的项目,是一个开源集群计算框架
Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地。
、Memcached ——通用分布式内存缓存系统
Memcached是一套分布式快取系统,当初是Danga Interactive为了LiveJournal所发展的,但被许多软件(如MediaWiki)所使用。Memcached作为高速运行的分布式缓存服务器,具有以下的特点:协议简单,基于libevent的事件处理,内置内存存储方式。
通过以上的分析,相信你就知道怎么选择了