如何在现有的Rails应用程序中使用gRPC

11

当前的Web应用程序设置如下:有一个中央服务器,通过使用JSON作为响应对象的HTTP API调用与不同的服务进行交互。我们希望切换到使用gRPC来改善这些服务之间的通信性能。那么,有谁能帮忙告诉我如何在不改变现有MVC(模型、控制器、视图)代码结构的情况下,在我的Rails应用程序和服务中使用gRPC gem呢?

2个回答

1

gruf 可以帮助你:

gruf 是一个 Ruby 框架,它包装了 gRPC Ruby library,以提供更加流畅的集成到 Ruby 和 Ruby on Rails 应用程序中。

还有一个 demo Rails 应用程序 可以用作参考。

在创建 proto 文件、生成 Ruby 包装器 并将其连接到 Rails 应用程序之后,你只需执行 bundle exec gruf 即可启动 gRPC 服务器。


-3

我知道我必须在协议缓冲区中定义我的API。但是我想使用现有的MVC结构,只想更改客户端和服务器端的请求-响应代码以使用gPRC。如果有一个API来getBlogPost,我希望gRPC映射到相同的操作和控制器,并按照协议缓冲区中定义的发送响应。我想知道如何实现这一点。 - Vinay Lodha
然后,您需要检查您的Web MVC框架是否支持使用protobuf序列化数据。例如,Spring可以 https://spring.io/blog/2015/03/22/using-google-protocol-buffers-with-spring-mvc-based-rest-services 在这种情况下,请注意您正在使用Protobuf,而不是gRPC。如果要使用gRPC,您需要在.proto中定义您的协议,因为我只知道一种方法可以获得gRPC。 有关protobufs,请查看https://github.com/google/protobuf/blob/master/docs/third_party.md - Paul Verest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接