小编zaf*_*hal的帖子

什么是两个组件之间通信的最佳设计

目前我们正在开展一个项目,我们正处于项目的设计和架构阶段,以下是项目的要点.

  • 有些交换机正在生成实时数据
  • 我们在Java/Java EE中有两个组件,称之为CompA和CompB
  • CompA根据来自交换机的输入记录应用某些进程,而不联系任何数据库,CompA没有DB访问权限.
  • CompB还接受CompA的过程记录并应用处理,这涉及业务数据库
  • CompA和CompB在系统中具有多个实例,用于可伸缩性和容错.
  • 记录是具有多个字段的文本记录
  • 记录是事务性的,如果是来自CompA和CompB的进程,On记录被认为是处理的,否则它将被回滚并再次重新发送

现在问题是CompA和Comp B之间通信的最佳方式

一种方法是

 1. CompA--------> CompB
 2. CompA-------->Messaging Server(JMS)------> CompB

要求:将有多个CompA和CompB是系统,如果任何组件发生故障,其他对等方将共享负载,例如,如果CompA失败,其负载将由系统中的其他CompA实例共享.为此,我们将使用JMS进行第二个选项,以便CompA不与CompB紧密绑定.但是,随着新组件(Messaging Server)的引入,这可能会导致性能下降,因为记录处理是事务性的,系统是实时的.
您的建议和专家建议将受到高度关注

java architecture java-ee

7
推荐指数
1
解决办法
2942
查看次数

如何获取lucene中的文档总数

我的索引中有非常多的文档,我需要编写一个返回lucence索引中文档总数的方法.目前我使用*通配符来获取所有记录并返回totalHits的值.

问题是,当查询加载所有对象时,它需要花费很多时间,虽然我不需要加载对象,但我的要求是在不加载文档的情况下获取记录总数.

java lucene spring hibernate hibernate-search

1
推荐指数
1
解决办法
3270
查看次数