dongqijuan3786 2018-06-07 21:19
浏览 206

在单个Go App中提供gRPC和Restful服务

I have a restful application made in Go, now I have to make this app also serve as gRPC server (I already created the needed files). I have the restful endpoints running in the port 8000, now I have the next questions:

  1. Can I server grpc as well as the restful app in the same instance?
  2. Should I assign a different port to serve gRPC?
  3. What is the recomended approach in this case? as the grpc stub will be only consumed by some of our microservices, but the restful will be consumed by the frontend of some apps
  4. In the case that I can serve boths, how should I initialize the servers?
  • 写回答

1条回答 默认 最新

  • dsc80135 2018-06-07 22:06
    1. Yes! If you want to serve gRPC as a RESTful service, there is a gRPC Gateway project that allows you to annotate your Protos, so they can be served over REST.

    2. Yes, but this gets a little trickier. The gRPC server in Go implements net/http.Handler, so you can add it to your existing HTTP server. Getting the URL paths to match is something you'll need to play around with, but it is certainly possible.

    3. I don't think there is any recommended approach. It depends mainly on environment constraints (such as if there are proxies, how you encrypt your connections, etc.).

    4. Initialize the gRPC Server first, and then add it to the HTTP server.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?



  • ¥55 AD844 howland电流源如何驱动大额负载
  • ¥15 C++ /QT 内存权限的判断函数列举
  • ¥15 深度学习GFnet理解问题
  • ¥15 单细胞小提琴堆叠图代码
  • ¥50 升级strust2版本到2.3.15.1后使用ognl3.0.6.jar windows环境中没有问题,但部署到linux环境报错
  • ¥15 vue页面,node封装接口
  • ¥15 求TMS320F280039C工程模板!
  • ¥15 delphi+fastreport实现分组补空打印问题
  • ¥15 使用python把两台mysql数据库服务器数据导出和导入
  • ¥15 NodeBB论坛配置Apache Solr中文搜索引擎的详细教程