【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

Vaughn Vernon 谈云原生和反应式现状

  • 2018-09-03
  • 本文字数:1456 字

    阅读完需:约 5 分钟

反应式 NoSQL 是现如今的重要概念,它们非常有用,但是,在阅读网文时, Vaughn Vernon 有时候会有这样的感觉,就是如果公司要想获得云原生应用程序的全部好处,就必须使用这些概念。他在一篇博文中强调,这不是真的,并且指出,不把所有的东西重新构建,也是很有可能从云中受益的。

Vernon 是《实现域驱动设计》和《基于Actor 模型的反应式消息传递模式》一书的作者。在试图阐明有关云原生和反应式的技术现状时,他回应了自己读过而又特别在意的六种言论。

信息是一种原始格式的实时流数据库

在Vernon 看来,当你需要快速响应业务变化时,流数据是一种非常有用的技术,目前,它是实时处理数据的最佳方式。不过,他指出,数据总是在云中流动的说法并不准确。大多数业务系统仍然使用静止的持久化状态数据。

他还指出,在处理流时,有一些智能解决方案可以帮助解析流数据,并且对缺少这类工具的技术栈发出了警告。

传统Java 工场的技能集不利于基于云的现代化应用程序

Vernon 强调,可以把富有经验的开发人员的技巧用在反应式架构中。公司不用因为采用新的技术栈就用新人替换现有的开发人员和架构师,那样会把核心业务置于风险之中。

Vernon 指出,为了帮助开发人员提高,应该给他们提供现代化的工具,比如支持并发和并行的硬件,这是现如今非常有用的东西。

数据不是永久的,总是在变化

Vernon 认为那不是真的;数据是持久化的,就像几十年来一直在做的那样。如果出现中断,而数据没有持久化,那么公司最有价值的资产就会丢失。通常,对于流而言,情况就是如此。当然,有一些例外。有时候,只需要对流中的数据进行抽样,在这种情况下,流中的部分数据可以丢失,而且没有任何影响。

当情况需要时,你不能认为使用 RDBMS 低级。在某些情况下,RDBMS 可能无法满足特定应用场景的扩展性需求。另外有些时候,它并不是当前任务的最佳选择,而随意忽略这样一种技术选择会导致许多不必要的复杂性。

在 Vernon 看来,重要的是要理解何时需要持久化,他还指出,大多数专家和开发人员都可以推断出来,做出可靠的决策。

数据是一个流,你无法对它执行 SQL 查询

就流本身而言,是这样的,但通常,数据流可以进入允许使用 SQL 进行查询的存储。查询实时流数据的其中一个例子是被称为连续查询的技术,Vernon 指出,这项技术已经推出很长时间了。

反应式是一种构建应用程序的新方法,单体应用无法从云中获益

包括单体应用程序无法从云中获益在内,这些言论对于Vernon 而言都很常见,但是错误的,他提到了一项称为“ lift and shift ”的技术,可以在保留遗留系统的同时从云中获益。在 Vernon 看来,一个恰当模块化的单体比一大堆强耦合的微服务要强多了。相反,问题来自脆弱的架构和糟糕的模块化,那通常会导致大泥球模式

Vernon 建议,当不同业务域的变化速率存在明显的差别时,考虑一下微服务,并且指出,知道在什么情况下优先选择应用程序微服务架构或单体架构非常重要。

当使用 Java 时,你必须改变做事方法,并采用反应式方法从而利用云的优势

Vernon 认为,Java 或另外一门 JVM 语言非常适合创建反应式应用程序以及实现实时、流式、数据驱动的场景。他还认为,Java 有一个光明的未来,并援引了 Bjarne Stroustrup 的话

只有两种 [编程] 语言:人们抱怨的语言和没人用的语言。

为了帮助构建 Java 原生、反应式应用程序,Vernon 已经开始致力于开源平台 vlingo 的开发,旨在从反应式、事件驱动的微服务架构中获益。该平台以领域驱动设计角色模型的思想为基础,现在已经提供下载

查看英文原文: Vaughn Vernon: The Reality of Being Cloud-Native and Reactive

2018-09-03 14:571213
用户头像

发布了 1008 篇内容, 共 372.4 次阅读, 收获喜欢 340 次。

关注

评论

发布
暂无评论
发现更多内容

本周四晚19:00战码先锋第7期直播丨三方应用开发者如何为开源做贡献

OpenHarmony开发者

OpenHarmony

我对新能源汽车的一些看法(37/100)

hackstoic

新能源汽车 生活杂谈

如何进行高效简洁的电子文档管理

小炮

社区文章|MOSN 构建 Subset 优化思路分享

SOFAStack

负载均衡 开源 开发者 算法

深圳java培训 | Java设计模式之建造者模式

@零度

设计模式 JAVA开发

2022年盲盒软件开发商业模式深度解析

开源直播系统源码

软件开发 盲盒开发 盲盒软件

今天,SysAK 是如何实现业务抖动监控及诊断?&手把手带你体验Anolis OS|第25-26期

OpenAnolis小助手

Linux sig 龙蜥大讲堂 开源贡献 社区运维

【直播回顾】战码先锋第六期:共建测试子系统,赋能开发者提高代码质量

OpenHarmony开发者

OpenHarmony

智能合约dapp系统开发模式定制方案

开发微hkkf5566

Java String 手工引用指针

HoneyMoose

Java String 性能和优化

HoneyMoose

Linux开发_curl调用网络接口

DS小龙哥

6月月更

IDE 的主题应该用亮色还是暗色?终极答案来了!

胡说云原生

ide vscode IDEA goland ide主题

钟珊珊:被爆锤后的工程师会起飞|OneFlow U

OneFlow

自我介绍 实习

Fabric.js IText 手动设置斜体 🎋

德育处主任

JavaScript 前端 canvas Fabric.js 6月月更

Eureka的InstanceInfoReplicator类(服务注册辅助工具)

程序员欣宸

Java SpringCloud 6月月更

DOM编程

大熊G

JavaScript 前端 6月月更

Java自定义Once方法保障单次执行

FunTester

缓存穿透利器之「布隆过滤器」

Ayue、

redis 布隆过滤器

如何使用物联网低代码平台进行报表管理?

AIRIOT

物联网 低代码平台

Java 字符串引用(String Interning)

HoneyMoose

Gitlab运维篇之——备份及恢复

阿呆

#GitLab 备份恢复

5道面试题,拿捏String底层原理!

码农参上

string 底层原理 死磕 Java 基础

PHP开发的网站,如何实现批量打印快递单的功能?

迷彩

编程 记录 开发 php扩展 6月月更

axios框架入门教程

倔强的牛角

axios 6月月更

Java String 构造方法中的内存分配

HoneyMoose

Java String 文字(Literal)和 对象(Object)初始化

HoneyMoose

一文走近ZMQ

No Silver Bullet

6月月更 ZMQ

社恐?自我介绍时大脑一片空白?

阿Q说代码

个人成长 社恐 职场破冰 入职公司

面试突击59:一个表中可以有多个自增列吗?

王磊

Java 面试

DingOS服务提交IPO配置指南

鼎道智联

前端 开发 IPO配置

Vaughn Vernon谈云原生和反应式现状_架构_Jan Stenberg_InfoQ精选文章