微服务的脚手架Jhipster使用(一) - 陆陆起飞啦 - 博客园

标签: | 发表时间:2019-12-08 09:58 | 作者:
出处:https://www.cnblogs.com

随着微服务的普及以及docker容器的广泛应用,有传统的soa服务衍生出微服务的概念,微服务强调的是服务的独立性,屏蔽底层物理平台的差异,此时你会发现微服务跟容器技术完美契合。 在此基础上衍生出的云原生以及DevOps的概念,废话不多说介绍一个非常牛叉的springCloud脚手架- -jhipster。

  

  •     安装  
  1. 安装Java 8 from  the Oracle website.
  2. 安装Node.js from  the Node.js website (请安装 64-bit version)
  3. 安装npm包:  npm install -g npm
  4. 如果你想使用jhipster应用市场, 请安装 Yeoman:  npm install -g yo
  5. 最后安装JHipster:  npm install -g generator-jhipster
  •          生成项目
  1. 选择一个空的文件夹打开cmd:jhipster  
  2. 根据一步步step提示选择构建自己的服务项目
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <strong>windows下:</strong><br>以下demo选择微服务应用。实际中根据自己需求生产项目。
    1 : Which *type* of application would you like to create? (Use arrow keys)
        Monolithic application (recommended  for  simple projects)   //简单项目
        Microservice application  // 微服务应用
        Microservice gateway  // 微服务网关
        JHipster UAA server ( for  microservice OAuth2 authentication)  // 微服务认证
    2  :What is the base name of your application? (huhuawei)
         输入服务名称
    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. ( 8081 )
         设置服务的端口号
    4 :What is your  default  Java  package  name? (com.mycompany.myapp)
         设置包名
    5 :Which service discovery server  do  you want to use? (Use arrow keys)
          JHipster Registry (uses Eureka)
          Consul
          No service discovery
         选择注册中心。一般选择Registry比较多
    6 :Which *type* of authentication would you like to use? (Use arrow keys)
          JWT authentication (stateless, with a token)   // jwt
          OAuth  2.0  / OIDC Authentication (stateful, works with Keycloak and    
          Okta) //Oauth2 OIDC 认证服务
          Authentication with JHipster UAA server (the server must be generated 
          separately)  // Oauth2+jwt Uaa认证服务
          选择授权中心
    7 : Which *type* of database would you like to use?
           SQL (H2, MySQL, MariaDB, PostgreSQL, Oracle, MSSQL)
           MongoDB
           Couchbase
           No database
           Cassandra
           选择数据库支持Nosql跟常见RDMB数据库
    8 :? Which *production* database would you like to use? (Use arrow keys)
           MySQL
           MariaDB
           PostgreSQL
           Oracle
           Microsoft SQL Server
           选择数据库,这边会出现两次第一次是production 第二次是devlopment
    9 :Do you want to use the Spring cache abstraction?
          根据需求选择缓存
    10 :Do you want to use Hibernate 2nd level cache? (Y/n)
          是否支持二级缓存
    11 : Would you like to use Maven or Gradle  for  building the backend? (Use
           arrow keys)
           Maven
           Gradle
    12 :Which other technologies would you like to use?
            安装一些其他的组件。如ES,KAFKA之类的
    13 :Would you like to enable internationalization support? (Y/n)
            支持国际化?
    14 : Please choose the  native  language of the application (Use arrow keys)
             English
             Estonian
             Farsi
             French
             Galician
             ........
             选择本地支持的语言包含中文
    15 :Please choose additional languages to install
            可以额外安装其他语言
    16 :Besides JUnit and Jest, which testing frameworks would you like to use?
              Gatling
              Cucumber   
            选择测试框架,针对微服务http接口测试,生成测试报告
    17 :Would you like to install other generators from the JHipster Marketplace?
            从jhipster市场中选择组件安装
            
  3. 如果你觉得安装这些环境太麻烦,你又熟悉docker的基本命令,那建议使用docker去生成项目;
    选择linux服务器,安装docker;
    yum install -y yum-utils device-mapper-persistent-data lvm2
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    yum list docker-ce --showduplicates | sort -r
    sudo yum install -y docker-ce
    sudo systemctl start docker
    sudo systemctl enable docker
    
    拉取jhipster官方镜像
    docker pull jhipster/jhipster:master
    
    启动jhipster镜像,选择一个空文件/jhipster夹挂载到容器中
    docker container run --name jhipster
    -v  /jhipster:/home/jhipster/app 
    -v  ~/.m2:/home/jhipster/.m2 
    -p 8080:8080 
    -p 9000:9000 
    -p 3001:3001 
    -d  -t jhipster/jhipster
    
    进入容器中
    docker container exec -it --user root jhipster bash
    然后就可以生成项目了。与windows上操作无差别

     

  •          项目的组成简单介绍

  Gateway: springcloud Zuul Proxy  进行动态路由微服务

  Registry:主要封装了Eureka以及配置中心Config Server。

        Jhipster Console:封装了Elk监控 以及 sleuth zipkin 等分布式链路监控组件。

        Jhipster Uaa:  采用UAA用户登录认证 OAUTH2集中式认证,默认不使用的话则是JWT无状态认证

      

  •          总结

          上述仅仅是大体的架构,Jhipster内部使用了很多插件来进行敏捷开发,包括实体类JDL快速生成从数据库到Controller代码,开发效率非常之高。适合中小型企业采用,而且Jhipster支持DockerFile与Compose                    文件生成,可以帮助我们快速容器化服务部署。

