jhipster
所以你回来了! 在本系列的最后一部分中 ,我们采用了单片路线创建了一个JHipster应用程序。 这是红色药丸路线; 生活几乎与您习惯的一样。
但是也许您喜欢挑战。 也许您想超越红色药丸并尝试蓝色药丸。 在这种情况下,Blue Pill是微服务JHipster方法。
在此博客中,我们将使用JHipster的可用选项来创建微服务架构。 这种方法还有很多工作要做,但是最后,我认为它是有回报的。 获得您最喜欢的饮料并预留一些时间。 这将非常密集。
微服务概述
这些东西到底是什么?
“微服务”架构将前端和后端分开,从而使您的应用程序更易于扩展和解决基础架构问题。
这里的想法是使事物尽可能地分离。 您可以创建后端并运行它们,而无需与前端上的任何内容绑定,反之亦然。 每个实例都可以有多个实例,并且可以上下旋转而不会影响最终用户。 可能消除应用程序的停机时间。
它使它能够随着时间的推移而增长和扩展,而只需很少的架构工作。 后端变得越来越消耗东西,而前端则是向世界展示的输出。 前端几乎可以是任何您想要的东西。 传统网站,移动应用程序或其他您能想到的。
微服务路径
蓝丸
因此,您已决定大吃一口并吞下蓝色药丸。 您想挑战自己吗? 让我们开始吧。
网关
网关是由JHipster生成的应用程序(生成时使用应用程序类型微服务网关),用于处理Web流量并为AngularJS应用程序提供服务。 如果要遵循“后端为前端”模式,可以有几种不同的网关,但这不是强制性的。
这几乎将成为所有活动的中心。 它会有一个前端,因此您可以查看呼叫,内存等。您可以添加/删除用户,以及所有有趣的内容。 这些东西都打包好了,您可以自己查看。 我们在这里不会涉及太多。
登记处
JHipster注册表是使用常规JHipster结构的运行时应用程序,所有应用程序都在该结构上进行注册并从中获取其配置。 我们将不仅仅涉及将其拉下并使用它。 在大多数情况下,它只是“配置”的故乡。 只需克隆存储库并继续。 下面的更多信息。
https://jhipster.github.io/microservices-architecture/#registry_overview
克隆: https : //github.com/jhipster/jhipster-registry
微服务
微服务是JHipster生成的应用程序(生成它们时使用应用程序类型的微服务应用程序),用于处理REST请求。 它们是无状态的,可以并行启动它们的多个实例以处理重负载。
我们开工吧
网关
在本练习中,我们将非常关注JHipster的微服务指南 。
1.从yo jhipster
开始
2.选择“微服务网关”
3.回答所有问题 4 。 咖啡时间!!!
该应用程序几乎是一个带有配置以处理所有Web流流量的整体式应用程序
登记处
如果尚未复制, 请克隆https://github.com/jhipster/jhipster-registry 。 添加到您的项目空间。 继续并点火。
查找具有@SpringBootApplication
批注的Java文件,并将其作为Java应用程序运行。 这适用于下面的每个步骤。
微服务应用
第一件事是创建一个新目录。 随便叫它,然后进入该目录。 现在输入yo jhipster
。 在这里看到那个图案吗?
不过,这次,我们将选择“微服务应用程序”。 回答问题。
这次,只要摇动一下狗的尾巴,就可以使用微服务!
微服务实战
登记处
如果尚未启动注册表,请继续启动它。 它应该在http:// localhost:8761上运行 。 访问它,并查看它为您提供的基本信息。 然后单击“应用程序”链接。 请注意,它为空。
网关
现在是时候旋转网关了。 您将在控制台中看到此输出。
----------------------------------------------------------Application 'ExtendedDayGateway' is running! Access URLs:Local: http://127.0.0.1:8080External: http://192.168.1.4:8080
----------------------------------------------------------
2016-09-13 14:19:29.643 INFO 10856 --- [ restartedMain] c.wwc.extendedday.ExtendedDayGatewayApp :
----------------------------------------------------------Config Server: Connected to the JHipster Registry config server!
----------------------------------------------------------
注意,它是如何显示URL的,它还显示了它是从JHipster Registry获得的配置。 我们还来看一下该应用程序。 http://本地主机:8080
另外,再次在注册表应用程序中查看“应用程序”页面。 http:// localhost:8761 /#/ applications 。
请注意,我们的网关现在显示。 它是自注册的。
微服务应用
现在,我们有三分之二的项目正在运行。 我认为,现在该是肯定会成为这种情况的动力的时候了。 我们将添加微服务应用程序,它将为任何请求提供“后端”。
1.创建一个Java类作为我们的“ api”端点。 在我们的例子中,我们只有一个返回静态数据集的对象。 十分简单。
@RestController
@RequestMapping("/api")
public class DemoResource {...
2.添加一种返回“学生”的方法。
/*** GET /students : get all the students.** @return the ResponseEntity with status 200 (OK) and the list of students in body*/@JsonView(Student.Info.class)@RequestMapping(value = "/demostudents",method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE)@Timedpublic List<Student> getAllStudents() {log.debug("REST request to get all Students");List<Student> userStudents = new ArrayList<Student>();Student student = new Student();student.setFirstName("Joe");student.setLastName("Smith");student.setSex(0);student.setGrade(3);userStudents.add(student);return userStudents;}
3.保存并启动微服务。 它看起来应该像这样:
----------------------------------------------------------Application 'extendedDayAPI' is running! Access URLs:Local: http://127.0.0.1:8081External: http://192.168.1.4:8081
----------------------------------------------------------
2016-09-14 11:36:13.927 INFO 13980 --- [ restartedMain] com.wwc.extendedday.ExtendedDayApiApp :
----------------------------------------------------------Config Server: Connected to the JHipster Registry config server!
----------------------------------------------------------
4.再次重新访问http:// localhost:8761 /#/ applications或刷新视图。 请注意我们的微服务如何注册自己。
5.转到浏览器,然后输入http://localhost:8080/yourappapiname/api/demostudents
。 请注意,即使您已登录,也将被禁止。
6.注销localhost:8080
,然后在打开Chrome的情况下重新登录。
然后检查登录呼叫并在“授权”中获取令牌。 它应该以“ Bearer…”开头,然后是一堆编码的东西。 全部选择。
您必须在请求中传递此令牌。 有许多不同的方法可以通过您的代码来执行此操作。 在我们的测试场景中,
- 邮差足以向您显示输出。
- 开放邮递员
- 从上方输入您的API调用
- 在“标题”下,添加“授权”密钥,然后粘贴您获取的令牌。
您应该会看到以下内容:
呜呜! 你完成了! 您已经使用jHipster创建了微服务。
结论
我们已经逐步使用JHipster的可用选项创建微服务来创建微服务体系结构。 我希望您发现此信息对您有所帮助。
在这一点上,我们可以添加所需的尽可能多的不同微服务。 每个都有自己的端口号和功能。 在分布式环境中,当我们对它们进行更改时,会有很多实例可以旋转/关闭。 希望您能看到将我们架构的不同层分离的好处和灵活性。 每一层都不依赖于另一层来运行。
微服务,网关,注册表以及使用不同前端的主题的确开始超出使用JHipster的基本方法。 有关这些主题的更多信息,请查看免费的Keyhole博客和白皮书 。
使用JHipster时,请返回第3部分,其中包括技巧,窍门和陷阱。 祝您有美好的一天并继续保持“嘻哈”。
翻译自: https://www.javacodegeeks.com/2016/10/getting-started-jhipster-part-2.html
jhipster