1. 程式人生 > >SpringCloud教程一:服務註冊與發現(Eureka)

SpringCloud教程一:服務註冊與發現(Eureka)

Spring Cloud

Spring Cloud為開發人員提供了快速構建分散式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智慧路由,微代理,控制匯流排)。分散式系統的協調導致了樣板模式, 使用Spring Cloud開發人員可以快速地支援實現這些模式的服務和應用程式。他們將在任何分散式環境中執行良好,包括開發人員自己的膝上型電腦,裸機資料中心,以及Cloud Foundry等託管平臺。

特性

Spring Cloud專注於提供良好的開箱即用經驗的典型用例和可擴充套件性機制覆蓋。

  • 分散式/版本化配置

  • 服務註冊和發現

  • 路由

  • service - to - service呼叫

  • 負載均衡

  • 斷路器

  • 分散式訊息傳遞

SpringCloud分散式開發五大神獸

    服務發現——Netflix Eureka
    客服端負載均衡——Netflix Ribbon
    斷路器——Netflix Hystrix
    服務閘道器——Netflix Zuul
    分散式配置——Spring Cloud Config

建立服務註冊中心eureka server

在這裡,我們需要用的的元件上Spring Cloud Netflix的Eureka ,eureka是一個服務註冊和發現模組。

1:首先建立一個主maven工程

2:在1建立的的工程中建立model,名稱為server,作為eureka server

建立過程如下





建立完成後的pom.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<projectxmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <
groupId>com.springcloud</groupId> <artifactId>server</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>server</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.8.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Edgware.RELEASE</spring-cloud.version> </properties> <dependencies> <!--eureka server --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

4.啟動服務註冊中心,建立完成後的pom.xml如下
只需要一個註解@EnableEurekaServer,這個註解需要在springboot工程的啟動application類上加

/**
 * 啟動一個服務註冊中心
 *
 * @author wang_
 */
@EnableEurekaServer
@SpringBootApplication
public class ServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServerApplication.class, args);
    }
}
5:修改配置檔案:
#埠號
server.port= 7080
#
eureka.instance.hostname= localhost
##false來表明自己是一個eureka server
eureka.client.register-with-eureka=false  
##false來表明自己是一個eureka server
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone= http://${eureka.instance.hostname}:${server.port}/eureka/
#關閉springboot自帶的ioc
spring.mvc.favicon.enabled = false
6:啟動工程,訪問http://127.0.0.1:7080/


因為現在沒有註冊服務,所以顯示沒有服務被發現

建立服務提供者eureka client

當client向server註冊時,它會提供一些元資料,例如主機和埠,URL,主頁等。Eureka server 從每個client例項接收心跳訊息。 如果心跳超時,則通常將該例項從註冊server中刪除。
1:建立過程同server大致相同,建立完成後pomr如下:
<name>client</name>
<description>Demo project for Spring Boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.8.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud-services.version>1.5.0.RELEASE</spring-cloud-services.version>
    <spring-cloud.version>Edgware.RELEASE</spring-cloud.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Dalston.RC1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

主程式如下通過註解@EnableEurekaClient 表明自己是一個eurekaclient.建立完成後的pom.xml如下
/**
 * @author wang_
 * @EnableEurekaClient 表明自己是一個eurekaclient.
 */
@SpringBootApplication
@EnableEurekaClient
@RestController
public class ClientApplication {

    public static void main(String[] args) {

        SpringApplication.run(ClientApplication.class, args);
    }

    @Value("${server.port}")
    String port;
    @RequestMapping("/hi")
    public String home(@RequestParam String name) {
        return "hi "+name+",i am from port:" +port;
    }
}
修改配置檔案如下:
eureka.client.service-url.defaultZone= http://localhost:7080/eureka/
server.port= 8082
spring.application.name= service-hi
#在application.properties加入認證的使用者名稱和密
security.user.name=root
security.user.password=123456

需要指明spring.application.name,這個很重要,這在以後的服務與服務之間相互呼叫一般都是根據這個name 

,啟動工程,再次訪問http://127.0.0.1:7080/


可以發現有一個服務已經註冊了,服務名稱和埠號都顯示在瀏覽器中

f訪問:
http://127.0.0.1:8082/hi?name=%E7%8E%8B

返回結果:hi 王,i am from port:8082

相關推薦

SpringCloud教程服務註冊發現Eureka

Spring CloudSpring Cloud為開發人員提供了快速構建分散式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智慧路由,微代理,控制匯流排)。分散式系統的協調導致了樣板模式,

Spring Cloud 服務註冊發現Eureka【Dalston版】

什麽是 pom 日誌 操作 prop ng- 通過 決策 target Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局

SpringCloud進擊 | 淺出服務註冊發現Eureka【Finchley版本】

