瘋狂創客圈 Java 高並發【 億級流量聊天室實戰】實戰系列 【博客園總入口 】
架構師成長+面試必備之 高並發基礎書籍 【Netty Zookeeper Redis 高並發實戰 】
前言
Crazy-SpringCloud 微服務腳手架 &視頻介紹:
Crazy-SpringCloud 微服務腳手架,是為 Java 微服務開發 入門者 准備的 學習和開發腳手架。並配有一系列的使用教程和視頻,大致如下:
高並發 環境搭建 圖文教程和演示視頻,陸續上線:
中間件 | 鏈接地址 |
---|---|
Linux Redis 安裝(帶視頻) | Linux Redis 安裝(帶視頻) |
Linux Zookeeper 安裝(帶視頻) | Linux Zookeeper 安裝, 帶視頻 |
Windows Redis 安裝(帶視頻) | Windows Redis 安裝(帶視頻) |
RabbitMQ 離線安裝(帶視頻) | RabbitMQ 離線安裝(帶視頻) |
ElasticSearch 安裝, 帶視頻 | ElasticSearch 安裝, 帶視頻 |
Nacos 安裝(帶視頻) | Nacos 安裝(帶視頻) |
Crazy-SpringCloud 微服務腳手架 圖文教程和演示視頻,陸續上線:
組件 | 鏈接地址 |
---|---|
Eureka | Eureka 入門,帶視頻 |
SpringCloud Config | springcloud Config 入門,帶視頻 |
spring security | spring security 原理+實戰 |
Spring Session | SpringSession 獨立使用 |
分布式 session 基礎 | RedisSession (自定義) |
重點: springcloud 開發腳手架 | springcloud 開發腳手架 |
SpingSecurity + SpringSession 死磕 (寫作中) | SpingSecurity + SpringSession 死磕 |
小視頻以及所需工具的百度網盤鏈接,請參見 瘋狂創客圈 高並發社群 博客
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 來填充了。
總之,通過環境變量的使用,使得各種服務器的主機切換,多了一層靈活性。而且,可以做到不用明文編碼一些密碼之類的敏感信息,多了一層安全性。
8.{Crazy-SpringCloud 微服務開發腳手架} 部署視頻
組件 | 鏈接地址 |
---|---|
Eureka | Eureka 入門,帶視頻 |
SpringCloud Config | springcloud Config 入門,帶視頻 |
spring security | spring security 原理+實戰 |
Spring Session | SpringSession 獨立使用 |
分布式 session 基礎 | RedisSession (自定義) |
重點: springcloud 開發腳手架 | springcloud 開發腳手架 |
SpingSecurity + SpringSession 死磕 (寫作中) | SpingSecurity + SpringSession 死磕 |
crazymaker-USER | ....ing |
crazymaker-seckill | ....ing |
cloud-zuul | ....ing |
小視頻以及所需工具的百度網盤鏈接,請參見 瘋狂創客圈 高並發社群 博客
具體,請關注 Java 高並發研習社群 【博客園 總入口 】
最后,介紹一下瘋狂創客圈:瘋狂創客圈,一個Java 高並發研習社群 【博客園 總入口 】
瘋狂創客圈,傾力推出:面試必備 + 面試必備 + 面試必備 的基礎原理+實戰 書籍 《Netty Zookeeper Redis 高並發實戰》
瘋狂創客圈 Java 死磕系列
- Java (Netty) 聊天程序【 億級流量】實戰 開源項目實戰
-
Netty 源碼、原理、JAVA NIO 原理
-
Java 面試題 一網打盡
-
瘋狂創客圈 【 博客園 總入口 】