瘋狂創客圈 經典圖書 : 《Netty Zookeeper Redis 高併發實戰》 面試必備 + 面試必備 + 面試必備 【博客園總入口 】html
瘋狂創客圈 經典圖書 : 《SpringCloud、Nginx高併發核心編程》 大廠必備 + 大廠必備 + 大廠必備 【博客園總入口 】java
入大廠+漲工資必備: 高併發【 億級流量IM實戰】 實戰系列 【 SpringCloud Nginx秒殺】 實戰系列 【博客園總入口 】linux
《SpringCloud Nginx 高併發核心編程》 環境搭建 圖文教程和演示視頻:面試
組件 | 連接地址 |
---|---|
【必須】 虛擬機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 入門,帶視頻 |
【必須】SpringCloud 腳手架打包與啓動 | SpringCloud腳手架打包與啓動 |
Eureka 自己是 Netflix 開源的一款提供微服務註冊和發現的產品,而且提供了相應的 Java 封裝。選擇Eureka 的緣由:spring
(1)Spring Cloud Netflix 背後強大的開源力量,在 Spring Cloud 的社區十分活躍;編程
(2)Eureka 在業界的應用也十分普遍(尤爲是國外),並且整個框架也經受住了 Netflix 嚴酷生產環境的考驗。windows
(3)除了服務註冊和發現,Spring Cloud Netflix 的其餘功能也十分強大,包括 Ribbon,hystrix,Feign,Zuul 等組件,結合到一塊兒,讓服務的調用、路由也變得異常容易。瀏覽器
那麼,Netflix 和 Spring Cloud 是什麼關係呢?緩存
Netflix 是一家互聯網流媒體播放商,能夠這麼說該網站上的美劇應該是最火的。因爲是美國視頻巨頭,訪問量很是的大,從而促使其技術快速的發展在背後支撐着,也正是如此,Netflix 開始把總體的系統往微服務上遷移。而且,幾年前,Netflix 就把它的幾乎整個微服務框架棧開源貢獻給了社區,叫作 Netflix OSS。服務器
Spring 背後的 Pivotal 在 2015 年推出的 Spring Cloud 開源產品,主要對 Netflix 開源組件的進一步封裝,方便 Spring 開發人員構建微服務基礎框架。(雖然 Spring Cloud 到如今爲止不僅有 Netflix 提供的方案能夠集成,還有不少方案,但 Netflix 是最成熟的。)
Spring Cloud Eureka 是 Spring Cloud Netflix 微服務套件的一部分,基於 Netflix Eureka 作了二次封裝,主要負責完成微服務架構中的服務治理功能,服務治理能夠說是微服務架構中最爲核心和基礎的模塊,他主要用來實現各個微服務實例的自動化註冊與發現。
什麼是服務註冊呢?
在服務治理框架中,一般都會構建一個註冊中心,每一個服務單元向註冊中心登記本身提供的服務,將主機與端口號、版本號、通訊協議等一些附加信息告知註冊中心,註冊中心按照服務名分類組織服務清單,服務註冊中心還須要以心跳的方式去監控清單中的服務是否可用,若不可用須要從服務清單中剔除,達到排除故障服務的效果。
什麼是服務發現呢?
因爲在服務治理框架下運行,服務間的調用再也不經過指定具體的實例地址來實現,而是經過向服務名發起請求調用實現。
Eureka 所治理的每個微服務,能夠稱之爲 provider instance (服務實例) 。爲了便於理解,咱們將每個微服務實例,細分爲 Service Provider 和 Service Consumer。
Service Provider:服務提供方,做爲一個 Eureka Client,向 Eureka Server 作服務註冊、續約和下線等操做,註冊的主要數據包括服務名、機器 ip、端口號、域名等等。
Service Consumer:服務消費方,做爲 Eureka Client,向 Eureka Server 獲取 Service Provider 的註冊信息,並經過遠程調用與 Service Provider 進行通訊。
Eureka 管理的微服務集羣中,節點之間是相互平等的,部分註冊中心的節點掛掉也不會對集羣形成影響,即便集羣只剩一個節點存活,也能夠正常提供發現服務。哪怕是全部的服務註冊節點都掛了,Eureka Clients 上也會緩存服務調用的信息。這就保證了咱們微服務之間的互相調用是足夠健壯的。
Eureka 負責微服務治理的組件,叫作 Eureka Server。Eureka Server是註冊服務中心的服務端,啓動完成是有界面的。
新建 Eureka Server 項目的時候,須要在啓動類中添加註解@EnableEurekaServer,聲明這是一個Eureka Server。固然也須要在pom.xml文件中手動添加上以下依賴。
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
啓動類的代碼以下:
package com.crazymaker.springcloud.cloud.center.eureka; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; //在啓動類中添加註解@EnableEurekaServer @EnableEurekaServer @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
配置文件application.yml中內容爲:
server: port: 7777 spring: application: name: eureka-server eureka: client: register-with-eureka: false fetch-registry: false service-url: #服務註冊中心的配置內容,指定服務註冊中心的位置 defaultZone: http://${EUREKA_ZONE_HOST:localhost}:${server.port}/eureka/ instance: hostname: ${EUREKA_ZONE_HOST:localhost} server: enable-self-preservation: true eviction-interval-timer-in-ms: 10000
其中,eureka.client.register-with-eureka 表示是否將本身註冊到Eureka Server,默認爲true。由於當前應用就是Eureka Server,因此須要設置成false。
eureka.client.fetch-registry 表示是否從Eureka Server獲取註冊信息,默認爲true。由於本例是一個單點的Eureka Server,不須要同步其餘Eureka Server節點數據,因此設置爲false。
eureka.client. service-url. defaultZone 設置的是與Eureka Server的交互地址,查詢和註冊服務都依賴這個地址,若是有多個可使用英文逗號分隔。
以上步驟完成後,直接啓動便可,而後瀏覽器地址欄輸入http://localhost:8080/7777 查看界面。可是不會看到任何微服務的實例,由於尚未微服務註冊上。
首先須要本地測試經過。
(1)打包:
maven 打包工具。
(2)部署:
部署到linux服務器,解壓縮,而後 start.sh 腳本啓動。
(3) 訪問
(4) 視頻示意(具體視頻,請參見 博客園 總入口 )
具體,請關注 Java 高併發研習社羣 【博客園 總入口 】
最後,介紹一下瘋狂創客圈:瘋狂創客圈,一個Java 高併發研習社羣 【博客園 總入口 】
瘋狂創客圈,傾力推出:面試必備 + 面試必備 + 面試必備 的基礎原理+實戰 書籍 《Netty Zookeeper Redis 高併發實戰》