创建微服务器 Creating microservices
Microservices是一种JHipster应用程序,它没有前端 (the Angular front-end must be generated on a gateway), 并且与 JHipster Registry 配合使用,发现和管理。
在微服务架构中生成实体 Generating entities in a microservices architecture
使用 entity sub-generator 在微服务架构中有所不同,因为前端和后端代码不在同一应用程序中。
首先,在微服务应用程序中生成实体:这样可以照常使用,还可以使用 JHipster UML or JDL Studio 来生成复杂的实体和关系。由于微服务没有前端,因此不会生成AngularJS代码。
然后,在网关上再次运行实体子生成器。一开始就会出现一个新的问题,这是一个特定于网关的问题:
- 您将有选择正常生成一个新实体(网关也是一个标准的JHipster应用程序,所以这将像单片应用程序一样工作),或者从微服务器使用现有的JHipster配置。
- 如果您选择从微服务器生成实体,则需要在本地计算机上输入此微服务器的路径,然后JHipster将在网关上生成前端代码。
使用Hazelcast分布式缓存 Distributed caching with Hazelcast
如果您的应用程序使用SQL数据库,JHipster将提供与微服务不同的第二级缓存解决方案:
- JHipster的默认缓存解决方案与微服务器是Hazelcast
- 您仍然可以选择Ehcache(使用单片应用程序的默认解决方案),或者选择不使用缓存
这个解决方案是微服务的默认解决方案,因为在这个架构中,您的想法是您将扩展您的服务:
- 使用本地缓存,您的服务实例将不具有同步缓存,从而导致不正确的数据
- 没有任何缓存,缩放的负担将被推送到数据库,这将不是很好(除非你使用我们的Cassandra选项)
使用带有微服务器的Hazelcast将导致一个特定的配置:
- 在启动时,您的应用程序将连接到JHipster注册表,以查找同一服务的其他实例是否正在运行
- With the
dev
profile, JHipster将在localhost (127.0.0.1
)上创建这些实例的集群,每个实例使用不同的端口。默认情况下,Hazelcast端口是your application's port + 5701
(所以如果您的应用程序的端口是8081
, Hazelcast将使用端口13782
) - With the
prod
profile, JHipster将使用默认的Hazelcast端口 (5701
)创建一个集群,其中包含所有其他节点。
Microservices没有数据库 Microservices with no database
只有微服务应用程序才能创建而不需要数据库。这是因为微服务很小,没有用户管理代码。
没有数据库的微服务器非常小,可以用于连接到特定的后端,如传统系统。