用例是这样的:
- 一个 Actor 绑定到喷 IO - 接收和处理所有通过指定端口的入站 HTTP 请求。
- 对于每个入站请求,参与者需要将出站异步 http 请求发送到不同的外部端点,取回入站响应并将响应发送回发起方。
使用 spray 的客户端 sendReceive 返回一个未来。这意味着参与者将继续处理其邮箱中的下一条入站消息,而无需等待它刚刚发送的出站请求的响应,同时出站请求的响应可能会到达并在 Future 回调中执行,因为它是没有在actor的邮箱中排队,它可能会被并行执行,打破了actor在给定时间内仅由一个线程执行的想法。
我想知道如何在不破坏actor线程封装的情况下处理这个用例,actor如何以actor安全的方式使用spray-client(用于发送/接收异步http事件)?