1.前言 Spring Cloud 已經幫我們實現了服務註冊中心,我們只需要很簡單的幾個步驟就可以完成。關於理論知識,我想大家都已經有不同程度上的瞭解和認識,這裡,我們最後再進行總結。本系列 Spring Cloud 介紹基於 Spring Boot 2.0.5 版本和 Spring C

Spring Cloud 入門教程1、服務註冊發現Eureka

一、前言 1、什麼是Eureka? Eureka是Netflix開源的服務註冊與發現框架,Eureka由兩個元件組成:Eureka伺服器和Eureka客戶端。 Eureka Server提供服務註冊服務,各個節點啟動後,會在Eureka Server中進行註冊,這樣EurekaServer中的服務登

Spring Cloud構建微服務架構服務註冊發現Eureka

1. Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等操作提供了

關於SpringCloud服務雲架構構建B2B2C電子商務平臺分析服務註冊發現Eureka、Consul

Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等操作提供了一種簡單的開發方式。 Spring

構建微服務架構Spring Cloud服務註冊發現Eureka、Consul

comm 簡介 foundry 架構 eas args 包含 什麽 其他 Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全

Spring Cloud構建微服務架構服務註冊發現Eureka、Consul

Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等操作提供了一種簡單的開發方式。 Spring Cloud包含

spring clould()服務註冊發現Eureka

前言 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具。Spring cloud包含了很多子專案,用於解決我們服務開發中需要對面的問題,比如服務叢集、服務發現、斷路器、智慧路由。 本次開發專案中是用Spring Cloud Eureka實現在服務治理。

.NET微服務從0到1服務註冊發現Consul

[toc] # Consul搭建 ## 基於Docker搭建Consul *以下為單機環境構建指令碼,用於本機測試,生產環境中應當進行叢集搭建* ```yml version: '3' services: consul: image: consul:1.7.1 container_name

Spring Cloud 基於Spring Boot 2.x的服務註冊發現Eureka

一.Spring Cloud 簡介        Spring Cloud為開發人員提供了快速構建分散式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智慧路由,微代理,控制匯流排,一次性令牌,全域性鎖定,領導選舉,分散式 會話,群集狀態)。 分散式系統的協調導致鍋

Spring Cloud學習---服務註冊發現Eureka

本博目錄: 一、 服務註冊與發現簡介 如何使用Spring Cloud搭建服務註冊與發現模組。 這裡我們會用到Spring Cloud Netflix,該專案是Spring Cloud的子專案之一,Eureka是Spring Cloud N

企業級 SpringCloud 教程 服務註冊發現Eureka

odi pack ins 51cto -- .com shadow osi 根據 一、spring cloud簡介 spring cloud 為開發人員提供了快速構建分布式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等

史上最簡單的 SpringCloud 教程 | 第一篇 服務註冊發現Eureka

add 過程 sdn 需要 2.3 boot one ini tail 最新Finchley版本請訪問:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/或者http://blog.csdn.n

史上最簡單的 SpringCloud 教程 | 第一篇 服務註冊發現Eureka

一、spring cloud簡介 spring cloud 為開發人員提供了快速構建分散式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理

SpringCloud 學習記錄()服務註冊發現(eureka+feign)

前面介紹過dubbo遠端介面呼叫的簡單使用,這裡我們將開始學習如何使用springcloud微服務架構中的服務註冊與發現。 一,eureka-server eureka分為服務端和客戶端兩部分, eureka server是一個服務註冊中心,類似於zookeeper,當

SpringCloud教程 | .服務註冊發現Eureka

前言 之前用過SpringBoot之後,樓主有種虎穴一震的感覺,不禁感嘆天下居然有這麼好用的框架,雖然最近公司依舊比較忙,好在自己任務完成了,就忙裡偷閒開始學習一下SpringCloud(SpringCloud是建立在SpringBoot的基礎之上的),趁此機會和大家分享一

SpringCloud 教程 | 第一篇 服務註冊發現Eureka

一、spring cloud簡介spring cloud 為開發人員提供了快速構建分散式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件匯流排、全域性鎖、決策競選、分散式會話等等。它執行環境簡單,可以在開發人員的電腦上跑。另外說明spring cloud是基

springCloud3服務註冊發現Eureka

springcloud 微服務的註冊與發現 eureka 一、簡介服務消費者需要一個強大的服務發現機制,服務消費者使用這種機制獲取服務提供者的網絡信息。即使服務提供者的信息發生變化,服務消費者也無須修改配置。服務提供者、服務消費者、服務發現組件三者之間的關系大致如下: 1.各個微服務在啟動時,將自

SpringCloud 第一篇 服務註冊發現Eureka

plugin frame instance 完成 star wire clas snapshot IT 前言: 必需學會SpringBoot基礎知識 簡介: spring cloud 為開發人員提供了快速構建分布式系統的一些工具,包括配置管理、服務發現、斷路器、路由、