生产兼具精益和企业价值的中间件是一项艰巨的工作。 它要么不存在,要么需要创新的思维(很多),并且需要在实现中反复进行。 业务风险很大,但是如果您做对了,它就会使您领先于其他任何公司。 这就是为什么我们考虑从头开始重写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

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

  1. .bam.bai的意义_业务活动监视器(BAM)2.0带来的革命

    .bam.bai的意义 生产兼具精益和企业价值的中间件是一项艰巨的工作. 它要么不存在,要么需要创新的思维(很多),并且需要在实现中反复进行. 业务风险很大,但是如果您做对了,它就会使您领先于其他任何 ...

  2. 【译】Spring 4.0带来的@Conditional注解

    Spring 4.0带来的@Conditional注解 本文会接触spring 4的新功能:@Conditional注解.在之前的spring版本中,你处理conditions只有以下两个方法: 在3 ...

  3. android7.0后台,安卓7.0带来一键清理后台 真能使手机变快吗

    原标题:安卓7.0带来一键清理后台 真能使手机变快吗 从这个月开始手机扎堆发布,苹果.三星和LG这些国际大厂都带来了自己的年度旗舰产品,手机界可谓是热闹非凡.于是站安卓党和站ios党就到底哪家手机更好 ...

  4. 云SIM带来的革命?(云simesim)

    云SIM带来的革命?         2016年6月8日 17:47  CCTIME飞象网  作 者:蒙浩程     2016.05.10 蒙浩程 新型"SIM"的出现我们所熟悉的 ...

  5. oracle bam教程,Oracle业务活动监控(BAM)和业务规则

    业务活动监控 Oracle 业务活动监控 (BAM) 是用于构建实时操作信息板的一个完整的解决方案,该信息板可以监控业务流程和服务.服务水平,以及从流程和服务中跟踪关键性能指标 (KPIs),并提供执 ...

  6. 摩托罗拉RhoMobile 5.0带来新的授权模型、云服务和KitKat支持

    摩托罗拉RhoMobile 5.0带来新的授权模型和一组新增或改进的云服务--构建.同步.推送通知,并支持最新版本的iOS和Android以及支持Zebra打印等. \u0026#xD;\u0026# ...

  7. 详解7.0带来的新工具类:DiffUtil

    转: 详解7.0带来的新工具类:DiffUtil 一 概述 DiffUtil是support-v7:24.2.0中的新工具类,它用来比较两个数据集,寻找出旧数据集->新数据集的最小变化量. 说到 ...

  8. npu算力如何计算_异构计算神器来了,它能带来性能革命吗

    前言:优化差有多要命?3A大作告诉您 说到最近游戏圈子里的热门话题,刚刚在全平台上线的某"国产3A大作"显然绝对值得一提.一方面来说,靠着"抽卡化单机游戏"的设 ...

  9. 信息哲学给哲学带来根本性革命了吗

    来源:中国科学报 摘要:信息哲学乃是区别于所有其他哲学的一种元哲学或最高哲学.由于信息哲学首先是在哲学的最高范式("存在领域的划分")层面引发的变革,所以信息哲学实现了人类哲学的第 ...

最新文章

  1. junit测试方法_JUnit测试方法订购
  2. oracle dg 搭建方式,Linux平台 Oracle 11g DG测试环境快速搭建参考
  3. java桥_JAVA 桥模式
  4. php修改mysql数据找不到_php 如何修改mysql数据
  5. pytorch 入门学习处理多维特征输入-7
  6. python中文版软件下载-Python中文版下载_PyCharm官方最新版下载_3DM单机
  7. 17-05-25模拟赛
  8. mysql查询当前用户中所有的表空间_查看Oracle当前用户下的信息(用户,表视图,索引,表空间,同义词等)...
  9. Optisystem软件与Matlab软件的联合数据读取
  10. 计算机一插u盘就丢失数据,u盘里面的数据会不会消失,教您u盘里面的数据消失怎么办...
  11. TrueType字体文件解析和字体光栅化
  12. Linux中fork函数详解
  13. (新型事件相机有关的论文解读)A Unifying Contrast Maximization Framework for Event Cameras
  14. PAT_乙级_1009_筱筱
  15. word无法自动修复计算机怎么办,电脑Word问题解决办法
  16. 获取当前登录用户的用户名
  17. 上年龄的笔记本升级固态硬盘和内存经验谈
  18. Java并发基础知识(五)
  19. Uva 12325 Zombie's Treasure Chest (贪心,分类讨论)
  20. 9.1 Git 与其他系统 - 作为客户端的 Git

热门文章

  1. 使用Eclipse构建Maven项目 (step-by-step)
  2. 不同特权级间代码段的跳转{ 门 + 跳转(jmp + call) + 返回(ret) }
  3. java流写入数据库_成为Java流大师–第4部分:数据库流
  4. 高性能 高可用 可弹性伸缩_性能,可伸缩性和活力
  5. logback redis_使用Spring Boot和Logback登录到Redis
  6. netflix_学习Netflix管理员–第1部分
  7. 在Spring中使用@ResponseStatus获取Http状态
  8. hibernate 调试_Hibernate调试–查找查询的来源
  9. java线程死锁_Java并发:隐藏线程死锁
  10. java jax-rs_在Java EE 6中将Bean验证与JAX-RS集成