使用 gRPC 处理请求
在之前的工作中,我们完成了项目和协议缓冲区的设置,并编写了日志库。然而,当前的日志库存在一定的局限性,它只能在单台计算机上供单人使用,而且用户需要学习库的 API、运行代码并将日志存储在本地磁盘,这限制了其用户群体。为了解决这些问题,吸引更多用户,我们可以将日志库转化为一个网络服务。
网络服务的优势
与单台计算机上运行的程序相比,网络服务具有以下三个主要优势:
- 可在多台计算机上运行 :提高可用性和可扩展性。
- 多用户数据交互 :允许多人与相同的数据进行交互。
- 易用的接口 :提供易于使用的可访问接口。
以下是一些适合编写服务以获取这些优势的场景:
- 为前端提供公共 API。
- 构建内部基础设施工具。
- 打造用于开展业务的服务。
什么是 gRPC
在构建分布式服务时,常见的两个难题是维护客户端与服务器之间的兼容性和性能。为了确保兼容性,我们需要对 API 进行版本控制;而对于性能优化,除了优化数据库查询和业务逻辑算法外,还需关注服务对请求和响应的编解码速度以及通信开销。
Google 推出的 gRPC 是一个开源的高性能远程过程调用(RPC)框架,它在解决这些问题上表现出色,能简化开发工作。
构建服务的目标及 gRPC 的帮助
在构建网络服务时,有几个重要目标,gRPC 能帮助我们实现这些目标:
| 目标 | 描述 | gRPC 的帮助 |
|