jhipster_JHipster入门,第2部分

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流流量的整体式应用程序

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: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

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

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

jhipster

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HH SaaS电商系统的虚拟资金账户(钱包余额)设计

文章目录方案一&#xff0c;将资金账户抽象出来虚拟资金账户余额流水记录实体方案二&#xff0c;用户表直接保存资金余额余额流水记录实体方案一&#xff0c;将资金账户抽象出来 虚拟资金账户 P.S. 如果机构代码和消费代码有区分类型&#xff0c;那么资金账户表中就不必保存“…

jhipster_jHipster入门,第1部分

jhipster因此&#xff0c;您想保持技术的领先地位&#xff0c;但对所有活动部件感到不知所措。 你真幸运&#xff01; 这就是jHipster发光的地方。 如果您喜欢Ruby on Rails或Grails的方法来快速启动和运行应用程序&#xff0c;那么这可能是适合您的选择。 jHipster旨在使设置…

java基准测试_微基准测试进入Java 9

java基准测试我已经几个月没有在这里写文章了&#xff0c;这种例外还会继续。 我计划在明年三月左右恢复写作。 本文末尾的说明。 等待&#xff01; 不完全是最后&#xff0c;因为您可以向下滚动。 它在文章结尾处。 继续阅读&#xff01; 三年前&#xff0c;我在写有关Java编…

python周天为一周的开始_从两个月减肥四十斤说起,不懈坚持,才是一个人最核心的竞争力。...

大学毕业了十年&#xff0c;我的身材失控了十年。我对我的胖身材已经习以为常了十年了&#xff0c;我从来没想过改变&#xff0c;因为我也没有毅力改变。有一句话说的&#xff0c;人越胖&#xff0c;就越懒。因为我胖&#xff0c;所以我不跑步&#xff0c;我也不爱外出。只要你…

java实现线程的方式_java多线程实现的四种方式

java多线程实现的四种方式1、继承Thread类&#xff0c;重写run方法(其实Thread类本身也实现了Runnable接口)2、实现Runnable接口&#xff0c;重写run方法3、实现Callable接口&#xff0c;重写call方法(有返回值)4、使用线程池(有返回值)1、继承Thread类&#xff0c;重写run方法…

本地运行flowable_在CockroachDB上运行Flowable

本地运行flowable什么是CockroachDB&#xff1f; CockroachDB是一个我一直关注了很长时间的项目。 这是一个开放源代码的Apache 2许可数据库&#xff08; Github链接 &#xff09;&#xff0c;该数据库在很大程度上汲取了Google Spanner白皮书的启发 。 它的核心是可水平扩展的…

win10禁用驱动程序强制签名_图文细说 win10系统未检测到第三个监视器的途径 -win10使用教程...

据统计调查&#xff0c;好多朋友都在为图文细说 win10系统未检测到第三个监视器的途径 的问题而烦恼&#xff0c;小编决定将解决的办法分享给大家。对于电脑菜鸟而言看到图文细说 win10系统未检测到第三个监视器的途径 是很无奈的&#xff0c;试着独自一个人解决图文细说 win10…

安装openstack_午餐前如何安装OpenStack Cloud

安装openstack图1. QuickStart的内部工作原理 云安装程序 如果我告诉您可以在必须停下来吃午餐之前进行OpenStack Cloud环境设置&#xff0c;该怎么办&#xff1f; 您会感到惊讶吗&#xff1f; 你今天可以做吗&#xff1f; 在大多数情况下&#xff0c;我敢打赌您的答案是不…

5e怎么绑定一键跳投_怎么开通淘宝亲情账号 淘宝亲情账号申请步骤【详解】

据官方消息&#xff0c;淘宝将在2月1日上线“亲情账号”功能。那么 淘宝亲情账号怎么开通?在哪申请? 下面为大家介绍下&#xff0c;一起来看看。亲情账号用户在淘宝账号中可以创建“父亲”或“母亲”角色关系&#xff0c;对父母发出注册邀请或直接绑定他们的账号。完成亲情关…

