使用Spring WebFlux和Spring Cloud的反应式微服务
在Spring5正式发布之后,值得一看它的当前版本。此外,我们将尝试将我们的反应式微服务放在Spring云生态系统中,该生态系统包含诸如Eureka的服务发现、Spring Cloud Commons@LoadBalanced的负载平衡以及使用Spring Cloud gateway的API gateway(也基于WebFlux和Netty)等元素。我们还将通过SpringDatareactive
在Spring5正式发布之后,值得一看它的当前版本。此外,我们将尝试将我们的反应式微服务放在Spring云生态系统中,该生态系统包含诸如Eureka的服务发现、Spring Cloud Commons@LoadBalanced的负载平衡以及使用Spring Cloud gateway的API gateway(也基于WebFlux和Netty)等元素。我们还将通过SpringDatareactive
数年来,DataStax一直关注信息传递。一个重要的动机是基于微服务的体系结构越来越流行。简单地说,微服务架构使用消息总线来分离服务之间的通信,并简化重播、错误处理和负载峰值。 通过Cassandra和Astra,开发人员和架构师拥有一个数据库生态系统 1. 基于开源 2. 非常适合混合和多云部署 3. 可在云本地消费定价服务中使用 目前没有满足这些要求的消息传递解决方案,因此我们正在构建一个。
区块链是数字加密货币比特币的核心技术。区块链是一个分布式数据库,包含参与方之间已执行和共享的所有交易或数字事件的记录。每一笔交易都经过系统大多数参与者的验证。它包含每笔交易的每一条记录。比特币是最流行的加密货币,也是区块链的一个例子。区块链技术最早出现在2008年,当时有一个人或一群叫“Satoshi Nakamoto”的人发表了一篇关于“比特币:点对点电子现金系统”的白皮书。区块链技术将交易记录
在本文中,我们将学习如何配置Vault PKI引擎并将其与Spring WebFlux集成。使用Vault PKI,您可以轻松生成由CA签名的X.509证书。然后,您的应用程序可以通过REST API获得证书。它的TTL相对较短。每个应用程序实例都是唯一的。此外,我们还可以使用SpringVault模板简化与Vault API的集成。 让我们再多说一点关于安全库的事。它允许您使用UI、CLI或HT
在本文中,我们将介绍ApachePulsar的设计,以便更好地设计故障场景。这篇文章不是为那些想了解如何使用ApachePulsar的人写的,而是为那些想了解它是如何工作的人写的。我一直在努力以一种简单易懂的方式对其架构进行清晰的概述。 主要的声明包括: 保证不会丢失消息(如果采用了建议的配置,并且您的整个数据中心不会被烧毁) 强排序保证 可预测的读写延迟 Apache Pulsar选择一致性而不
Erich Ferdinand的《GraalVM》,在CC by 2.0许可下出版。最重要的是,有一个名为Twitter的旗舰项目。他们使用GraalVM已经有一段时间了。他们在Graal上运行Scala微服务。 GraalVM也来到了一个更加保守的商业世界。它似乎对云本地应用程序特别有吸引力。想想Lambda函数吧。所以是时候重温GraalVM了。是时候抛弃旧的Java虚拟机,转向新的东西了吗?
“让我们假设我们开始为我们的物联网应用开发一个Web服务器,其中包含几个端点,如接收事件的POST、获取DeviceBySensorType、获取全部和更新设备元数据的PUT等。 一开始,公共数据的缓存似乎是次要问题,但如果我们开始考虑长期问题,并且如果我们想要提高性能和/或减少响应时间(例如,当服务从数据库检索数据时),我们就会意识到缓存是一项强制性要求。 最初的解决方案可能是使用始终可靠的Ha
在本博客中,我们将探讨如何使用Spring的缓存框架向任何Spring Boot应用程序添加基本缓存支持,如果没有正确实现,还将探讨缓存的一些问题。最后但并非最不重要的一点是,我们将看几个在真实场景中有用的缓存示例。 为什么要在应用程序中添加缓存 在深入探讨如何向应用程序添加缓存之前,首先想到的问题是为什么我们需要在应用程序中使用缓存。 假设有一个包含客户数据的应用程序,用户发出两个请求来获取客户
在为微服务使用异步通信时,通常使用消息代理。代理确保不同微服务之间的通信可靠稳定,消息在系统内得到管理和监控,并且消息不会丢失。您可以从几个消息代理中选择,它们的规模和数据功能各不相同。这篇博文将比较三个最受欢迎的代理brokers:RabbitMQ、Kafka和Redis。 但首先,让我们了解一下微服务通信。 微服务通信:同步和异步 微服务之间有两种常见的通信方式:同步和异步。在同步通信中,调用
在本博客中,您将继续第1部分https://javakk.com/2174.html之后的内容。您将探索RSocket通信模型Fire-and-Forget、Request-Stream和Channel。对于所有这些模型,您将创建服务器、客户机和单元测试。 在第1部分https://javakk.com/2174.html中,您学习了RSocket通信协议的基础知识。建议在继续第2部分之前先阅读第
区块链是数字加密货币比特币的核心技术。 区块链是一个称为块的记录列表,这些记录使用链表链接在一起并使用加密技术。 每个数据块都包含自己的数字指纹(称为散列)、前一个数据块的散列、时间戳和所做事务的数据,使其在任何类型的数据泄露时都更加安全。 因此,如果一个块的数据被改变,那么它的散列也会改变。如果散列被更改,那么它的散列将不同于下一个块,下一个块包含前一个块的散列,影响它之后的所有块的散列。更改哈
为什么是微服务?它们使创新更快。 企业必须以更快的速度创新,才能在竞争中保持领先地位。他们必须显著改进他们如何开发和部署作为创新的基础的软件。 企业不仅必须采用敏捷实践并在云上部署,还必须用微服务取代庞大、笨重的单片应用程序。 微服务的问题:分布式数据管理 每个服务都有自己的数据库 为了确保服务松散耦合,每个服务都有自己的私有数据库。因此,在开发微服务时,必须解决分布式数据管理的问题。 维护数据一
反应式系统允许我们在高数据流世界中所需的无与伦比的响应能力和可扩展性。然而,反应式系统需要经过专门培训的工具和开发人员来实现这些独特的程序体系结构。Spring WebFlux with Project Reactor是专门为满足现代公司的反应性需求而构建的框架。 今天,我们将通过解释WebFlux如何与其他反应式堆栈工具相匹配、如何不同以及如何制作第一个应用程序来帮助您开始使用WebFlux。
Apache Druid是一个实时分析数据库,它将保存大量数据的可能性与从中提取信息的可能性联系起来,而无需等待不合理的时间。 Druid已经引起了小型和知名公司的注意。这很可能是因为Druid在性能方面信守承诺,在星型模式基准测试期间实现的速度比当前著名的数据库解决方案(如Hive和Presto)高100倍左右。 由于它显示了这样的前景,因此本文的目标是简要解释数据进入德鲁伊生态系统的一些机制,
在这个数字第一的时代,技术发展更快。它帮助技术人员开发和部署更快、更面向性能、更高效和更低内存消耗的应用程序。Quarkus是RedHat的一项此类计划。它是由RedHat设计和开发的,考虑到cloud-native、serverless和容器化应用程序的未来。 根据RedHat的定义:“Quarkus是一个完整的堆栈,Kubernetes原生Java框架,用于Java虚拟机(JVM)和本机编译,
在本文中,您将学习如何使用Kafka和Quarkus在Knative上运行事件应用程序。之前,我描述了Kafka和Spring Cloud的相同方法。我们将部署完全相同的体系结构。然而,我们将使用Quarkus Funqy代替SpringCloud函数。此外,Spring Cloud流可能会被Quarkus Kafka所取代。在我们开始之前,让我们澄清一些事情。 Knative 和 Quarkus
我们最近都听到了关于低代码和无代码平台的炒作。无代码平台的承诺是,它们将使软件开发与使用Word或PowerPoint一样简单,从而使普通业务用户能够在不需要工程团队额外成本(金钱和时间)的情况下推进项目。与无代码平台不同,低代码平台仍然需要编码技能,但通过让开发人员使用预先编写的代码组件,有望加速软件开发。 根据Gartner的数据,到2024年,65%的应用程序开发将是低代码的。 低代码/无代
Apache Pulsar是一个开源发布-订阅消息平台,由持久存储(Apache Bookkeeper)支持,具有以下特性: Geo-Replication 多租户 零数据丢失 Zero Rebalancing Time 统一排队和流模型 高度可扩展 高通量 Pulsar代理 功能 Pulsar文档详细解释了每个特征;这个博客是从Pulsar用户的角度写的,涵盖了在开始使用Pulsar之前需要了解
当你第一次读到微软本周发布的最新开源项目Dapr时,你可能会觉得它是另一个服务网格。相反,Dapr在一篇博客文章中被描述为“一个开源、可移植、事件驱动的运行时,使开发人员能够轻松构建在云和边缘上运行的弹性、微服务无状态和有状态的应用程序。” 虽然该项目在其Istio服务网格实现中使用了特使代理使用的熟悉的侧车架构,但Azure项目管理总监Gabe Monroy在一次电子邮件采访中解释说,Dapr作
GraalVM是Oracle的一个新的开源项目,它试图使Java虚拟机成为运行所有主要语言的通用虚拟机。在GraalVM之前,已经很少有像Scala、Closure这样的语言将JVM作为其运行时。这对于这些语言来说是非常成功的。GraalVM进一步扩展了这一思想,使得以JVM为目标变得很容易,从而使更多的语言可以在JVM上共存。 GraalVM是从2014年开始的一个研究项目。推特从2017年开始