SpringCloud 脚手架

Posted 疯狂创客圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud 脚手架相关的知识,希望对你有一定的参考价值。

文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源:


价值连城:2021春招月薪过5万 面试题 总系列

搞定下面这些面试题,2021春招月薪过5万(猛!) 阿里、京东、美团、头条.... 随意挑、横着走!!!
Java基础
1: JVM面试题(史上最强、持续更新、吐血推荐) https://www.cnblogs.com/crazymakercircle/p/14365820.html
2:Java基础面试题(史上最全、持续更新、吐血推荐) https://www.cnblogs.com/crazymakercircle/p/14366081.html
3:死锁面试题(史上最强、持续更新) [https://www.cnblogs.com/crazymakercircle/p/14323919.html]
4:设计模式面试题 (史上最全、持续更新、吐血推荐) https://www.cnblogs.com/crazymakercircle/p/14367101.html
5:架构设计面试题 (史上最全、持续更新、吐血推荐) https://www.cnblogs.com/crazymakercircle/p/14367907.html
还有 10 几篇价值连城 的面试题 具体..... 请参见【 疯狂创客圈 高并发 总目录

万字长文: 疯狂创客圈 springCloud 高并发系列

springCloud 高质量 博文
nacos 实战(史上最全) sentinel (史上最全+入门教程)
springcloud + webflux 高并发实战 Webflux(史上最全)
SpringCloud gateway (史上最全)
还有 10 几篇 万字长文 的高质量 博文 具体..... 请参见【 疯狂创客圈 高并发 总目录

推荐: 地表最强 开发环境 系列

工欲善其事 必先利其器
地表最强 开发环境: vagrant+java+springcloud+redis+zookeeper镜像下载(&制作详解)
地表最强 热部署:java SpringBoot SpringCloud 热部署 热加载 热调试
地表最强 发请求工具(再见吧, PostMan ):IDEA HTTP Client(史上最全)
地表最强 PPT 小工具: 屌炸天,像写代码一样写PPT
无编程不创客,无编程不创客,一大波编程高手正在疯狂创客圈交流、学习中! 找组织,GO

推荐: springCloud 微服务 系列

推荐阅读
nacos 实战(史上最全)
sentinel (史上最全+入门教程)
springcloud + webflux 高并发实战
Webflux(史上最全)
SpringCloud gateway (史上最全)
无编程不创客,无编程不创客,一大波编程高手正在疯狂创客圈交流、学习中! 找组织,GO

1 Spring Cloud 、Spring Boot版本选项

Spring Cloud是基于Spring Boot构建的,其版本也是有对应关系的,在构建项目时,注意版本之间的对应关系,版本对不上会有问题。

Spring Cloud Spring Boot
Camden 1.4.x
Dalston 1.5.x
Edgware 1.5.x
Finchley 2.0.x

Finchley依赖2.0.x版本的Spring Boot,而2.0.x版本的Spring Boot依赖Spring Framework 5。

   <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.0.8.RELEASE</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

2 {Crazy-SpringCloud 微服务开发脚手架} 功能介绍

在这里插入图片描述

本脚手架,侧重于开发,而不是侧重于 生产环境的监控。凡是与开发有关的部分,后续会逐步的增加和完善。

4. 模块规范说明

crazymaker-server        --  父项目,公共依赖
│  ├─cloud-center        --  基础服务中心
│  │  ├─cloud-eureka   --  注册中心
│  │  ├─cloud-config    --  配置中心
│  │  ├─cloud-zuul        --  网关服务
│  │  ├─cloud-zipkin      -- 监控中心
│  ├─crazymaker-base   -- 公共依赖
│  │  ├─base-common   -- 普通的公共依赖,如utils 通用方法
│  │  ├─base-runtime    --  运行时公共依赖,用运行时的 一些通用Bean的启动
│  ├─crazymaker-user   -- 用户微服务
│  │  ├─user-api            -- 用户DTO、Constants 等
│  │  ├─user-client        --  用户服务的 Feign 远程调用模块
│  │  ├─user-provider   -- 用户服务核心实现,包含controller层、service层、dao层的代码实现
│  ├─crazymaker-seckill  --秒杀微服务
│  │  ├─seckill-api            -- 秒杀 DTO、Constants 等
│  │  ├─seckill-client        -- 秒杀服务的 Feign 远程调用模块
│  │  ├─seckill-provider   --秒杀服务核心实现,包含controller层、service层、dao层的代码实现

5.部署流程

  • 操作系统:

建议使用 centos 或者其他 linux 。 如果个人学习在windows环境,强烈建议使用 虚拟机 。

  • 中间件:

依赖于Redis、Zookeeper、RabbitMQ,启动服务前请安装和启动好 mysql 、Redis、Zookeeper、RabbitMQ。后面三个软件的安装,请参考以下教程和视屏:

Redis: Linux Redis 安装(网盘中带离线工具、实战视频
Zookeeper: Linux Zookeeper 安装(带视频)
RabbitMQ: Linux RabbitMQ 安装(网盘中带离线工具、实战视频

  • 数据库

可以是 Mysql 、oracle 或者其他 JPA 支持的数据库。 微服务中配置了自动建表。 所以,没有提供专门的sql脚本。 例如:

spring:
  application:
    name: user-provider
  jpa:  #配置自动建表:updata:没有表新建,有表更新操作,控制台显示建表语句
    hibernate:
      ddl-auto: update
  • 部署脚本

提供了linux系统的启动脚本 start.sh, 需要适当的调整一些参数。 具体的部署,请参见 {疯狂创客圈} 脚手架部署视频

6.端口配置

组件 端口
Redis 6379 Linux Redis 安装(带视频)
zookeeper 2181 Linux Zookeeper 安装, 带视频
myql 3306
cloud-eureka 7777 Eureka 入门,带视频
cloud-config 7788
cloud-zuul 7799
crazymaker-user 7702
crazymaker-seckill 7701

7.环境变量

通过环境变量的使用,使得各种服务器的主机切换,多了一层灵活性。而且,可以做到不用明文编码一些密码之类的敏感信息,多了一层安全性。

配置文件中,会涉及到以下环境变量:

export DB_HOST=192.168.233.128
export REDIS_HOST=192.168.233.128
export EUREKA_ZONE_HOST=192.168.233.128
export RABBITMQ_HOST=192.168.233.128
export ZOOKEEPER_HOSTS=192.168.233.128

这些环境变量,包含 Eureka、Redis、RabbitMq 等服务器的IP地址。如果在bootstrap.yml中要对 Eureka 进行配置,可以使用环境变量 EUREKA_ZONE_HOST ,具体如下:

eureka:
  client:
    serviceUrl:
      defaultZone: http://${EUREKA_ZONE_HOST:localhost}:7777/eureka/

上面的写法,通过${EUREKA_ZONE_HOST} 表达式去获取Eureka的IP地址。并且,环境变量后面跟着一个冒号和一个默认值,表示如果当前系统环境变量中 EUREKA_ZONE_HOST 为空时,就会使用默认值 localhost 来填充了。
总之,通过环境变量的使用,使得各种服务器的主机切换,多了一层灵活性。而且,可以做到不用明文编码一些密码之类的敏感信息,多了一层安全性。


最后,介绍一下疯狂创客圈:疯狂创客圈,一个Java 高并发研习社群博客园 总入口

疯狂创客圈,倾力推出:面试必备 + 面试必备 + 面试必备 的基础原理+实战 书籍 《Netty Zookeeper Redis 高并发实战

img

以上是关于SpringCloud 脚手架的主要内容,如果未能解决你的问题,请参考以下文章

『脚手架』方糖工具箱 | 一款采用 SpringCloud 微服务架构的脚手架

SpringCloud脚手架|2.SpringCloud 整合security.实现认证中心

一款不错的SpringCloud 脚手架项目

springcloud报错-------关于 hystrix 的异常 FallbackDefinitionException:fallback method wasn't found(代码片段

快速搭建第一个SpringCloud程序

SpringCloud 脚手架