关于微服务项目代码结构的疑问

发布于 2022-09-03 18:58:47 字数 724 浏览 18 评论 0

由于微服务将功能打散, 让独立成服务的功能组成一个工程, 进而打成1个jar包, 比如我有个简单的需求:

服务1: 从ActiveMQ中读取要建立全文索引的文档标识和操作类型来在ElasticSearch中建立/更新/删除索引, 采用MessageListener方式从ActiveMQ中读取消息

服务2: 提供全文检索服务, 供PC/移动端使用

按照微服务, 这两个分别是在不同的工程里面, 服务器1为index-ms, 服务2为search-ms, 且彼此的启动停止相互不影响
问题如下:

  1. 他们的公用的代码如何组织, 比如都有一个Document对象来代表一个文档, 一个工程放一个, 还是再建立一个通用的工程让他们去引用依赖, 如果一个工程放一个,那么当field有变更的时候需要改2个工程, 如果这样的话, 那微服务中有很多这样的model需要公用

  2. 还有dao, service这类方法, 如果一个工程用其中几个方法, 而其他工程用另外几个方法, 那同名的dao和service就要分别在多个工程中存在, 只不过其中代码不一样, 而且未来也有可能在不同的微服务中存在相同的方法

这类问题, 大家都是如何去权衡的呢, 之前用jfinal的时候, 跟作者讨论过类似的设计, 因为jfinal可以按照数据库的表自动生成model代码(包含dao功能), 所以就将这部分单独弄成一个工程, 让其他工程依赖, 反正这个工程代码都是自动生成也不用去改, 不知道微服务可不可以用这个思路

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文