RocksDB正在吞噬数据库世界
分布式数据库简史 web2.0时代给数据库设计带来了新的兴趣。虽然传统的RDBMS数据库从1970年代末商业化开始到网络时代都能很好地满足企业界的数据存储和数据处理需求,但新应用程序处理的大量数据以及处理这些数据的速度需要一种新的方法。为了更好地了解这些新数据库设计的需求,我强烈建议观看数据库大师michaelstonebraker在斯坦福大学计算机系统学术讨论会上的演讲。在此期间出现的新数据库采
分布式数据库简史 web2.0时代给数据库设计带来了新的兴趣。虽然传统的RDBMS数据库从1970年代末商业化开始到网络时代都能很好地满足企业界的数据存储和数据处理需求,但新应用程序处理的大量数据以及处理这些数据的速度需要一种新的方法。为了更好地了解这些新数据库设计的需求,我强烈建议观看数据库大师michaelstonebraker在斯坦福大学计算机系统学术讨论会上的演讲。在此期间出现的新数据库采
什么是Micronaut Micronaut是一个基于JVM的框架,用于构建轻量级、模块化的应用程序。Micronaut是由创建Grails的同一家公司OCI开发的最新框架,旨在使创建微服务变得快速和简单。 虽然Micronaut包含一些类似于Spring等现有框架的特性,但它也有一些新特性使它与众不同。通过对Java、Groovy和Kotlin的支持,它提供了多种创建应用程序的方法。 主要特点
Netflix在实现其区域图服务(DGS)框架的几个月内,就向Java社区开放了源代码DGS。这个框架使得在Spring引导软件中实现GraphQL变得更简单,并且适合于每个独立的和联合的GraphQL。DGS帮助GraphQL联邦创建一个统一的API网关,在后台调用特定问题所需的各种合作问题。 DGS框架依赖于springboot基于注释的模型。除了与Spring Boot安全性的集成之外,还提
在本文中,我们将研究Java9反应流Reactive Streams。简单地说,我们将能够使用Flow类,它包含用于构建反应流处理逻辑的主要构建块。 反应流是具有非阻塞背压的异步流处理的标准。这个规范在Reactive Manifesto中定义,有各种各样的实现,例如RxJava或Akka Streams。 反应式API概述 为了构建一个流,我们可以使用三个主要的抽象,并将它们组合成异步处理逻辑。
ApacheIgnite是一个分布式数据库,用于具有内存速度的高性能计算 Ignite于2014年底由GridGain Systems开放源码,同年被Apache孵化器项目接受。Ignite项目于2015年9月18日毕业。 Apache Ignite的数据库使用RAM作为默认的存储和处理层,因此属于内存计算平台。磁盘层是可选的,但一旦启用,将保留完整的数据集,而内存层[6]将根据其容量缓存完整或部
在SpringBoot的这篇文章中,我们将研究如何将SpringBoot与缓存集成。我们将检查springboot自动配置特性,它能够透明地挂接缓存。 Caffeine缓存 Caffeine是一个基于java8的高性能缓存库,提供接近最佳的命中率。它提供了一个非常类似于google guavaapi的内存缓存。如果caffinecachemanager在类路径中找到Caffeine,Spring引
找到合适的开源消息代理对于有效解决各种应用程序类型中的消息传递问题至关重要。今天我们来看两个常用于解决这些问题的开源消息代理ActiveMQ和RabbitMQ。 在这篇文章中,我们将从消息代理的概述开始,然后从特性、性能和企业就绪性方面比较ActiveMQ和RabbitMQ。 什么是消息代理? 消息代理帮助获取发送方应用程序的消息并将其传递给接收方应用程序。 消息代理通常还可以路由、转换消息格式和
如果您正在考虑Kafka还是RabbitMQ最适合您的用例,请继续阅读以了解这些工具背后的不同体系结构和方法,它们如何以不同方式处理消息传递,以及它们的性能优缺点。我们将介绍每种工具的最佳用例,以及何时更适合依赖完整的端到端流处理解决方案。 什么是Apache Kafka和 RabbitMQ? apachekafka和RabbitMQ是两个开源的、商业支持的发布/子系统,很容易被企业采用。Rabb
分布式系统中的通信问题 微服务无处不在。我们经历了一段漫长的旅程,从难以部署和维护的单片应用程序,到完全分布式、微型、可扩展的微服务。这样的架构设计有很多优点,但是也有缺点,值得一提。首先,为了向最终客户提供价值,服务必须交换成吨的数据。在单片应用程序中,这不是问题,因为整个通信都发生在单个JVM中。在微服务体系结构中,服务部署在单独的容器中,并通过内部或外部网络进行通信,网络是一流的公民。如果您
当java8的第一个早期access版本出现时,最重要的演变似乎是lambdas。这一点现在正在改变,许多开发人员现在似乎认为流是最有价值的Java8特性。这是因为他们相信通过改变程序中的一个单词(用parallelStream替换stream),他们将使这些程序并行工作。许多Java8的传道者已经展示了这方面的惊人例子。这有什么问题吗?不,不是什么。很多事情: 并行运行可能是一个好处,也可能不是
Lambda表达式是java8中包含的Java的一个新的重要特性。它提供了一种使用表达式表示一个方法接口的清晰简洁的方法。它在集合库中非常有用。它有助于从集合中迭代、过滤和提取数据。 Lambda表达式用于提供具有函数接口的实现。它节省了很多代码。对于lambda表达式,我们不需要再次定义方法来提供实现。在这里,我们只需编写实现代码。 Java lambda表达式被视为函数,所以编译器不会创建.c
继续上一篇云原生应用讲解系列一 微服务 云原生系统包含微服务,这是一种用于构建现代应用程序的流行架构风格。 微服务构建为一组分布式的小型独立服务,通过共享结构进行交互,具有以下特点: 每个都在更大的域上下文中实现特定的业务功能。 每个都是自主开发的,可以独立部署。 每个都是独立的,封装了自己的数据存储技术(SQL、NoSQL)和编程平台。 每个进程在自己的进程中运行,并使用标准通信协议(如HTTP
某一天,在办公室,你在做“下一件大事” 你的手机响了。是你友好的招聘者——一天给你打两次电话谈新工作的人。 但这次不同了:创业、股权和充足的资金。 一提到云和尖端技术,你就会被推到边缘。 快进几周,你现在是一个新员工在设计一个主要的电子商务应用程序的设计会议。你将与领先的电子商务网站竞争。 你将如何建造它? 如果您遵循过去15年的指导,您很可能会构建如图1.1所示的系统。 传统单体设计 构建一个包
继续上一篇:Serverless无服务器架构系列一 Serverless缺点 无服务器架构当然有很多值得喜欢的地方,但它们有着重要的权衡。其中一些权衡是这些概念所固有的;它们不能完全由进展来解决,而且它们总是需要考虑的。其他的则与当前的实现有关;随着时间的推移,我们可以期望看到这些问题得到解决。 固有缺点: 供应商控制 对于任何外包策略,您都是在将部分系统的控制权交给第三方供应商。这种缺乏控制可能
Serverless体系结构是一种应用程序设计,它包含第三方“后端即服务”(BaaS)服务,和/或包含在“功能即服务”(FaaS)平台上的托管临时容器中运行的自定义代码。通过使用这些思想,以及类似于单页应用程序的相关思想,这样的体系结构消除了对传统的总是在服务器上的组件的大量需求。无服务器体系结构可以从显著降低的操作成本、复杂性和工程提前期中获益,但代价是增加对供应商依赖性和相对不成熟的支持服务的
在本文中,我们将学习区块链技术的基本概念。我们还将用Java实现一个基本的应用程序,重点介绍这些概念。 此外,我们还将讨论该技术的一些先进概念和实际应用。 什么是区块链? 那么,让我们先来了解一下区块链到底是什么… 好吧,它的起源可以追溯到Satoshi Nakamoto在2008年发表的关于比特币的白皮书。 区块链是一个分散的信息分类帐。它由通过使用密码学连接的数据块组成。它属于通过公共网络连接
“微服务”用于描述软件体系结构设计,其中许多松散耦合的组件独立运行,但最终作为单个应用程序一起工作。服务通常关注于业务领域或业务实体的特定方面,它们通常使用网络进行通信。 这篇文章是一篇实践性的介绍性指南,介绍如何使用springboot和Netflix开发的软件来构建微服务,以回答这些问题。 Spring Cloud和Netflix OSS Netflix成为最早采用微服务的公司之一,早在“微服
微服务体系结构描述了一种使用松散耦合服务集合开发应用程序的方法。以前,应用程序是基于集中式多层体系结构的。在大型机和台式机的时代,这种方法很有效。但在云计算和移动设备中,后端必须随时可用于各种设备。Bug修复和特性必须在不停机或不部署整个应用程序的情况下快速交付。 微服务是独立部署的,通过webapi或消息队列进行通信以响应传入事件。它们协同工作以提供各种功能,如用户界面前端、推荐、物流、计费等。
Spring5是第一个主要版本,距离SpringFramework4.0快四年了。在此期间,大多数增强都是在springboot项目中完成的。在本文中,我们将快速介绍Spring5.0发行版中的一些令人兴奋的特性。 Baseline升级 要构建和运行Spring5应用程序,您至少需要JDK8和JavaEE7。以前的JDK和javaee版本不再受支持。具体来说,Java EE 7包括- Servle
本文将介绍如何创建“Hello,Spring!”的一个响应式应用,使用Spring WebFlux的restfulweb服务(从版本5开始新增),然后使用WebClient使用该服务(从版本5开始新增)。 关于Spring WebFlux的功能方法可以参考这篇文章:https://javakk.com/1783.html。 您将使用Spring WebFlux和该服务的WebClient使用者构建