目前,我是一个JHipster 3.3单片应用程序,我想迁移到微服务架构。我已经创建了注册表,网关和uaa服务。现在我需要将应用程序的核心业务迁移到微服务中。有没有设施来执行它?我可以自动制作吗?
答案 0 :(得分:3)
您可以将整体转换为服务,也可以从实体定义中重新生成它。
第一种方法需要对Spring Cloud有一个很好的理解,你首先要用@EnableEurekaClient
注释你的应用,在你的pom.xml
上添加对Spring云的遗漏缺失,为你的{添加缺少的属性{1}},创建application*.yml
个文件。然后,您将客户端部分移动到您的网关。如果您不熟悉Spring云,那就不容易了。
第二种方法要求您生成一个微服务应用程序,其选项与您的整体相同,然后将包含您的实体定义的bootstrap*-yml
文件夹复制到该文件夹,并为每个实体重新生成.jhipster
最初创建它们的顺序相同,然后在网关上生成htem以生成客户端部分。
你还应该花些时间考虑一下你为什么要迁移,如果你把你的整体应用变成一个单一的服务那么这可能是一个坏主意,因为你只会增加复杂性,这只是有意义的如果您计划添加更多服务和/或将您的整体分成多个服务。 O' Reilly提供了一个很好的免费电子书和视频:"微服务AntiPatterns和陷阱"
答案 1 :(得分:1)
首先,我还想订阅Gaël答案的最后部分:
想一想你为什么要迁移?
我个人正处于迁移过程中。我从2015年开始一个JHipster monolith app(当时这是唯一的选择:))我仍在开发并添加新功能。对于我的巨石我决定迁移到微服务,因为我们增加了团队,并希望将来使用DDD。我必须承认在开始时有一些开销,学习曲线非常陡峭,但最终结果非常有益,特别是如果你相信CI(y)
这是我迁移我的巨石的方式:
.yo-rc.json
"jhipsterVersion": "3.5.1",
"serverPort": "8080",
"applicationType": "gateway",
"jhiPrefix": "jhi",
我的建议是以较小的步数/增量进行操作,如果您有CI,那么您也可以尽快获得有关迁移的反馈;)
祝你好运。 干杯,duderoot