pmp访谈法和焦点小组区别_访谈和书评:Spring Integration in Action
pmp访谈法和焦点小组区别
由Mark Fisher,Jonas Partner,Marius Bogoevici和Iwein Fuld撰写的《 Spring Integration in Action》一书涵盖了Spring Integration框架 ,该框架提供了基于Spring编程模型的著名企业集成模式的实现。 它在基于Spring的应用程序中启用轻量级消息传递,并使用声明性适配器支持应用程序集成。
作者以异步消息传递体系结构的核心组件(消息,通道和消息端点)开始对Spring Integration框架的讨论。 正如他们在第一章中所说的那样,Spring Integration是“企业集成模式满足控制反转”的地方。 通过示例应用程序和代码示例详细讨论了企业集成模式以及Spring Integration框架如何实现这些模式。
该书还涵盖了Spring Integration为使用电子邮件批处理适配器和Web适配器,Web服务以及使用Spring Batch框架进行的文件批处理提供的支持。 为了完成讨论,作者讨论了使用JMX监视和管理消息传递组件。 最后,本书中的讨论以“测试”主题结束,该主题涉及如何通过模拟服务来测试异步系统和消息传递组件。
InfoQ与Mark Fisher和Iwein Fuld谈了有关Spring Integration框架及其优势和局限性的书。
InfoQ:使用应用程序集成作为基于云的服务的趋势正在增长。 您能否谈谈“集成即服务”的新概念,以及Spring Integration框架如何提供帮助?
Iwein: Spring Integration本身不是什么“服务”。 这是一件好事。 作为开发人员,您有兴趣与其他* aaS API集成,并且在混合中使用类似ESB的服务通常并不能简化事情。 在服务体系结构中使用Spring Integration很容易,为什么不能在云中使用Spring Integration。 SI的优势在于集成,而不是服务。 就是说,Cloud Foundry对Spring应用程序(因此对Spring Integration)具有本机支持,并且提供Spring Integration支持的服务(例如RabbitMQ,Redis,MongoDB和关系数据库),因此可能性和示例唾手可得。
InfoQ:NoSQL数据存储是否比关系数据库在消息传递体系结构中使用更好的选择,例如,将消息存储在队列通道或消息存储中? 在消息传递应用程序中使用NoSQL数据库实现持久性的优缺点是什么?
Iwein:如果您使用的是NoSQL存储,通常对于写操作和简单的“按键”查询而言,优化效果更好。 这更适合消息传递模型。 也就是说,针对这种用法优化关系数据库并不难,因此使用NoSQL存储库的选择实际上不应由选择Spring Integration作为消息传递框架来驱动。
马克:而且,NoSQL存储并不是万能的,因此,更有趣的讨论是关于Spring Integration通过为多个不同的NoSQL存储提供适配器来支持各种用例。 例如,您可以使用我们在2.2版中添加的通道适配器,以消息驱动的方式轻松地在Redis ZSET中更新乐谱。
InfoQ:大数据,数据挖掘和数据处理近来引起了人们的广泛关注,以帮助他们高效有效地处理和分析不同类型的业务数据。 Spring Integration和Spring Batch框架如何适应大数据空间?
Iwein:如果您希望快速获得一次性代码,Spring Integration和Spring Batch可能不适合您。 但是,如果您想要一个可维护的解决方案,那就可以了。 Spring产品系列在使用寿命长的应用程序中大放异彩,在这些应用程序中,可维护性比快速上市时间要重要。 在大数据空间中,情况非常不稳定。 通常,解决方案旨在快速完成,获得投资回报并被丢弃。 如果这适用于您的解决方案,则跳过Spring Integration是明智的。
马克:但是,我们开始研究3.0版,其中的主题之一是大数据支持。 这将不仅包括用于HDFS的适配器以及与Spring for Apache Hadoop项目的无缝集成,而且还可能包括将干扰器模型应用于我们的套接字级别连接工厂的功能。 加上Spring Integration的低开销,应该可以满足许多大数据解决方案的吞吐量需求。 同样,我们在探索“现实世界”大数据场景时注意到的一件事是,要解决的最终问题通常是集成问题:组合来自多个来源的数据,定义跨不同系统的流程,创建具有多个处理步骤的管道,等等。上。 显然,在那里可以使用与“经典”企业集成相同的工具和框架。
InfoQ:安全性是企业应用程序开发的重要方面,尤其是在集成用例中。 您能否讨论Spring Integration提供的用于保护各种消息传递组件的支持? 这方面的最佳做法是什么?
Iwein:消息传递中的安全性是在传输级别或在消息级别或同时在这两者上完成的。 Spring Integration设法在两个方面都回避这些问题是很酷的。 由于SSL https下面只是http,因此SI无需知道。 在消息级别,Spring Integration委托Spring WS的安全组件。 这些很好,所以我们再次躲过了难关。 我认为,如果您关心安全性,则可以确保消息的安全。 这样就可以确保最终接收方和最终发送方之间的信任是干净的,而不是对整个网络拓扑负责。 许多组织走了一条不同的路,完全忽略了消息级别的安全性,因为“在传输级别上一切都得到了照顾”。 就像假设安装操作系统的人没有安装键盘记录程序那样愚蠢。 这是一种广泛的做法。 我知道安全性方面的最佳实践始终是保持智慧,而不是信任最佳实践。
马克: Spring Integration确实提供了一个Channel Interceptor,它仅委托给Spring Security授权管理器,但是同样,它通常根据传输级别上可用的信息来检查SecurityContext。
InfoQ:您在书中讨论了有关如何测试消息传递应用程序中各种组件的测试技术。 您能否谈谈其中的一些技术,以及Spring和Spring Integration框架如何使测试消息传递组件变得更加容易?
Iwein:第18章对此非常清楚。 在进行SI测试支持时,我最着眼的是,当您试图弄清楚多线程应用程序的工作方式时,使用调试器是一个非常糟糕的主意。 弄清楚之后,我停止使用调试器,而是继续遵循自己的建议来修复测试和日志记录。 令人困惑的是浪费了多少时间在调试器中学习有关代码的知识,然后一经发现就将其丢弃。
值得一提的另一件事是,大多数并发问题都可以通过精心设计的测试用例引发。 马克和我有些深夜,我们无法重现彼此的问题,但是如果您愿意漫步,总有一种确定性测试案例的方法。 与一般的功能测试相比,您应该准备花更多的时间,因为这些测试将在您需要时挽救您的生命。
InfoQ:EIP模式的局限性是什么?或者集成架构师和开发人员在应用程序中使用这些模式时应牢记什么?
Iwein:在书中写东西的问题是,您没有被迫检查它们是否足够明确,无法被解析并编译成真实代码。 我们在本书中曾多次为此而苦苦挣扎,但在实施SI时我们也为EIP本书而苦恼。 在设计体系结构时,架构师应记住,代码的外观会有所不同,而开发人员应记住,新兴的体系结构必须与底层代码一样干净。 EIP更像是一个入门指南,即使这些模式在代码上与本书中看起来有所不同,但正常工作的软件还是要胜过它。
马克:此外,在设计模式方面,通常最重要的是语言。 这就是开发人员可以在所学内容与给定API中的显示方式之间建立联系的原因。 因此,每当为属性或配置属性找到正确的名称时,我们都会查阅EIP书,并希望从那里使用的词语中获得启发。 一致性也很重要; 因此,每当面临将特定EIP映射到我们的API的挑战时,我们都会尝试遵循类似的技术并使用相似的术语。
InfoQ:您能否谈谈企业应用程序集成领域的新兴趋势?
Iwein:主要趋势是(仍然)REST。 既然JavaScript框架和浏览器已赶上规范,那么Http才开始发挥其全部潜能。 我现在几次看到的另一个有趣的趋势是,通过远离既定的工作方式来优化效率。 这对于移动设备,不稳定的网络很有用; 但也适用于不太可能的设备,例如家庭能源测量设备。 在这种情况下,Spring Integration的TCP / UDP适配器可能会派上用场。
马克:除了REST API外,通过Web套接字和更高级别的抽象(例如SockJS)进行基于Web的消息传递也越来越流行。 这些技术为客户/服务器关系发生巨大变化的应用程序集成开辟了一个全新的世界。 这是我们对Spring Integration 3.0路线图关注的另一个领域。
作者还讨论了通用和最佳实践中的应用程序集成。
Iwein:我不赞成使应用程序复杂化,即使这样做是通过重用我的代码来完成的。 许多开发人员认为他们将需要异步处理,因此他们使用SI,Camel或Akka。 最后,经常发现没有做任何认真的测量来查看单线程解决方案是否可以将其切断。 不要那么傻,因为您可以使用很酷的技术。 不要误会我的意思,SI很棒,但是如果您能在没有并发的情况下走开,那么您总会过得更好。
马克:那就是说,当消息驱动模型*满足您的应用程序需求时,Spring Integration隐藏了大多数复杂性。 为了获得最佳性能,您仍然需要了解如何配置线程池和触发器,但是无需编写处理任务调度和异步调用的代码。 相反,与任何Spring应用程序一样,您专注于自己业务域的POJO。 这也意味着您的代码以易于测试的方式与基础架构脱钩,这是我们可能都同意的“最佳实践”。
翻译自: https://www.infoq.com/articles/spring-integration-in-action-book-review/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1
pmp访谈法和焦点小组区别
pmp访谈法和焦点小组区别_访谈和书评:Spring Integration in Action相关推荐
- pmp访谈法和焦点小组区别_访谈和书评:《简而言之的Java》,第六版
pmp访谈法和焦点小组区别 本杰明·J·埃文斯(Benjamin J. Evans)和戴维·弗拉纳根(David Flanagan) 撰写的第六版Java in Nutshell是对Nutshell系 ...
- pmp访谈法和焦点小组区别_时间,空间和访谈
pmp访谈法和焦点小组区别 像大多数软件公司一样,Microsoft几乎所有的技术面试都涉及某种编码问题. 在那期间,我遇到了许多不同的问题. 它们通常都具有您可以很好地讨论一般问题空间,设计解决方案 ...
- 速率法和终点法的区别_速率法,终点法
山雨旅人 速率法和终点法的区分表象上是体现在反应曲线上,速率法呈现稳速上升或稳速下降,通常是这样的曲线: 下图1:典型下降速率法曲线1,项目AST(其中蓝线为主波长反应过程,绿线为副波长反应过程,黑线 ...
- 速率法和终点法的区别_生化分析仪检测中的终点法、两点法、双波长法有什么区别...
生化分析仪检测中的终点法.两点法.双波长法有什么区别 2018-8-12 14:19 生化分析仪是用于检测人体肝功.肾功.血糖.血脂.心肌酶.离子等项目的仪器,是现在临床上肝.肾.心血管疾病等疾病的必 ...
- 速率法和终点法的区别_生化反应曲线解析1(终点法)
在日常检验工作中,如果校准失败了.质控失控了.标本测值"你认为不准确"了,我们有很多途径去查找原因,其中查看反应曲线就是方法之一,而要想看懂和真正了解反应曲线,那么一定要了解生化检 ...
- 速率法和终点法的区别_两点法终点法速率法
2 .固定时间法 苦味酸法测定肌酐采用此法. (两点法 ) 3 .连续监测法 对于酶活性测定一般应选用连续监测法,如丙氨酸氨基转 移酶.天冬氨酸氨基转移酶.乳酸脱氢酶.碱性磷酸酶.γ 谷氨氨酰基转移酶 ...
- 速率法和终点法的区别_两点法、终点法、速率法
实用标准文案 精彩文档 什么叫两点法.终点法.速率法? 两点法:测定酶反应开始后某一时间内( t1 到 t2 )产物或底物浓度的总变化量以 求取 酶反应初速度的方法. 终点法:通过测定酶反应开始到反应 ...
- 关于焦点小组(Focus Group)访谈法
焦点小组访谈法源于精神病医生所用的群体疗法.目前的焦点小组一般由8-12人组成,在一名主持人的引导下对某一主题或观念进行深入讨论.焦点小组调研的目的:在于了解和理解人们心中的想法及其原因.调研的关键是 ...
- 09-数据科学的基础:数据收集之市场调查_05 焦点小组
这一篇中,我们会重点来介绍关于数据收集中所运用的焦点小组数据收集法. 什么是焦点小组? 焦点小组是指在数据收集中是通过倾听一组从调研者所要研究的目标市场中选择来的被调查者,从而获取对一些有关问题的深入 ...
最新文章
- Docker周报:Windows Server将支持Mesos
- 如何手撸一个较为完整的RPC框架
- 华为TE30点对点呼叫TE40提示不允许使用ip地址呼叫如何解决?
- xpool, cpool,epoo
- AI理论知识整理(2)-对称矩阵-特征值与特征向量
- php如何制作视频特效,用PS将bmp图片制作出漂亮的动态视频效果
- js检测数组对象中是否有重复值
- HTTP1.1新增了五种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 、 CONNECT
- 如何编写完美的 Python 命令行程序?
- java nio ppt_Java开发基础知识讲解.ppt
- 关于PostThreadMessage以及创建线程消息队列
- 在SQL-SERVER2000中对同一个数据库多张表进行查询时怎样避免笛卡儿乘积???...
- 每天CookBook之JavaScript-018
- 【资源分享】Go语言并发之道 [美] 凯瑟琳(Katherine Cox-Buday)著 PDF 下载
- 两阶段最小二乘法TSLS案例分析
- 如何让浏览器用极速模式打开网站而不是兼容模式
- 智联招聘VSBOSS直聘VS拉勾 竞品分析
- 聚观早报 | 嘀嗒出行重启赴港IPO;饿了么到店业务将与高德合并
- SpringBoot-HelloWorld
- TI C2000 刷flash意外锁芯片的解决办法