快速搭建 SpringCloud 微服务开发环境的脚手架

发布时间:2024-12-13  


一、微服务的简介

微服务是可以独立部署、水平扩展、独立访问的服务单元。Java 中常见最小的微服务单元就是基于 SpringBoot 框架的一个独立项目。一个微服务只做一件事(单一职责),多个微服务组合才能称之为一个完整的项目或产品。那么多个微服务的就需要来管理,而 SpringCloud 就是统筹这些微服务的大管家。它是一系列有序框架的集合,简单易懂、易部署易维护的分布式系统开发工具包。

今天介绍的开源项目就是基于 SpringCloud2.1 的脚手架,让项目开发快速进入业务开发,而不需过多时间花费在架构搭建上,下面就让我们一起来看看这个项目的使用吧。

二、项目结构

这里以一个网关(gateway-admin)微服务来说明。

项目目录结构如下图:

目录说明:
  1. db:项目初始化数据库脚本。
  2. docker:Docker 配置文件目录,将微服务打包为 docker 镜像(image)。
  3. config:项目配置信息目录,包括数据库配置,消息转化配置等。
  4. dao:数据库操作目录,主要对底层数据进行增删查改。
  5. entity:项目实体类目录。
  6. events:事件处理目录。
  7. exception:异常处理目录,通过面向切面处理全局异常。
  8. rest:微服务控制器目录,也就是对外提供的接口。
  9. service:微服务业务层目录。
  10. GatewayAdminApplication:微服务 SpringBoot 入口类。
  11. resources:项目配置文件目录。
  12. test:项目单元测试目录。
  13. pom.xml:maven 项目对象模型文件。

三、实战操作

3.1 前提

  • 确保本地安装 Git、Java8、Maven。
  • 懂一些 SpringMVC 的知识,因为 SpringBoot 是基于 SpringMVC 演化而来的。
  • 懂一些应用容器引擎 Docker、Docker-compose 的知识。

3.2 微服务架构说明

一个完整的项目,微服务架构一般包括下面这些服务:

  • 注册中心(常用的框架 Nacos、Eureka)
  • 统一网关(常用的框架 Gateway、Zuul)
  • 认证中心(常用技术实现方案 Jwt、OAuth)
  • 分布式事务(常用的框架 Txlcn、Seata)
  • 文件服务
  • 业务服务

3.3 运行项目

下面介绍了三种运行的方式:

第一种:一键运行

Linux 和 Mac 系统下可在项目根目录下执行 ./install.sh快速搭建开发环境。

第二种:本地环境运行

