业务活动监视器(BAM)2.0带来的革命

生产兼具精益和企业价值的中间件是一项艰巨的工作。 它要么不存在,要么需要创新的思维(很多),并且需要在实现中反复进行。 业务风险很大,但是如果您做对了,它就会使您领先于其他任何公司。 这就是为什么我们考虑从头开始重写WSO2 BAM并进行一次飞跃,而不是通过迭代修复慢慢放弃。 如果您不想听我说而不是读这篇,请在http://bit.ly/xKxm8R上进行在线研讨会。
http://softwarecreation.org/2008/ideas-in-software-development-revolution-vs-evolution-part-1/
当您尝试监视业务活动时,您需要插入服务器并捕获事件。 这听起来很容易,那么有什么大不了的呢? 你可能会问。 这是我们的BAM 1.x初始版本遇到的一些障碍:
  • 性能–我们插入了ESB和App Server,所有指标都很完美。 它很好地显示了请求计数,响应时间等。只要负载很低,它就很完美。 如果一台服务器开始发送1000个事件/秒,事情开始变得难看。 更糟糕的是,如果我们插入几台服务器并开始每天获得10亿个事件,那么从一开始,这将是一场噩梦。 我们甚至无法理解那种规模的情况。
  • 可伸缩性–我们需要存储事件并进行处理。 可悲的是,我们发现这将意味着我们需要以许多不同的方式进行扩展。
    • 事件负载–我们需要扩展规模以处理大量事件。
  • 可定制性–我们提供了一组可爱的仪表板,显示了您想了解的有关服务器和API指标的所有信息。 但是,没有人对他们拥有的东西感到满意。 他们想要更多。 他们希望监视自己的指标并分析其数据并建立自己的图形。 而且,当然,他们希望现在就这样做,而不是两个月之内。
2011年5月,我们决定启动一项全新的计划,以从头开始重写WSO2 BAM。 我们对问题做出了一些决策。 这是其中的一些。
  • 分而治之–我们划分了问题。 我们必须汇总,分析和呈现数据。 因此,我们为每个组件构建单独的组件,请记住,我们需要分别缩放每个组件。 我们将它们映射到事件接收器,分析器框架和表示层。 数据代理是任何想要发送事件的人与BAM服务器之间的链接。 WSO2 Carbon平台使我们能够轻松地从任何服务器上卸载组件。 这意味着我们可以制作BAM发行版,卸载其他组件来制作Event Receiver BAM服务器。 或制作分析器BAM服务器。 只需单击一个按钮。
