繁体   English   中英

具有BigData的Oracle服务总线

[英]Oracle service bus with BigData

我没有使用Oracle Service Bus的丰富经验,我正在尝试使用BigData设计日志记录解决方案。

如我所读,OSB中的默认日志和报告活动会将数据放入域的服务器日志文件中,或放入我们设置服务器域的数据库中。 如果要将所有日志放入单独的BigData数据库中。 我将需要以下两种方法之一:

  1. Java标注,使用JMS或其他技术将数据发送到bigdata服务器。
  2. Web服务标注,创建一个单独的Web服务来处理日志记录。
  3. 创建自定义报告提供程序以替换OSB报告中的默认报告提供程序。
  4. 还有别的

请告诉我有关我应该使用哪种方法的一些想法,如果可以的话,请提供您的原因,非常感谢。

weblogic中的日志记录框架不是基于Log4j吗? 这意味着您可以使用JMSAppender(如果可以的话,可以谨慎地包装Async log4j附加程序)并根据需要进行处理。

或者,如果您正在谈论OSB报告框架,则有一些选择:

  1. 配置默认的JMS报告提供程序 (它使用底层的SOAINFRA数据库,希望它可以比默认的Derby实例更好),然后编写一个MDB将报告从队列中拉出并将其插入SAS BigData
  2. 关闭JMS提供程序并使用自定义提供程序 ,该提供程序可以执行您想要的任何操作。 如果需要,您仍然可以执行一个两步过程,报告提供者本身将报告放在JMS队列中,这样它就可以快速返回,而另一个MDB可以按自己的步调拉出消息并将其持久化。

我不建议在中间没有异步步骤的情况下使用Web服务或数据库标注,因为您需要非常快速地进行日志记录和报告,并在尽可能短的时间内使用最少的资源。

遇到负载时,您不想登录到hog线程。 我已经看到整个总线由于一次打brought而崩溃,因为日志记录数据库遭受性能故障,这导致一堆试图记录到它的开放线程,这导致线程饥饿或超时,从而导致更多错误记录...

如果您有像JMS队列这样的缓冲区,则可以通过提前计划来处理峰值。 您可以说“实际上我想要一个10,000条消息的JMS队列,并且如果由于某种原因导致溢出,我想(将溢出溢出推到另一个框上的单独队列中)或(过滤掉所有非必要的消息)或(扔掉新消息)或(您选择的操作)。是的,如果日志记录数据库失败,那么我将尝试3次提交,否则,将其移至另一个队列”。 或任何您想要的。

有多种方法可以实现此目的。 您可以使用报告活动推送到JMS或使用日志活动。

您还可以编写一个这样的小例程(在OSB上或在OSB外部),该例程可以读取您正在记录的任何内容(例如,通过日志活动,还可以包含在打开对OSB组件的监视时记录的其他元数据)。并根据需要进行处理(例如将其推送到数据库或BigData存储)。

关键是要避免在每个管道/流中编写显式的服务调用,并且上述方法使用标准的OSB / ODL *记录器

* Oracle诊断日志

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM