瘋狂創客圈 經典圖書 : 《Netty Zookeeper Redis 高併發實戰》 面試必備 + 面試必備 + 面試必備 【博客園總入口 】html
瘋狂創客圈 經典圖書 : 《SpringCloud、Nginx高併發核心編程》 大廠必備 + 大廠必備 + 大廠必備 【博客園總入口 】linux
入大廠+漲工資必備: 高併發【 億級流量IM實戰】 實戰系列 【 SpringCloud Nginx秒殺】 實戰系列 【博客園總入口 】面試
《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腳手架打包與啓動 |
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>
本腳手架,側重於開發,而不是側重於 生產環境的監控。凡是與開發有關的部分,後續會逐步的增長和完善。編程
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層的代碼實現
建議使用 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, 須要適當的調整一些參數。 具體的部署,請參見 {瘋狂創客圈} 腳手架部署視頻
組件 | 端口 | |
---|---|---|
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 |
經過環境變量的使用,使得各類服務器的主機切換,多了一層靈活性。並且,能夠作到不用明文編碼一些密碼之類的敏感信息,多了一層安全性。
配置文件中,會涉及到如下環境變量:
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 高併發實戰》