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

来源:30-2 商品分类的表机构设计

三生三途

2021-01-11

打个比方:

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回答

bobby

2021-01-12

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

0
3
bobby
回复
三生三途
是的,如果是这样的话 那么最好是分开写两个message
2021-01-14
共3条回复

爱编程的运维

2023-05-08

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

0
1
bobby
确实太夸张了,估计很多都不用了吧, 可以使用 https://github.com/bufbuild/buf 对proto文件进行管理
2023-05-10
共1条回复

三生三途

提问者

2021-01-11

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

0
0

Go+Python打造电商系统 自研微服务框架 抓紧高薪机遇

快速转型Go工程师,成为具备双语言后端能力的开发者

508 学习 · 530 问题

查看课程