BAM 2.0的3个主要组件
  • 可扩展的快速存储–我们选择使用Apache Cassandra作为我们的存储解决方案。 我不想说这是有史以来最好的数据存储。 但是,它对我们很好。 它使我们能够进行快速写入以快速存储大量数据。 而且,它是按比例构建的。 放大Cassandra只需几分钟,而不是几周。 扩大规模并不意味着要花钱。 而且,它是用Java编写的,并且是一间Java房屋,它使我们可以破解代码。
  • 快速协议–我们选择使用Apache Thrift作为默认协议。 有很多反对它的论点,但它对我们来说很有利。 它既快速又有效。 它允许我们维护会话,支持多种语言。 一个关键的事情是Cassandra也使用它,使我们能够在不反序列化的情况下将数据流传输到Cassandra中获得更高的性能。
  • 可扩展的分析–我们选择编写自己的分析语言。 但是,如果不合适,则可以插入自己的Java代码。 在扩展分析方面,Hadoop是不可避免的。 因此,我们决定采用Hadoop模式处理大量数据,而采用非Hadoop模式,这样任何人都可以使用BAM,而不必担心任何Hadoop集群。
    • 基于小工具的仪表板/报告–拖放可视化非常吸引人,当您不想花费数周的时间编写代码进行可视化时。 我们开发了一个小工具生成器,以便您可以快速轻松地可视化已分析数据。
      经过几个里程碑之后,我们得以剥离出一个alpha。 可在此处获得: http : //dist.wso2.org/products/bam/2.0.0-Alpha/wso2bam-2.0.0-ALPHA.zip。 这不是灵丹妙药,文档仍然是在制品。 但是,如果我们还没有到达目的地,那现在就在我们的范围之内。

      参考:在dev_religion博客上,我们的JCG合作伙伴 Mackie Mathew提出了Business Activity Monitor(BAM)2.0的革命 。


      翻译自: https://www.javacodegeeks.com/2012/06/revolution-with-business-activity.html

      本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372425.shtml

      如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

      相关文章

      oracle销售服务器吗,oracle 服务器 版本

      oracle 服务器 版本 内容精选换一换Atlas 800 训练服务器(型号 9010)安装上架、服务器基础参数配置、安装操作系统等操作请参见《Atlas 800 训练服务器 用户指南 (型号9010)》。Atlas 800 训练服务器(型号 9010)适配操作系统如表1所示。请参考表2下载驱动和固件包。Atlas 800 训…

      Vue组件间通信:一个例子学会Vue组件-Vue.js学习总结)(转载)

      详情请点击 http://www.jianshu.com/p/9ad1ba89a04b转载于:https://www.cnblogs.com/zhongjiang/p/6694459.html

      必填字段的自定义JSF验证器

      实现EditableValueHolder接口的JSF组件具有两个属性“ required”和“ requiredMessage” –一个标志,指示用户需要输入/选择非空值,以及一个用于验证消息的文本。 我们可以使用它,但是它不够灵活,我们不能直接在视图中&#xff0…

      java 转码%2f%_JS和JAVA中常用的编码转码函数

      js中escape,encodeURI,encodeURIComponent函数和unescape,decodeURI和decodeURIComponent函数的功能1.escape方法对String对象编码,escape方法返回一个包含了"转义序列"的字符串值。除了ASCII字母和数字,以及这几个符号 *-/._外(共有1052769个字符不会被编…

      mybatis 下划线转驼峰配置

      一直以来&#xff0c;在sqlmap文件中&#xff0c;对于数据库中的下划线字段转驼峰&#xff0c;我们都是通过resultmap来做的&#xff0c;如下&#xff1a; <resultMap id"ISTableStatistics" type"com.medsoft.perfstat.pojo.ISTableStatistics" > &…

      Python练习-迭代器-模拟cat|grep文件

      代码如下: 1 # 编辑者&#xff1a;闫龙2 def grep(FindWhat):3 fopen("a.txt","r",encoding"utf8")#以只读的方式打开a.txt文件4 while True:5 try:6 fline next(f).strip()#由于File类型本身就是一个迭代器,所以直…

      Spring和JSF集成:转换器

      使用任何Web框架时&#xff0c;都不可避免地需要将用户输入的数据从String为其他类型。 尽管Spring和JSF在设计和功能上确实有很大的不同&#xff0c;但它们都具有转换器策略来处理此问题。 让我们从春天开始。 Spring 3引入了一个全新的转换框架&#xff0c;该框架允许将任何类…

      nacos配置ap_Nacos 1.0.0 功能预览

      本文来自于我的个人主页&#xff1a;Nacos 1.0.0 功能预览&#xff0c;转载请保留链接 ;)Nacos 1.0.0 是正式 GA 的版本&#xff0c;在架构、功能和API设计上进行了全方位的重构和升级&#xff0c;1.0.0版本标志着Nacos的架构已经稳定&#xff0c;API列表最终确定。升级到1.0.0…

      poj 2229 Sumsets

      题目大意&#xff1a; 一个数由2的幂次数的和构成&#xff0c;问有几种构成方式&#xff1f; 主要是找规律 代码如下 1 #include <cstdio>2 #include <cstring>3 int n;4 #define M 10000000005 int dp[1000002];6 7 int main(int argc, char const *argv[])8 {9 …

      html 甘特图_Rplotly|交互式甘特图(Gantt chart)项目管理/学习计划

      甘特图(Gantt chart)&#xff0c;又常被称为横道图或者条状图&#xff0c;是现代企业项目管理领域运用最为广泛的一种图示。就是通过条形来显示项目的进度、时间安排等相关情况的。项目管理外&#xff0c;也可以用来管理学习计划。绘制甘特图的工具有很多&#xff0c;本文介绍使…

      使您的Spring Security @Secured注释更干燥

      最近&#xff0c;Grails用户邮件列表中的一个用户想知道在定义Secured批注时如何减少重复 。 在Java批注中指定属性的规则非常严格&#xff0c;因此我看不到直接执行他所要求的方法的方法。 使用Groovy并没有真正的帮助&#xff0c;因为Groovy类中的注释大部分与Java中的注释几…

      阅读《大型网站技术架构》 第三章心得

      今天阅读了《大型网站技术架构》 的第三章&#xff0c;这一章主要讲解了大型网站核心架构要素&#xff0c;并且概括的讲解了相应的实现方法。 软件架构除了系统功能需求外&#xff0c;还需要关注性能、可用性、伸缩性、扩展性、安全性。 其中性能是网站的重要指标。优化网站性能…

      easyui数据表格重置_数据库三种删除方式

      第一种 使用delete 语句特点&#xff1a;delete 属于数据库操纵语言DML&#xff0c;表示删除表中的数据&#xff0c;删除过程是每次从表中删除一行&#xff0c;并把该行删除操作作为事务记录在日志中保存可以配合事件&#xff08;transaction&#xff09;和 回滚&#xff08;ro…

      main函数之间的代码操作

      全局对象的构造函数会在main函数之前执行。转载于:https://www.cnblogs.com/yingl/p/5817123.html

      Windows 自启动总结《转》

      开机启动项  【启动项目就是开机的时候系统会在前台或者后台运行的程序】  当Windows&#xff08;操作系统&#xff09;完成登录过程&#xff0c;进程表中出现了很多的进程&#xff01;Windows在启动的时候&#xff0c;自动加载了很多程序。  许多程序的自启动&#xff0…

      win10多合一原版系统_微软Win10专业版制作多合一系统安装盘教程

      微软Win10怎么制作多合一系统安装盘?和Win10家庭版、win10企业版&#xff0c;win10教育版相比&#xff0c;微软Win10专业版是最受大家喜欢的操作系统&#xff0c;那么在安装Win10操作系统的时候&#xff0c;我们就不得不准备多个不同版本的系统安装盘。可是你知道微软Win10专业…

      Oracle Coherence:分布式数据管理

      本文介绍如何使用Oracle Coherence提供分布式&#xff08;分区&#xff09;数据管理。 在下面的示例应用程序中&#xff0c;创建了一个名为OTV的新集群&#xff0c;并且在该集群的两个成员之间分配了一个名为user-map的缓存对象。 二手技术&#xff1a; JDK 1.6.0_21 Maven的…

      Ajax学习笔记

      Ajax 什么是ajax AJAX即“Asynchronous JavaScript and XML”&#xff08;异步的JavaScript与XML技术&#xff09;&#xff0c;指的是一套综合了多项技术的浏览器端网页开发技术。以前&#xff0c;几乎所有的网站都由HTML页面实现&#xff0c;服务器处理每一个用户请求都需要重…

      美团点评DBProxy读写分离使用说明

      目的 因为业务架构上需要实现读写分离&#xff0c;刚好前段时间美团点评开源了在360Atlas基础上开发的读写分离中间件DBProxy&#xff0c;关于其介绍在官方文档已经有很详细的说明了&#xff0c;其特性主要有&#xff1a;读写分离、负载均衡、支持分表、IP过滤、sql语句黑名单、…

      apriori算法c++_关联分析——基于Apriori算法实现

      电子商务推荐系统主要是通过统计和挖掘技术&#xff0c;根据用户在网站上的行为,主动为用户提供推荐服务&#xff0c;从而提高网站体验。而根据不同的业务场景&#xff0c;推荐系统需要满足不同的推荐粒度&#xff0c;包括搜索推荐,商品类目推荐,商品标签推荐&#xff0c;店铺推…