windows功能_你的Windows杀毒软件有这个功能吗?

安全软件首推-火绒&#xff0c;良心之作。比起360安全卫士、腾讯电脑管家&#xff0c;它无广告&#xff0c;无捆绑&#xff0c;无劫持&#xff0c;无弹窗&#xff0c;还免费。我认为最喜人最贴心的功能属它的‘弹窗拦截’了&#xff0c;可以拦截程序推送烦人的弹窗。五大浓缩亮…

base64 二进制流java_读取和base64编码二进制文件

我m trying to read a binary file from the filesystem and then base64 encode it in JavaScript. I使用FileReader API读取数据并找到base64编码器here .我的代码似乎接近工作&#xff0c;问题是生成的base64数据是错误的 . 这是我到目前为止所得到的&#xff1a;function s…

drools dmn_使用Drools的DMN运行时示例

drools dmn正如去年宣布的那样 &#xff0c;Drools 7.0将在合规级别3对DMN模型提供全面的运行时支持。 在撰写本文时&#xff0c;运行时实现已完成&#xff0c;并且该团队现在正在努力进行改进&#xff0c;以进行错误修复和用户友好。 不幸的是&#xff0c;对于7.0版本&#…

笔记本电脑关机后指示灯还亮_汽车仪表常见指示符号之清洗液指示灯,灯亮了怎么办?...

清洗液指示灯就是玻璃水指示灯&#xff0c;用来显示玻璃水的储存量的&#xff0c;平时为熄灭状态&#xff0c;当玻璃水不足时就会点亮提醒驾驶员该添加了。添加后清洗液指示灯还亮的说明出现故障&#xff0c;检查玻璃水电机&#xff0c;相关线路保险丝等&#xff0c;行车中此灯…

xxx钻石商城功能开发需求

文章目录1. 买家小程序端1.1. 首页1.2. 店铺1.2.1. 搜索门店1.2.2. 门店信息1.2.3. 预约试戴1.3. 购物袋1.3.1. 加入购物车1.3.2. 编辑购物车1.4. 个人中心1.4.1. 个人信息1.4.2. 实名认证1.4.3. 我的等级1.4.4. 查看收益1.4.4.1 门店收益1.4.4.1.1查看结算单1.4.4.2 分享收益1…

drools6.5_Drools 6.5.0.Final可用

drools6.5最新和最出色的Drools 6.5.0.Final版本现已可供下载。 这是我们以前的版本的增量版本&#xff0c;重点是一些重要的改进以完善6.x系列。 您可以在此处找到更多详细信息&#xff0c;下载和文档&#xff1a; Drools网站 资料下载 文献资料 发行说明 请阅读下面的一…

c++ vector 一部分_C++ vector 使用注意事项

1、初始化c 11以后新增了大括号{}的初始化方式&#xff0c;需要注意与()的区别,如&#xff1a;std::vector<int> vecTest1(5); //初始化5个元素&#xff0c;每个都是0std::vector<int> vecTest2{ 5 }; //初始化1个元素&#xff0c;值是52、添加元素&#xff1a;pus…

react打包后图片丢失_React中型项目的优化实践

本文可能涉及的内容--项目介绍整个项目大概有60个页面&#xff0c;用到的组件大概150&#xff0c;package里面的依赖大概有70个&#xff0c;应该勉强算得上是一个中型的React的项目了。下面给大家看看我们现在build一次项目的结果--打包时间约150s&#xff0c;打包完之后的资源…

cuba.platform_CUBA Platform 6.3的新增功能

cuba.platform我们很自豪地宣布新版本的CUBA平台和Studio全面上市&#xff01; 也许这是有史以来功能最丰富的平台版本之一–在各个级别上都有重要的变化&#xff1a;体系结构&#xff0c;可扩展性&#xff0c;API可用性和性能。 本文介绍了该平台的主要增强功能。 发行说明中…