Jakarta ee 如何使用多个有状态bean实例?

Jakarta ee 如何使用多个有状态bean实例?,jakarta-ee,java-ee-6,glassfish-3,Jakarta Ee,Java Ee 6,Glassfish 3,我在一个学校项目中遇到以下问题 许多汽车都将它们的位置数据发送到一个无状态Web服务,该服务将其转储到java消息队列中。 这个队列由消息驱动bean处理,它计算一些内容并将其发送到缓存。 此缓存/缓冲区需要为每辆车保留一组较小的缓冲区对象,并通过将该车的内容发送到另一个系统定期清空每个缓冲区。 我在第三步中遇到了很多困难。我的第一个想法是为每辆车创建一个有状态的bean实例,这样系统中的每台机器都可以容纳许多这样的实例。单例bean将跟踪所有汽车的缓冲区。这将有望保持事物的可伸缩性 虽然事情似

我在一个学校项目中遇到以下问题

许多汽车都将它们的位置数据发送到一个无状态Web服务,该服务将其转储到java消息队列中。 这个队列由消息驱动bean处理,它计算一些内容并将其发送到缓存。 此缓存/缓冲区需要为每辆车保留一组较小的缓冲区对象,并通过将该车的内容发送到另一个系统定期清空每个缓冲区。 我在第三步中遇到了很多困难。我的第一个想法是为每辆车创建一个有状态的bean实例,这样系统中的每台机器都可以容纳许多这样的实例。单例bean将跟踪所有汽车的缓冲区。这将有望保持事物的可伸缩性

虽然事情似乎不是这样做的,因为一切都指向注入和客户端与有状态bean之间的1-1关系,而我似乎需要1-many关系

经过一些研究,我发现网上关于这类场景的信息充其量是模糊的,充其量是无关紧要的。我的书《用Glassfish 3构建JavaEE6平台》似乎根本没有提到这一点。我已经联系过我的技术员,但他还没有回复,我怀疑他是否真的知道很多

我不愿意使用数据库,因为事实上并不需要,也不应该!储存时间比绝对需要的时间长


也许我遗漏了一些基本概念,或者我只是想得太多了,需要一种完全不同的方法。我的问题是,在这种环境下,您将如何处理此类问题?我正在使用Glassfish 3.0.1。

为什么要使用有状态会话bean?我将编写另一个无状态SessionBean,它可以从缓存中返回值,然后用另一个Web服务包装这些值。

我认为您在缓存实现中遗漏了一些东西。您可以使用一个简单的哈希集来缓存数据。 或者你可以使用现有的缓存框架,比如memcache-googlecache,它的性能非常好。看见 如果要定期清空缓存,可以使用java.util
类计时器。

我使用不同的方法解决了这个问题,因此不再需要解决方案。尽管我还是很好奇。我不想使用简单的HashSet或类似方法的原因是我想创建一个“分布式缓存”,以保持它的可伸缩性。