JHipster生成微服务架构的应用栈(二)- 认证微服务示例
本系列文章演示如何用JHipster生成一个微服务架构风格的应用栈。
环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里)
应用栈名称:appstack
认证微服务: uaa
业务微服务:microservice1
网关微服务:gateway
实体名:role
主机IP:192.168.220.120
1 生成认证微服务的工程代码
因为业务微服务和网关微服务都会依赖uaa,所以首先生成uaa的工程代码。
进入appstack/uaa目录,输入命令后回车:
$ cd appstack/uaa/
$ jhipster
命令行输出JHipster启动信息
现在开始问答环节
1.1 Which type of application would you like to create?
选择生成的微服务类型
这是一个单选题,有4个选项,使用上下键切换选项。
这里选择JHipster UAA server
,这是一种基于OAuth认证机制的微服务。
单击回车继续。
1.2 What is the base name of your application?
输入微服务的名称
默认名称是当前目录名uaa
,也可以自己输入名称。
注意:名称只能是大小写字母,数字和下划线的任意组合,不允许任何其它字符。
单击回车继续。
1.3 As you are running in a microservice architecture, on which port would like your server to run? It should be unique to avoid port conflicts.
输入微服务的端口号
默认端口号是9999
,也可以自己输入端口号,注意不要和别的微服务和进程的端口号冲突。
单击回车继续。
1.4 What is your default Java package name?
输入微服务的java包名
根据整个应用栈的目录层级,这里输入包名com.mycompany.appstack
。
注意:包名要符合Java标准规范的要求。
单击回车继续。
1.5 Which service discovery server do you want to use?
选择一个服务发现组件
这是一个单选题,有3个选项,使用上下键切换选项。
根据微服务体系规划,这里选择JHipster Registry
。
单击回车继续。
1.6 Which type of database would you like to use?
选择使用的数据库类型
这是一个单选题,有4个选项,使用上下键切换选项。
可以看到支持的数据库类型很多,这里选择默认选项SQL
。
单击回车继续。
1.7 Which production database would you like to use?
选择生产环境中使用的数据库
这是一个单选题,有5个选项,使用上下键切换选项。
可以看到目前支持5种SQL数据库,这里选择默认选项MySQL
。
单击回车继续。
1.8 Which development database would you like to use?
选择开发环境中使用的数据库
这是一个单选题,有3个选项,使用上下键切换选项。
H2调试起来简单,但为了和生产环境保持一致性,这里选择MySQL
。
单击回车继续。
1.9 Do you want to use the Spring cache abstraction?
是否需要使用Spring Cache?
这是一个单选题,有5个选项,使用上下键切换选项。
根据实际场景需要,可以选择不同缓存组件;这里简单起见,选择No - Warning, when using an SQL database, this will disable the Hibernate 2nd level cache!
。
单击回车继续。
1.10 Would you like to use Maven or Gradle for building the backend?
选择使用Maven还是Gradle来构建微服务
这是一个单选题,有2个选项,使用上下键切换选项。
根据自己的开发环境需要,选择相应的构建工具,这里选择默认选项Maven
。
单击回车继续。
1.11 Which other technologies would you like to use?
选择需要用到的技术组件
这是一个多选题,有4个选项,使用上下键切换选项,使用空格键选中选项,使用a键全选,使用i键取消全选。
根据自己的技术架构规划,选择相应的技术组件,也可以都不选择。
单击回车继续。
1.12 Would you like to enable internationalization support?
是否需要国际化支持?
默认选择是Y
,如果不需要,输入n
;这里选择默认选项Y
。
单击回车继续。
1.13 Please choose the native language of the application
选择国际化支持中的母语
这是一个单选题,有37个选项,使用上下键切换选项。
注意:这个问题和上一个问题(1.12)的选择有关联性,上一个问题如果选择n
,这个问题不会出现。
单击回车继续。
1.14 Please choose additional languages to install
选择国际化支持中的其它语言
这是一个多选题,有37个选项,使用上下键切换选项,使用空格键选中选项,使用a键全选,使用i键取消全选。
根据自己的业务规划,选择相应的语言,也可以都不选择。
单击回车继续。
1.15 Besides JUnit and Jest, which testing frameworks would you like to use?
选择单元测试工具
这是一个多选题,有2个选项,使用上下键切换选项,使用空格键选中选项,使用a键全选,使用i键取消全选。
根据自己的技术架构规划,选择相应的技术组件,也可以都不选择。
单击回车继续。
1.16 Would you like to install other generators from the JHipster Marketplace?
是否需要从JHipster市场中安装其它的开发工具?
默认选择是N
,如果需要启用,输入y
;这里选择默认选项N
。
单击回车继续。
问答结束,开始生成工程代码
这个过程,根据电脑性能和网速的不同,通常需要1-3分钟。
至此,生成认证微服务工程代码成功完成。可以在appstack/uaa目录下查看所有生成的文件。
2 认证微服务的数据库配置
2.1 启动一个数据库容器
在命令行,任意目录下,启动一个mysql容器;如果本地没有mysql:5的镜像,容器启动时会自动去docker store下载镜像。
$ docker container run --name uaa-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 32900:3306 mysql:5
2.2 在数据库中创建schema
通过客户端连接上刚启动的数据库容器,添加一个名为uaa
的schema。微服务启动时会自动在这个schema里面创建数据表。
2.3 修改微服务的数据库配置
spring.datasource.url中的端口号32900
,与步骤2.1中-p参数指定的值保持一致。
spring.datasource.url中的schema名称uaa
,与步骤2.2中添加的schema名称保持一致。
spring.datasource.password的值my-secret-pw
,与步骤2.1中MYSQL_ROOT_PASSWORD
参数指定的值保持一致。
$ cd uaa/
$ vi src/main/resources/config/application-dev.yml
# 修改数据库连接相关配置
spring:
datasource:
url: jdbc:mysql://localhost:32900/uaa?useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password: my-secret-pw
3 认证微服务的构建和启动
3.1 构建
进入uaa目录,输入命令后回车:
$ cd uaa/
$ mvn -Pdev package
如果一切正常,命令行会输出构建成功信息:
3.2 启动
进入uaa目录,输入命令后回车:
$ nohup ./target/uaa-0.0.1-SNAPSHOT.war &
通过tail命令,查看启动日志:
$ tail -f nohup.out
如果一切正常,日志会输出启动成功信息:
3.3 注册到JHipster Registry
启动完成后,可以通过浏览器访问http://192.168.220.120:8761
,登录名和密码默认都是admin
:
可以看到在Instances Registered区域,uaa已经注册。
系列文章
JHipster生成微服务架构的应用栈(一)- 准备工作
JHipster生成微服务架构的应用栈(二)- 认证微服务示例
JHipster生成微服务架构的应用栈(三)- 业务微服务示例
JHipster生成微服务架构的应用栈(四)- 网关微服务示例
JHipster生成微服务架构的应用栈(五)- 容器编排示例
你现在的气质里,藏着你走过的路,读过的书,爱过的人。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
ITIL 事件管理和问题管理的区别
在没有学ITIL的时候,很多人分不清事件管理和问题管理的区别, 在沟通了专家后,总结经验如下: 模化的企业都具备信息中心部门,信息中心的职责是服务于业务部门,保障企业网络的正常运转,那联结信息中心和业务部门的纽带是什么,如何提升信息中心的IT价值正是ITIL所关注的焦点。 ITIL定义的纽带也就是我们所谓的服务台,服务台一般都具有三个特点:作为信息部门和业务部门的单一连接点,跟踪用户提出的IT请求到解决为止;提供支持服务,主要包括记录所有IT请求,设定优先级,合理安排IT部门处理请求日程,同时向用户提供服务关注、反馈记录跟踪等功能;服务台可以显著降低IT管理成本,将企业的IT系统应用及管理流程化、规范化,将大大节省企业的人力、物力等成本。成熟的服务台具备技术好、响应快、乐于提供帮助的特点,成为企业IT管理系统不可或缺的一部门。 当企业IT系统出现紧急故障时,需要信息中心第一时候解决问题,恢复系统的正常,这时候ITIL的事件管理功能就成为解决问题的利器了。 事件管理的宗旨是最短时候恢复故障,从而将故障的损失降到最低,在此前提下尽可能满足服务的要求。因此,事件管理突出的就是恢复企业的业务,...
-
下一篇
AliOS Things 技术架构
这篇文章,来源于GitHub : https://github.com/alibaba/AliOS-Things/wiki/AliOS-Things-Technical-Overview.zh零妖是勤劳的搬运工。 技术架构总览 AliOS Things是一款由阿里巴巴开发的轻量级物联网操作系统。它在2017年杭州云栖大会中问世,并在同年10月20号于github:https://github.com/alibaba/AliOS-Things开源。 架构概述 AliOS Things的架构可以适用于分层架构和组件化架构。从底部到顶部,AliOS Things包括: 板级支持包(BSP):主要由SoC供应商开发和维护 硬件抽象层(HAL):比如WiFi和UART 内核:包括Rhino实时操作系统内核、Yloop, VFS, KV 存储 协议栈:包
相关文章
文章评论
共有0条评论来说两句吧...