基于 Hyper 框架开发微服务及日志与配置管理
1. 基于 Hyper 框架开发微服务
在开发微服务时,使用 Hyper 框架是一个不错的选择。在生成请求时,我们会对 Mutex 进行加锁操作。不过,当结果延迟返回或者处理流数据时,不应该一直对 Mutex 加锁,否则会造成请求处理的瓶颈,因为服务器无法并行处理依赖于同一个共享对象的请求。对于不能立即获取结果的情况,可以克隆 Mutex 的引用,并在需要访问数据的短时间内加锁。
1.1 REST 方法处理
我们希望实现基本的 CRUD 操作,利用 REST 原则,可使用合适的 HTTP 方法,如 POST、GET、PUT 和 DELETE。可以通过 match
表达式来检测相应的 HTTP 方法:
match (method, user_id) {
// Put other branches here
_ => {
response_with_code(StatusCode::METHOD_NOT_ALLOWED)
},
}
这里使用了一个包含两个值的元组:方法和用户标识符(类型为 Option<UserId>
)。如果客户端请求不支持的方法,默认分支会返回 METHOD_NOT_ALLOWED
消息(HTTP 状态码 405)。
下面详细讨论 match
表达式中每个操作的分支:
- P