解锁 Docker 潜力:异步消息传递与应用开发实战
1. 利用消息处理程序添加新特性
将待办事项应用转向事件驱动架构,这一架构下应用通过发布事件表明事件发生,而非在事件发生时立即处理所有事务。这种方式有助于构建松耦合应用,能在不改变发布事件逻辑的前提下,灵活响应事件。在该应用中,虽仅针对单一类型事件使用此架构,但仍能在不改动现有应用的基础上添加新特性。
添加新特性的简单方法是在新组中添加新的消息处理程序,它能获取每个事件的副本并作出不同响应。例如,现有消息处理程序将数据保存到 SQL 数据库,新的消息处理程序可以将数据保存到 Elasticsearch,方便用户在 Kibana 中查询,或者将条目添加到 Google 日历作为提醒。下面有一个简单示例,即创建一个类似审计跟踪的处理程序,为每个新的待办事项写入日志条目。
操作步骤 :
- 新的消息处理程序位于 Compose 覆盖文件中,部署时属于增量部署,Compose 会创建一个新容器,其他容器不受影响。
# 运行审计消息处理程序,保持保存处理程序的规模不变
docker-compose -f docker-compose.yml -f docker-compose-audit.yml up -d --scale save-handler=3
# 检查审计处理程序是否正在监听
docker logs todo-list_audit-handler_1
# 浏览到 http://localhost:8080 并添加一些新项
# 检查审计跟踪
docker logs todo-list_audit-hand