请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于每个python微服务中每个server下应该有什么方法

打个比方:

handler里有个employee.py文件,文件下有EmployeeServicer类提供对员工的增删改查,类内部的方法定义是由employee.proto文件生成。


那么此时多了一个员工的上班时间,比如早班是08:00 - 11:50、 晚班是19:30 - 23:50

需要提供上班时间的增删改查,此时是应该写在employee.proto和EmployeeServicer内呢,还是说应该要新创建一个proto和一个py文件去写呢?


如果写在一个里,文件会很杂,越来越大

如果不写在一个里,拆分成不同的class,写不同的proto文件,那么server启动的时候就需要注册很多个**_pb2_grpc.add_**Servicer_to_server(**(), server)对吧。。


如此写下去,越大的项目就拥有越多的proto文件,服务层启动时需要注册越多Servicer,客户端需要初始化的client也会越来越多,该如何权衡这一块呢


正在回答

3回答

是的,你的问题还是很有实际意义的, 两种做法的优缺点也说的比较清楚, 一般情况下 是尽量分开, 一个文件大了肯定是不行的,所以两种方法都要运用到,具体应该到什么时候拆分文件 无法给你直接说 因为要看具体的实际情况而定,实际开发过程中 对proto文件的管理也有两种方法, client端和server端都要复制一份proto,也有公司的做法是统一一个大的proto文件管理, 专门用于统一管理proto文件,两种做法都有

0 回复 有任何疑惑可以回复我~
  • 提问者 三生三途 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2021-01-12 17:33:01
  • 提问者 三生三途 #2
    还有个问题想请教一下老师,关于proto的message的复用,比如创建和更新操作,
    创建是不需要传id,更新时需要传id,那么他俩复用一个message应该是没是没关系的,
    
    但是当更新的字段里多了某些字段,或者少了几个字段的时候,此时复用是不是就不好起到“文档”的作用了呢,
    因为老师您当时讲课时有说,看message就知道该传什么参数,可是当创建和更新参数出入比较大时,此时再复用还合适吗?
    回复 有任何疑惑可以回复我~ 2021-01-12 20:38:28
  • bobby 回复 提问者 三生三途 #3
    是的,如果是这样的话 那么最好是分开写两个message
    回复 有任何疑惑可以回复我~ 2021-01-14 22:24:02
爱编程的运维 2023-05-08 17:16:52

我们公司的proto几万个,你无法想象

0 回复 有任何疑惑可以回复我~
  • bobby #1
    确实太夸张了,估计很多都不用了吧, 可以使用 https://github.com/bufbuild/buf 对proto文件进行管理
    回复 有任何疑惑可以回复我~ 2023-05-10 00:03:08
提问者 三生三途 2021-01-11 14:03:32

是否像工作时间这样的小功要单独写一个proto文件和python类去维护呢

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信