Eureka 入門,帶視頻


《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 簡介

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 服務器的啓動

新建 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) 訪問

http://192.168.233.128:7777/

(4) 視頻示意(具體視頻,請參見 博客園 總入口

img

具體,請關注 Java 高併發研習社羣博客園 總入口


最後,介紹一下瘋狂創客圈:瘋狂創客圈,一個Java 高併發研習社羣博客園 總入口

瘋狂創客圈,傾力推出:面試必備 + 面試必備 + 面試必備 的基礎原理+實戰 書籍 《Netty Zookeeper Redis 高併發實戰

img


瘋狂創客圈 Java 死磕系列

  • Java (Netty) 聊天程序【 億級流量】實戰 開源項目實戰
相關文章
相關標籤/搜索