springboot搭建Eureka注冊中心


什么是Eureka,什么是服務注冊與發現


      Spring Boot作為目前最火爆的web框架。那么它與Eureka又有什么關聯呢?

1.Eureka是Netflix開源的一個RESTful服務,主要用於服務的注冊發現。
2.Eureka由兩個組件組成:Eureka服務器和Eureka客戶端。Eureka服務器用作服務注冊服務器。
3.Eureka客戶端是一個java客戶端,用來簡化與服務器的交互、作為輪詢負載均衡器,並提供服務的故障切換支持。
4.Netflix在其生產環境中使用的是另外的客戶端,它提供基於流量、資源利用率以及出錯狀態的加權負載均衡。


一.先創建一個Eureka-Server服務注冊中心

Eureka是一個高可用的組件,每一個實例注冊之后需要向注冊中心發送心跳包,在默認情況下erureka server也是一個eureka client ,必須要指定一個 server。


1.pom.xml配置

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

2.配置application.yml文件

server:
  port: 8081 #服務注冊中心端口號
eureka:
  instance:
    hostname: 127.0.0.1 #服務注冊中心IP地址
  client:
    registerWithEureka: false #是否向服務注冊中心注冊自己
    fetchRegistry: false #是否檢索服務
    serviceUrl: #服務注冊中心的配置內容,指定服務注冊中心的位置
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

3.配置啟動類引入@EnableEurekaServer

package com.sun.eureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

/**
 * 服務注冊中心
 * @author andy
 *啟動一個服務注冊中心
 */

@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }

}

4.訪問注冊中心

二.創建一個Eureka-Client客戶端

 客戶端在向注冊中心它會提供一些元數據,例如主機和端口,URL,主頁等。Eureka server 從每個client實例接收心跳消息。 如果心跳超時,則通常將該實例從注冊server中刪除。


1.pom.xml配置同步服務端

2.配置application.yml文件

eureka:
  client:
    serviceUrl: #注冊中心的注冊地址
      defaultZone: http://127.0.0.1:8081/eureka/
server:
  port: 8082  #服務端口號
spring:
  application:
    name: service-client #服務名稱--調用的時候根據名稱來調用該服務的方法

3.配置啟動類引入@EnableEurekaClient

package com.sun.eureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.scheduling.annotation.EnableScheduling;

/**
   * 客戶端
 * @author andy
 *
 */

@EnableEurekaClient
@SpringBootApplication
public class EurekaClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
    }

}

4.定義ClientController控制器

package com.sun.eureka.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ClientController {

    @GetMapping(value = "/index")
    public String getString(){
        return "Hello-Wolrd";
    }

}

接着我們來訪問:127.0.0.1:8082/index

5.再次訪問注冊中心
注意矩形標記,此時我們已經成功的注冊客戶端service-client

 

三.負載均衡的效果圖

每個微服務都是一個Eureka-Client,我們把每個app(SpringBootApplication)都向注冊中心注冊一個服務。
有時候,某個服務的工作量比較大的時候,我們可以多注冊幾個同名稱的微服務,從而讓他們交替工作,減輕單個服務的壓力。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM