JHipster入门,第2部分

所以你回来了! 在本系列最后一部分中 ,我们采用了单片路线创建了一个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流流量的整体式应用程序

jhipsterseriespart2-1

登记处

如果尚未复制, 克隆https://github.com/jhipster/jhipster-registry 。 添加到您的项目空间。 继续并启动它。

查找具有@SpringBootApplication批注的Java文件,并将其作为Java应用程序运行。 这适用于下面的每个步骤。

微服务应用

第一件事是创建一个新目录。 随便叫它,然后进入该目录。 现在输入yo jhipster 。 在这里看到那个图案吗?

不过,这次,我们将选择“微服务应用程序”。 回答问题。

这次,只要摇动一下狗的尾巴,就可以使用微服务!

jhipsterseriespart2-2

微服务实战

登记处

如果尚未启动注册表,请继续运行它。 它应该在http:// localhost:8761上运行 。 访问它,并查看它为您提供的基本信息。 然后单击“应用程序”链接。 请注意它是空白。

jhipsterseriespart2-3

网关

现在是时候旋转网关了。 您将在控制台中看到此输出。

----------------------------------------------------------
	Application 'ExtendedDayGateway' is running! Access URLs:
	Local: 		http://127.0.0.1:8080
	External: 	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

jhipsterseriespart2-4

另外,再次在注册表应用程序中查看“应用程序”页面。 http:// localhost:8761 /#/ applications

请注意,我们的网关现在显示。 它是自注册的。

jhipsterseriespart2-5

微服务应用

现在,我们有三分之二的项目正在运行。 我认为,现在该是该情况的绝对动力了。 我们将添加微服务应用程序,它将为任何请求提供“后端”。

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)
    @Timed
    public 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:8081
	External: 	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或刷新视图。 请注意我们的微服务如何注册自己。

jhipsterseriespart2-6

5.转到浏览器,然后输入http://localhost:8080/yourappapiname/api/demostudents 。 请注意,即使您已登录,也将被禁止。

jhipsterseriespart2-7

6.注销localhost:8080 ,然后在打开Chrome的情况下重新登录。

然后检查登录呼叫并在“授权”中获取令牌。 它应该以“ Bearer…”开头,然后是一堆编码的东西。 全部选择。

您必须在请求中传递此令牌。 有许多不同的方法可以通过您的代码来执行此操作。 在我们的测试场景中,

  • 邮差足以向您显示输出。
  • 开放邮递员
  • 从上方输入您的API调用
  • 在“标题”下,添加“授权”密钥,然后粘贴您获取的令牌。

您应该会看到以下内容:

jhipsterseriespart2-8

呜呜! 你完成了! 您已经使用jHipster创建了微服务。

结论

我们已经逐步使用JHipster的可用选项创建微服务来创建微服务体系结构。 我希望您发现此信息对您有所帮助。

在这一点上,我们可以添加任意数量的微服务。 每个端口都有其自己的端口号和功能。 在分布式环境中,当我们对它们进行更改时,会有许多实例可以启动/关闭。 希望您能看到将我们架构的不同层分离的好处和灵活性。 每一层都不依赖于另一层来运行。

微服务,网关,注册表以及使用不同前端的主题的确开始超出使用JHipster的基本方法。 有关这些主题的更多信息,请查看免费的Keyhole博客白皮书

使用JHipster时,请回头看第3部分,其中包括技巧,窍门和陷阱。 祝您有美好的一天并继续保持“嘻哈”。

翻译自: https://www.javacodegeeks.com/2016/10/getting-started-jhipster-part-2.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值