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

相關文章
相關標籤/搜索