我们创建了一个Web应用程序,它是一个电子书阅读器.因此要记住的一件事是,域名并不完全是阅读实体书籍的域名.我们现在正试图通过存储用户访问的电子书页面信息来收集用户的阅读行为.由于这些信息发送到数据仓库,我们认为从bookcontroller中提取事件是正确的方法.
bus.Publish()
但我们不确定它应该是发布还是发送,因为此活动真的只有一个消费者,那就是我们的商业智能团队.我们还读到,不建议从网络应用程序发布(http://www.make-awesome.com/2010/10/why-not-publish-nservicebus-messages-from-a-web-application /).所以现在替代方法是使用bus.Send(RecordPageAccessedCommand)
但是上面的命令无论如何都不会改变我们的应用程序状态.它真的是一个命令吗?我有一种感觉,我们犯的错误是使用NServiebus的功能(发布,发送)并尝试将其与命令或事件等同起来.
请让我知道解决方案是什么.
我的应用程序是使用Scala在Play Framework(2.5.3)上构建的.为了部署应用程序,我使用sbt docker:publishLocal命令创建了一个docker镜像.我试图找出基础docker镜像文件在play框架文件夹结构中的位置.我确实在target/docker文件夹中看到了一个DockerFile.我不知道Play Framework如何创建这个DockerFile以及Play Framework在何处/如何告诉docker将应用程序分层到基础映像上.我是scala/play/docker n00b.请帮忙.
我们在使用NServiceBus的负载均衡,高容量环境中遇到了MSMQ问题.
我们的环境如下所示:1 F5通过循环将Web流量分配到6个应用服务器.这6台服务器中的每台服务器在驻留在集群上的远程计算机上使用Bus.Send到1队列.
正常使用期间的事件吞吐量大约是每服务器每秒5-10个.因此,整个环境中每秒30-60个事件,具体取决于负载.
我们看到的问题是,其中一个应用程序框能够将消息发送到集群队列,但其他5个不能.查看遇到故障的5个框,群集的传出队列处于非活动状态.
事务死信队列中还有大量事件.当我们清除该队列时,传出队列连接到群集,但是,传出队列中的消息会以未确认的方式增长.这将持续增长,直到它们再次进入事务死信队列,并且传出队列将状态更改为非活动状态.
有趣的是,当我们执行这个清除操作时,一个不同的盒子将成为"好盒子".所以我们非常确定问题不是一个坏盒子,而是一次只有一个盒子可以可靠地保持与集群队列的连接.
以前有人遇到过这个吗?
我们计划在工作中实施NServicebus pub子模型.争论的一个方面是订阅者/消息处理者是否应该进行域工作,或者是否应该将工作委托给当前正在进行工作的相关Web服务之一.后者的论点是我们可以独立扩展订户和Web服务.这里的推荐做法是什么?