关于微服务项目代码结构的疑问
由于微服务将功能打散, 让独立成服务的功能组成一个工程, 进而打成1个jar包, 比如我有个简单的需求:
服务1: 从ActiveMQ中读取要建立全文索引的文档标识和操作类型来在ElasticSearch中建立/更新/删除索引, 采用MessageListener方式从ActiveMQ中读取消息
服务2: 提供全文检索服务, 供PC/移动端使用
按照微服务, 这两个分别是在不同的工程里面, 服务器1为index-ms, 服务2为search-ms, 且彼此的启动停止相互不影响
问题如下:
他们的公用的代码如何组织, 比如都有一个Document对象来代表一个文档, 一个工程放一个, 还是再建立一个通用的工程让他们去引用依赖, 如果一个工程放一个,那么当field有变更的时候需要改2个工程, 如果这样的话, 那微服务中有很多这样的model需要公用
还有dao, service这类方法, 如果一个工程用其中几个方法, 而其他工程用另外几个方法, 那同名的dao和service就要分别在多个工程中存在, 只不过其中代码不一样, 而且未来也有可能在不同的微服务中存在相同的方法
这类问题, 大家都是如何去权衡的呢, 之前用jfinal的时候, 跟作者讨论过类似的设计, 因为jfinal可以按照数据库的表自动生成model代码(包含dao功能), 所以就将这部分单独弄成一个工程, 让其他工程依赖, 反正这个工程代码都是自动生成也不用去改, 不知道微服务可不可以用这个思路
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论