
Apache Ignite实践
“让我们假设我们开始为我们的物联网应用开发一个Web服务器,其中包含几个端点,如接收事件的POST、获取DeviceBySensorType、获取全部和更新设备元数据的PUT等。 一开始,公共数据的缓存似乎是次要问题,但如果我们开始考虑长期问题,并且如果我们想要提高性能和/或减少响应时间(例如,当服务从数据库检索数据时),我们就会意识到缓存是一项强制性要求。 最初的解决方案可能是使用始终可靠的Ha
“让我们假设我们开始为我们的物联网应用开发一个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年开始
GraalVM是Oracle的一个新的开源项目,它试图使Java虚拟机成为运行所有主要语言的通用虚拟机。在GraalVM之前,已经很少有像Scala、Closure这样的语言将JVM作为其运行时。这对于这些语言来说是非常成功的。GraalVM进一步扩展了这一思想,使得以JVM为目标变得很容易,从而使更多的语言可以在JVM上共存。 GraalVM是从2014年开始的一个研究项目。推特从2017年开始
GraalVM是Oracle的一个新的开源项目,它试图使Java虚拟机成为运行所有主要语言的通用虚拟机。在GraalVM之前,已经很少有像Scala、Closure这样的语言将JVM作为其运行时。这对于这些语言来说是非常成功的。GraalVM进一步扩展了这一思想,使得以JVM为目标变得很容易,从而使更多的语言可以在JVM上共存。 GraalVM是从2014年开始的一个研究项目。推特从2017年开始
在上一篇中介绍了GraalVM的基本功能,GraalVM是Oracle的一个新的开源项目,它试图使Java虚拟机成为运行所有主要语言的通用虚拟机。在GraalVM之前,已经很少有像Scala、Closure这样的语言将JVM作为其运行时。这对于这些语言来说是非常成功的。GraalVM进一步扩展了这一思想,使得以JVM为目标变得很容易,从而使更多的语言可以在JVM上共存。 GraalVM是从2014
GraalVM是Oracle的一个新的开源项目,它试图使Java虚拟机成为运行所有主要语言的通用虚拟机。在GraalVM之前,已经很少有像Scala、Closure这样的语言将JVM作为其运行时。这对于这些语言来说是非常成功的。GraalVM进一步扩展了这一思想,使得以JVM为目标变得很容易,从而使更多的语言可以在JVM上共存。 GraalVM是从2014年开始的一个研究项目。推特从2017年开始
在这一部分中,我将讨论我最喜欢的一种架构,称为“洋葱架构”。尽管如此,请允许我首先回顾一下,到目前为止,我们对DDD的了解如下: DDD是关于我们如何从业务角度设计软件,而不是从技术角度。为此,我们必须在设计过程中与领域专家(又称业务专家)一起工作,这样我们才能与业务需求保持一致。这个过程总是从我们称之为无处不在的语言开始(即,我们需要在设计和实现过程中使用标准术语)。随后,将复杂域分解为更小的子
当我第一次听说DDD(领域驱动设计,当然不是期限驱动设计)时,我还是惠普(Hewlett-Packard)位于马来西亚Cyberjaya的开发中心的高级Java开发人员。我对这个话题不太感兴趣,因为在那段时间里很难找到好的资源。有人让我找到埃里克·埃文的书(“蓝皮书”),我得到了这本书,并将它添加到我的PDF收藏中。 在这段时间里,DDD是一项全新的技术(尤其是在印度尼西亚),因此只有少数公司成功