相关 [微服务 脚手架 jhipster] 推荐:

微服务的脚手架Jhipster使用(一) - 陆陆起飞啦 - 博客园

- -
随着微服务的普及以及docker容器的广泛应用,有传统的soa服务衍生出微服务的概念,微服务强调的是服务的独立性,屏蔽底层物理平台的差异,此时你会发现微服务跟容器技术完美契合. 在此基础上衍生出的云原生以及DevOps的概念,废话不多说介绍一个非常牛叉的springCloud脚手架- -jhipster.

JHipster生成微服务架构的应用栈(一)- 准备工作 - 羽客 - 博客园

- -
本系列文章演示如何用JHipster生成一个微服务架构风格的应用栈. 环境需求:安装好JHipster开发环境的CentOS 7.4(. 业务微服务:microservice1. 主机IP:192.168.220.120. 本系列文章会说明如何生成uaa(即图中的JHipster UAA),microservice1,gateway这3个微服务.

Doing microservices with JHipster

- -
JHipster会问您的第一个问题是您要生成的应用程序类型. 您可以在两种架构样式之间进行选择:. “单体式”架构使用一个单一的,千篇一律的应用程序,其中包含前端代码和后端Spring Boot代码. “微服务”架构将前端和后端分开,因此您的应用程序更易于扩展和解决基础架构问题. “单体式”应用程序更易于操作,因此,如果您没有任何特定要求,则建议使用此选项,并且将其作为默认选项.

初识微服务

- - ITeye博客
微服务架构越来越火,有必要学习一下. 软件开发过程中碰到什么问题. 一个简单的应用会随着时间推移逐渐变大. 在每次的sprint中,开发团队都会面对新“故事”,然后开发许多新代码. 几年后,这个小而简单的应用会变成了一个巨大的怪物. 一旦你的应用变成一个又大又复杂的怪物,那开发团队肯定很痛苦. 敏捷开发和部署举步维艰,其中最主要问题就是这个应用太复杂,以至于任何单个开发者都不可能搞懂它.

谈微服务架构

- - 人月神话的BLOG
其实在前面很多文章谈到SOA,特别是系统内的SOA和组件化的时候已经很多内容和微服务架构思想是相同的,对于微服务架构,既然出现了这个新名称,那就再谈下微服务架构本身的一些特点和特性. 从这个图可以看到微服务架构的第一个重点,即业务系统本身的组件化和服务化,原来开发一个业务系统本身虽然分了组件和模块,但是本质还是紧耦合的,这关键的一个判断标准就是如果要将原有的业务系统按照模块分开部署到不同的进程里面并完成一个完整业务系统是不可能实现的.

微服务性能模式

- - 互联网 - ITeye博客
前言:基于微服务系统越来越普遍. 下面我们就来看看五种常见的特定微服务性能的挑战,以及如何应解他们. 背景:在IT界微服务架构为基础的系统越来越多, 每一个应用系统都集成了不同的组件和服务,几乎所有的特定业务应用程序都需要集成一个或更多的应用服务. 但是一个综合性系统集成不同的服务这无疑是一个巨大的挑战.

微服务与架构师

- - 乱象,印迹
因为工作的关系,最近面试了很多软件架构师,遗憾的是真正能录用的很少. 很多候选人有多年的工作经验,常见的框架也玩得很溜. 然而最擅长的是“用既定的技术方案去解决特定的问题”,如果遇到的问题没有严格对应的现成框架,就比较吃力. 这样的技能水平或许适合某些行业,但很遗憾不符合我们的要求. 软件架构师到底应该做什么,又为什么这么难做好,这都是近来的热门问题,我也一直在和朋友们讨论.

从Excel到微服务

- - 乱象,印迹
Excel很老,Excel很土,Excel一点也不sexy;微服务新,微服务很潮门,微服务很高大上. 那么,Excel和微服务有什么关系. 上个月看了篇文章,The Unbunlding of Excel. 作者认为,对于初创公司(尤其是非“纯IT”初创公司)来说,Excel几乎包办各种工作. 想做轻量级的CRM,可用Excel.

微服务框架Spring Cloud介绍 Part2: Spring Cloud与微服务

- - skaka的博客
之前介绍过 微服务的概念与Finagle框架, 这个系列介绍Spring Cloud.. Spring Cloud还是一个相对较新的框架, 今年(2016)才推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比我之前用过的Dubbo和Finagle, Spring Cloud提供的功能最齐全..

面向服务与微服务架构

- - CSDN博客推荐文章
最近阅读了 Martin Fowler 和 James Lewis 合著的一篇文章  Microservices, 文中主要描述和探讨了最近流行起来的一种服务架构模式——微服务,和我最近几年工作的实践比较相关感觉深受启发. 本文吸收了部分原文观点,结合自身实践经验来探讨下服务架构模式的演化. 面向服务架构 SOA 思想概念的提出已不是什么新鲜事,大概在10年前就有不少相关书籍介绍过.