构建Go服务与Web应用:从事件处理到前端展示
1. 创建查询处理服务
在事件处理器服务的配置文件中,我们发现需要两个后端服务:
- rabbit
- mongoevent - rollup
需要注意的是,事件处理器使用的RabbitMQ服务与命令处理器使用的是同一个。若不是这样,我们将无法看到命令处理器产生的消息,因为它们会被存储在一个单独、隔离的Rabbit实例中。
未来,事件处理器和查询处理器将共享同一个MongoDB服务(mongoevent - rollup),这样查询服务就能看到最近存储和处理的事件。不过,事件处理器和查询处理器都与同一个MongoDB数据库通信的做法违反了微服务的一个关键规则:永远不要将数据库用作集成层。我们这样做只是为了降低示例的复杂性。在实际应用中,事件处理器会使用服务来写入事件存储和计算状态。
2. 事件处理器的集成测试
集成测试此服务的主要目标是确保它能正确处理传入的事件,并将适当的值存入MongoDB存储库。具体操作步骤如下:
1. 通过vcapinate工具和Wercker服务镜像启动带有一组模拟绑定服务的服务器。
2. 向队列提交各种事件。
3. 等待处理器完成处理。
4. 查询存储库,确保事件已安全存储。
若想查看集成测试的代码,可访问:https://github.com/cloudnativego/drones - events/blob/master/integrations/_test/integration_test.go 。
3. 创建查询处理服务
创建完命
超级会员免费看
订阅专栏 解锁全文
438

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