不推荐此方法,但还是简单介绍下。

  1. 基础环境安装:mysql、redis,rabbitmq

  2. 环境运行:

    git clone https://github.com/zhoutaoo/SpringCloud.git #克隆项目 
  3. 安装认证公共包到本地 maven 仓库,执行如下命令:

    cd common
    mvn clean install #安装认证公共包到本地 maven 仓库 
  4. 安装注册中心 Nacos

  • 下载 Nacos[2]
  • 执行如下命令:
    unzip nacos-server-0.9.0.zip  OR tar -xvf nacos-server-0.9.0.tar.gz cd nacos/bin
    bash startup.sh -m standalone # Linux 启动命令 cmd startup.cmd # Windows 启动命令 
  • 运行网关服务、认证服务、业务服务等

  • 这里以网关服务为例:执行 GatewayAdminApplication.java

    注意:认证服务(auth)、网关服务(gateway)、组织管理服务(sysadmin)需要执行数据库初始化脚本。

    可通过 swager 接口:http://localhost:8445/swagger-ui.html 测试是否搭建成功,如果能正常访问表示服务启动成功。

    说明:

    • application.yml 文件主要配置 rabbitmq,redis, mysql 的连接信息。

      spring:
        rabbitmq:
          host: ${RABBIT_MQ_HOST:localhost} port: ${RABBIT_MQ_PORT:5672} username: ${RABBIT_MQ_USERNAME:guest} password: ${RABBIT_MQ_PASSWORD:guest} redis:
          host: ${REDIS_HOST:localhost} port: ${REDIS_PORT:6379} #password: ${REDIS_PASSWORD:} lettuce:
            pool:
              max-active: 300
      
        datasource:
          driver-class-name: com.mysql.jdbc.Driver
          url: jdbc:${DATASOURCE_DBTYPE:mysql}://${DATASOURCE_HOST:localhost}:${DATASOURCE_PORT:3306}/sc_gateway?characterEncoding=UTF-8&useUnicode=true&useSSL=false username: ${DATASOURCE_USERNAME:root} password: ${DATASOURCE_PASSWORD:root123} 
    • bootstrap.yml 文件主要配置服务基本信息(端口,服务名称),注册中心地址等。

      server:
        port: ${SERVER_PORT:8445} spring:
        application:
          name: gateway-admin
        cloud:
          nacos:
            discovery:
              server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848} config:
              server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848} file-extension: yml
          sentinel:
            transport:
              dashboard: ${SENTINEL_DASHBOARD_HOST:localhost}:${SENTINEL_DASHBOARD_PORT:8021} 

    第三种:Docker 环境运行

    1. 基础环境安装

    文章来源于:21IC    原文链接
    本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

    相关文章

      些生物遇到掠食者需要“变得胶状”时非常有用。 这个发现对于科学家来说是很有意义的,因为海参体内易变胶原组织可能是仿生材料的一种模板,它可用于设计组织工程学的灵活脚手架、皮肤抗衰老的美容除皱、可植......
      的高空落下。据一位不愿透露姓名的工人说,在另一起事故中,一块20英寸长的碳钢从起重机上掉下来,砸到了一名工人。 同时据一位知情人士透露,一名六十多岁的男子从A型架梯子上摔下来,摔断了双腿。其他人描述了至少两起工人从标记严重的脚手架......
      模式动物一般只能做一种药物试验,而一个器官芯片上多则有几百上千个独立测试的单元,可以进行几种或几十种药物的多浓度试验;另外,器官芯片由人体细胞组织构成,和人体对药物及病原体的反应高度一致。” 让细胞沿着“脚手架”生长 如何......
      快速搭建 SpringCloud 微服务开发环境的脚手架; 一、微服务的简介 微服务是可以独立部署、水平扩展、独立......
      90后小伙每天搬砖5000块:一身腱子肉走红;对于大多数建筑工人而言,午饭是最好的休息时间,但对于23岁的工人石神伟而言,这是利用脚手架健身的时间。90后农民工石神伟,这个......
      力企业要严格遵循“先勘察、后设计、再施工”的基本建设规律,严格落实施工图纸设计文件和施工方案,严禁任意压缩合理工期和造价;要强化隧道、硐室、起重机械、深基坑、脚手架、高支模等危险性较大的分部分项工程安全管理,坚决......
      对电动汽车行业的锂电池焊缝和燃料电池焊缝进行质量检测。在钢结构建筑行业,完美的焊缝对于结构完整性和安全考虑至关重要,VIRO WSI 的自动焊缝检测用于重型货架、脚手架和模板或预制建筑的钢梁。在工程领域,VIRO WSI可以......
      手持折射仪怎么用_手持折射仪使用方法_手持折射仪应用;  折射仪又称折光仪,是利用光线测试液体浓度的仪器,用来测定折射率、双折率、光性,折射率是物质的重要物理常数之一。产品有手持式折光仪、糖量......
      均为第一幅图提供辅助说明,更多细节需查看相关技术手册。比方MCO输出功能怎么用,SWO怎么操作还需进一步查看相应技术文档。 ......
      测器位于地下750米的专用实验室内。图片中是尚未灌水的水池和中央脚手架。在球体内部放置了一个直径为34.5米的丙烯酸球体,里面装满了液体闪烁体。在安装时,白色的盖子能够保护敏感组件。 JUNO被精......

    我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

    利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

    充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

    我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

    我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

    凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

    我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>