Spring-Cloud 從0開始(一) Eureka-Server

背景

2019年第一篇blog打算從微服務開始,正所謂本身立下的flag趴着也要寫完^^.因此從今天開始打算會持續寫Spring-Cloud相關文章.java

什麼是微服務

  1. 微服務是一種架構風格
  2. 一些列微小的服務組成
  3. 每一個服務獨立開發,獨立部署

爲甚麼採用微服務

由於單體用用存在一些問題,總結概括以下:spring

  1. 開發效率低(代碼體系大)
  2. 代碼維護難(代碼體系大)
  3. 穩定性不高(改動一個模塊可能影響其餘代碼功能)
  4. 擴展困難(單個模塊擴展須要考慮是否影響其餘模塊功能)
  5. 部署不夠靈活(部署時間超級長,部署繁瑣)

什麼是Eureka

  1. Eureka:在英文詞典中意爲"找到了,發現了", 顧名思義,他在Spring-Cloud中承擔的角色是服務的註冊與發現
  2. Spring Cloud Eureka 是基於Netflix Eureka作的二次封裝
  3. Spring Cloud Eureka 組件由兩部分組成 Eureka-Server, Eureka-Client
  4. Eureka-Server:服務註冊中心
  5. Eureka-Client:服務註冊和服務調用

說明

  1. 在系列博客中,Spring-Cloud版本是:Greenwich.RC1
  2. IDE 採用idea
  3. Spring-Boot 版本:2.1.1.RELEASE,關於Spring-CLoud版本和Boot的版本對應,咱們能夠去官網查看,咱們這裏選擇以下

搭建Eureka-Server

  1. 打開idea,選擇建立Spring項目 bootstrap

  2. 選擇Maven座標:gav 架構

  3. 選擇項目類型爲Eureka-Server app

  4. 建立完項目以後,查看Pom中Spring-Cloud與Boot版本:ide

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

<!-- spring-cloud版本 -->
<properties>
    <java.version>1.8</java.version>
    <spring-cloud.version>Greenwich.RC1</spring-cloud.version>
</properties>
複製代碼
  1. 做爲Eureka-Server咱們須要在啓動類添加註解@EnableEurekaServer
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}
複製代碼
  1. 配置文件修改
  1. 因爲Spring-Cloud中bootstrap.yml/properties(這裏採用yml)是項目的啓動加載配置文件,因此咱們先將配置文件重命名爲bootstrap.yml
  1. 做爲服務註冊中心,咱們要求高可靠性和穩定性,因此咱們這裏搭建三套Eureka-Server,端口分別爲8761, 8762, 8763;其項目搭建方式同樣(同上), Eureka-Server1的配置文件以下:
eureka:
 client:
 service-url:
 defaultZone: http://localhost:8762/eureka/,http://localhost:8763/eureka/
 register-with-eureka: false

spring:
 application:
 name: eureka-server

server:
 port: 8761
複製代碼

Eureka-Server2的配置文件以下:spring-boot

spring:
 application:
 name: eureka-server2

server:
 port: 8762

eureka:
 client:
 service-url:
 defaultZone: http://localhost:8761/eureka/,http://localhost:8763/eureka/
 register-with-eureka: false
複製代碼

Eureka-Server3的配置文件以下:微服務

spring:
 application:
 name: eureka-server3

server:
 port: 8763

eureka:
 client:
 register-with-eureka: false
 service-url:
 defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
複製代碼

配置說明:url

  1. spring.application.name: 是服務的名稱
  2. server.port: 表明服務的端口
  3. eureka.client.register-with-eureka=false 表示讓Eureka-Server本身不須要註冊到本身
  4. 由上面三個Eureka-Server的配置咱們能夠看到,在註冊Eureka-Server集羣中,咱們只須要將不一樣的Eureka-Server相互註冊,就能夠實現Eureka-Server的高可用
  1. 啓動服務 啓動服務以後咱們能夠訪問:http://localhost:8761/; http://localhost:8762/; http://localhost:8763/ 發現註冊中心已經啓動:

結尾

到這裏,咱們集羣式的Eureka-Server已經搭建好了, 咱們下一節來搭建Eureka-Client來發現服務.好了,預知後事如何, 請聽下回分解!idea

相關文章
相關標籤/搜索