1. 程式人生 > >Spring Cloud之路:(二) 服務的註冊與發現(Eureka)

Spring Cloud之路:(二) 服務的註冊與發現(Eureka)

Spring Cloud之路:(二) 服務的註冊與發現(Eureka)

eureka是一個服務註冊和發現模組。

一、建立服務註冊中心 (eureka server)

1、啟動一個服務註冊中心,只需要一個註解@EnableEurekaServer,這個註解需要在springboot工程的啟動application類上加

@EnableEurekaServer
@SpringBootApplication
public class EurekaserverApplication {

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

2、eureka是一個高可用的元件,它沒有後端快取,每一個例項註冊之後需要向註冊中心傳送心跳(因此可以在記憶體中完成),在預設情況下erureka server也是一個eureka client ,必須要指定一個 server。eureka server的配置檔案appication.properties:

server.port = 8761

eureka.instance.hostname = localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client
.service-url.default-zone=http://${eureka.instance.hostname}:${server.port}/eureka/

通過eureka.client.registerWithEureka:false和fetchRegistry:false來表明自己是一個eureka server.

3、eureka server 是有介面的,啟動工程,開啟瀏覽器訪問: http://localhost:8761

二、建立一個服務提供者 (eureka client)

當client向server註冊時,它會提供一些元資料,例如主機和埠,URL,主頁等。Eureka server 從每個client例項接收心跳訊息。 如果心跳超時,則通常將該例項從註冊server中刪除。

1、通過註解@EnableEurekaClient 表明自己是一個eurekaclient.

@SpringBootApplication
@EnableEurekaClient
@RestController
public class EurekaclientApplication {

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

    @Value("${server.port}")
    String port;
    @RequestMapping("/hi")
    public String home(@RequestParam String name) {
        return "hi "+name+",i am from port:" +port;
    }

}

2、僅僅@EnableEurekaClient是不夠的,還需要在配置檔案中註明自己的服務註冊中心的地址,application.properties配置檔案如下:

eureka.client.service-url.default-zone=http://localhost:8761/eureka/

server.port=8762
spring.application.name=eurekaclient

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

3、啟動工程,開啟http://localhost:8761 ,即eureka server 的網址:

image.png

你會發現一個服務已經註冊在服務中了,服務名為SERVICE-HI ,埠為7862

這時開啟 http://localhost:8762/hi?name=forezp ,你會在瀏覽器上看到 :

hi forezp,i am from port:8762

附錄

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

示例程式碼-github