SpringCloud 脚手架


《SpringCloud Nginx 高并发核心编程》 环境搭建 图文教程和演示视频:spring

组件 连接地址
【必须】 虚拟机Linux 开发环境准备 windows vmware 扩展硬盘 + 共享文件
Linux openresty 安装 Linux openresty 安装
【必须】Linux Redis 安装(带视频) Linux Redis 安装(带视频)
【必须】Linux Zookeeper 安装(带视频) Linux Zookeeper 安装, 带视频
Windows Redis 安装(带视频) Windows Redis 安装(带视频)
RabbitMQ 离线安装(带视频) RabbitMQ 离线安装(带视频)
ElasticSearch 安装, 带视频 ElasticSearch 安装, 带视频
Nacos 安装(带视频) Nacos 安装(带视频)
【必须】Eureka Eureka 入门,带视频
【必须】springcloud Config 入门,带视频 springcloud Config 入门,带视频
【必须】Zuul 详解,带视频 Zuul 详解,带视频
【必须】SpringCloud 脚手架打包与启动 SpringCloud脚手架打包与启动

1 Spring Cloud 、Spring Boot版本选项

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

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环境,强烈建议使用 虚拟机 。bootstrap

  • 中间件:

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

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

  • 数据库

能够是 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

相关文章
相关标签/搜索