Migration jhipster 3从单一服务迁移到微服务

Migration jhipster 3从单一服务迁移到微服务,migration,jhipster,microservices,Migration,Jhipster,Microservices,目前我有一个JHipster 3.3单片应用程序,我想迁移到微服务体系结构。我已经创建了注册表、网关和uaa服务。现在,我需要将应用程序的核心业务迁移到微服务中。是否有执行此操作的设施?我可以自动生成吗?您可以将您的monolith转换为服务,或者从实体定义重新生成它 第一种方法需要对Spring Cloud有很好的了解,首先用@enableurekaclient注释你的应用程序,在你的pom.xml中添加Spring Cloud上缺少的depddencies,在你的应用程序*.yml中添加缺少

目前我有一个JHipster 3.3单片应用程序,我想迁移到微服务体系结构。我已经创建了注册表、网关和uaa服务。现在,我需要将应用程序的核心业务迁移到微服务中。是否有执行此操作的设施?我可以自动生成吗?

您可以将您的monolith转换为服务,或者从实体定义重新生成它

第一种方法需要对Spring Cloud有很好的了解,首先用
@enableurekaclient
注释你的应用程序,在你的
pom.xml
中添加Spring Cloud上缺少的depddencies,在你的
应用程序*.yml
中添加缺少的属性,创建
引导程序*-yml
文件。然后将客户端部分移动到网关。这并不容易,尤其是如果您是SpringCloud的新手

第二种方法要求您生成一个与您的monolith具有相同选项的microservices应用程序,然后将包含实体定义的
.jhipster
文件夹复制到该文件夹中,并按照最初创建实体的相同顺序重新生成每个实体的
yo jhipster:entity
,然后在网关上生成htem以生成客户端部件


您还应该花时间思考迁移的原因,如果您将monolith应用程序转换为单一服务,那么这可能是个坏主意,因为您只会增加复杂性,只有在您计划添加更多服务和/或将monolith拆分为多个服务时,这才有意义。O'Reilly有一本很好的免费电子书和视频:“微服务反模式和陷阱”

对于start,我还想订阅Gaël答案的最后一部分:

想想为什么要迁移?

就我个人而言,我目前正处于一个迁移过程中。我在2015年启动了JHipster monolith应用程序(当时这是唯一的选择:),我仍在开发和添加新功能。对于我的monolith,我决定迁移到microservice,因为我们增加了团队,并且希望将来使用DDD。我必须承认,开始时有一些开销,学习曲线相当陡峭,但最终结果是非常有益的,特别是如果你相信CI(y)

这就是我迁移我的巨石的方式:

  • 确保您提交了所有源代码并与VSC同步(我使用git作为DVC)
  • 没有任何更改,只需运行jhipster生成器并覆盖所有旧的源代码
  • 制作一个git diff,以概述从jhipster生成并已修改的文件
  • 如果您没有更改jhipster生成的文件的格式,那么它应该只是webapp文件夹和配置文件中的一些文件
  • 如果你只是因为格式不同,我建议你检查代码,然后更新你的monolith应用程序的基本代码
  • 我们的目标是在使用jhipster生成器重新生成monolith应用程序时尽可能有一些差异(最好在迁移到MicroService时检查较少的文件)
  • 此时,我暗示您处于干净的工作区(即,您所有的更改都与VCS同步),如果您将运行yo jhipster,您将有尽可能少的文件手动重新检查
  • 在应用程序的根文件夹中有一个.yo rc.json文件
  • 在该文件中,您应该将应用程序类型monolith更改为getaway,并将身份验证类型更改为jwt
  • .yo-rc.json

    "jhipsterVersion": "3.5.1",
    "serverPort": "8080",
    "applicationType": "gateway",
    "jhiPrefix": "jhi",
    
  • 合并新生成的文件后,您现在应该拥有微服务的网关(可能需要删除一些类,具体取决于您的monolith使用的authenticationType)
  • 就我个人而言,我现在正在努力将网关中存在的一些职责(旧的monolith所做的所有工作人员)迁移到sand Only微服务
  • 6.1中提到的服务迁移与向应用程序添加新功能并行,这些功能将作为新的微服务添加
  • 我的建议是以小步/增量进行,如果您有一个CI,那么您就可以尽快获得有关迁移的反馈;)

    祝你好运。 干杯,伙计