首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java - Akka项目最佳实践

Java - Akka项目最佳实践
EN

Stack Overflow用户
提问于 2015-07-16 23:57:10
回答 1查看 306关注 0票数 0

我有一个围绕着角色系统构建的java项目。其中一个参与者需要通过我编写的java API使用第三方服务。然而,我想知道在AKKA世界中,拥有一个java接口和一个与此参与者交互的实用java类是否是一个好的实践?

MyActor.java

代码语言:javascript
复制
public class MyActor {
 @Override
 public void OnReceive(Obj o) throws Exception {
     .. do something 
     .. do something else using MyUtility.java
     .. send back the message
 }
public class MyUtility implements ItsIterface {
 ... blah
} 
interface ItsInterface {
  .. blah
}

这是一种好的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-08-05 15:18:53

我要说的是,就actor系统而言,依赖于第三方服务似乎是很自然的,因为没有人能期望它独立工作。

至于接口,我不知道它如何与参与者相关,因为它只直接使用实用程序类实现。如果不了解更多关于MyUtility的知识,如果它包含状态并且没有被参与者独占使用,那么通常的并发问题就会出现。

虽然使用第三方服务的质量超出了您的控制范围,但会导致一些潜在的问题,并要求设计反映这一点:

由于潜在的性能/可伸缩性问题,

  • 执行元对消息的阻塞是discouraged
  • 只需使用来自执行元的未来来防止阻塞,从而将瓶颈从执行元转移到未来。如果您推送(即插入消息)而不询问系统是否可以处理额外的消息(背压),这一点尤其正确。.
  • Queues Don't Fix Overload是一篇很好的文章,介绍了在一般情况下处理队列中的负载。unreliable.
  • An actor很少有与它使用的服务相同的circuit breaker,因此需要考虑
  • ,将第三方服务放在单独的actor中,并使用circuit breaker

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31459114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档