构建Go服务与Web应用的技术指南
1. 创建查询处理服务
在创建查询处理服务时,我们需要关注事件处理器服务的依赖。事件处理器服务的 manifest.yml 文件显示,它需要两个后端服务:
- rabbit
- mongoevent - rollup
需要注意的是,事件处理器使用的 RabbitMQ 服务与命令处理程序使用的是同一个。若不是同一个,我们将无法接收到命令处理程序产生的消息,因为这些消息会存储在单独的 Rabbit 实例中。未来,事件处理器和查询处理程序将共享同一个 MongoDB 服务( mongoevent - rollup ),这样查询服务就能获取到最近存储和处理的事件。
不过,事件处理器和查询处理程序都与同一个 MongoDB 数据库通信的做法,违反了微服务的一个关键规则:永远不要将数据库用作集成层。我们这样做只是为了降低示例的复杂度。在实际应用中,事件处理器会使用服务来写入事件存储和计算状态。这在微服务开发者中存在争议,一些人认为两个服务共享同一个数据库没问题,而另一些人则认为这违背了微服务的原则,具体决策需自行判断。
2. 事件处理器的集成测试
事件处理器集成测试的主要目标是确保它能正确处理传入的事件,并将合适的值存储到 MongoDB 存储库中。具体操作步骤如下:
1. 通过 vcapinate 工具和 Wercker 服务镜像启动带有一组模拟绑定服务的服务器。
2. 服务器运行后,向队列提交各种事件。
3. 等
超级会员免费看
订阅专栏 解锁全文
895

被折叠的 条评论
为什么被折叠?



