1. 程式人生 > >微服務架構案例(05):SpringCloud 基礎元件應用設計

微服務架構案例(05):SpringCloud 基礎元件應用設計

本文原始碼:GitHub·點這裡 || GitEE·點這裡

更新進度(共6節):

01:專案技術選型簡介,架構圖解說明
02:業務架構設計,系統分層管理
03:資料庫選型,業務資料設計規劃
04:中介軟體整合,公共服務管理
05:SpringCloud 基礎元件應用設計

一、元件應用規劃

1、註冊中心

Eureka 元件是 Netflix 開發的,用於定位服務,基於RESTFul方式實現服務註冊與發現。包括一個EurekaServer服務端(通常是指微服務中的註冊中心) 和EurekaClient客戶端(通常指微服務中的業務服務)。Eureka支援高可用的配置,當註冊中心發現有故障的服務時,Eureka就會轉入自動保護模式,故障時不影響服務的發現和註冊,當故障恢復正常時,註冊中心的服務會進行狀態同步,繼續提供服務。

2、服務呼叫

Feign 元件是一個宣告式的 WebService客戶端。在Eureka註冊的服務中,可以使用Feign介面的形式來進行相關服務間的請求呼叫,並提供超時回退,快速熔斷的相關特性。Feign是一個便利的RestFul框架,簡化呼叫,通過ribbon在註冊伺服器中找到服務例項,然後對請求進行服務分配,實現了負載均衡的效果,預設採用輪詢演算法。

3、服務閘道器

GateWay閘道器,可以讓所有客戶端請求先通過微服務閘道器,跟閘道器進行互動,由閘道器進行各個微服務的請求轉發,客戶端(前端)對多服務架構無感知。降低客戶端與微服務之間的互動耦合度;便於監控,可在閘道器中監控資料;在閘道器層統一處理認證,規劃切面程式設計;也就是說與業務本身功能無關的公共邏輯可以在閘道器層統一封裝實現,類似設計模式中的門面模式。

二、註冊中心

1、服務端配置

eureka:
  server:
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 15000
  instance:
    prefer-ip-address: true
  client:
      register-with-eureka: false
      fetch-registry: false
      service-url:
        defaultZone: http://127.0.0.1:5001/eureka/

2、客戶端配置

eureka:
  instance:
    prefer-ip-address: true
  client:
      service-url:
        defaultZone: http://127.0.0.1:5001/eureka/

三、Feign元件

1、Feign介面

@FeignClient("MOPSZ-SOFT-ROCKET")
public interface UserSearchFeign {
    @GetMapping("/mq/user/search/sendBookSearch")
    void sendBookSearch (@RequestParam("msgContent") String msgContent) ;
}

2、Feign介面實現

@RestController
public class UserSearchController implements UserSearchFeign {
    @Override
    public void sendBookSearch(String msgContent) {
    }
}

3、介面配置

該配置檔案在實現Feign介面的專案中配置就好,也可針對特定方法配置。

feign:
  hystrix:
    enabled: true
  client:
    config:
      feignName:
        connectTimeout: 60000
        readTimeout: 60000

4、Feign介面呼叫

@Resource
private UserSearchFeign userSearchFeign ;
userSearchFeign.sendBookSearch("");

四、服務閘道器

1、閘道器元件配置

zuul:
  # 字首,可以用來做版本控制
  prefix: /v1
  # 禁用預設路由,執行配置的路由
  ignored-services: "*"
  routes:
    # 配置 Token 服務
    pro6601:
      serviceId: mopsz-basis-token
      path: /api/6601/**
    # 配置 UserClient 服務
    pro6102:
      serviceId: mopsz-user-client
      path: /api/6102/**
  • 配置FilterConfig進行使用者Token認證攔截;
  • 配置FallBackConfig進行服務降級響應管理;

2、專案部署

在專案上線後,對外暴露一個閘道器服務埠,其他服務埠不對外暴露,所有的請求都必須通過閘道器攔截或者轉發,這就是微服務提供服務的一種常見方式。

五、原始碼地址

GitHub·地址
https://github.com/cicadasmile/husky-spring-cloud
GitEE·地址
https://gitee.com/cicadasmile/husky-spring-cloud

相關推薦

服務架構案例(05)SpringCloud 基礎元件應用設計

本文原始碼:GitHub·點這裡 || GitEE·點這裡 更新進度(共6節): 01:專案技術選型簡介,架構圖解說明 02:業務架構設計,系統分層管理 03:資料庫選型,業務資料設計規劃 04:中介軟體整合,公共服務管理 05:SpringCloud 基礎元件應用設計 一、元件應用規劃 1、註冊中心

服務架構案例(03)資料庫選型簡介,業務資料規劃設計

更新進度(共6節): 01:專案技術選型簡介,架構圖解說明 02:業務架構設計,系統分層管理 03:資料庫選型,業務資料設計規劃 一、資料庫選擇 1、資料庫分類 資料庫型別 常見資料庫 關係型 MySQL、Oracle、DB2、SQLServer等。 非關係型 Hbase、Red

服務架構案例(04)中介軟體整合,公共服務封裝

本文原始碼:GitHub·點這裡 || GitEE·點這裡 更新進度(共6節): 01:專案技術選型簡介,架構圖解說明 02:業務架構設計,系統分層管理 03:資料庫選型,業務資料設計規劃 04:中介軟體整合,公共服務管理 一、中介軟體簡介 中介軟體是基礎軟體的一類, 屬於複用性極高的軟體。

構建服務架構Spring Cloud服務消費(基礎

成了 cloud framework shadow 即將 nbu 註冊中心 obj client 使用LoadBalancerClient 在Spring Cloud Commons中提供了大量的與服務治理相關的抽象接口,包括DiscoveryClient、這裏我們即將介紹

構建服務架構Spring Cloud服務註冊與發現(Eureka、Consul)

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

構建服務架構Spring Cloud服務消費(Ribbon)

架構 pid 編寫 動手 tap consumer pre 攔截器 over Spring Cloud Ribbon Spring Cloud Ribbon是基於Netflix Ribbon實現的一套客戶端負載均衡的工具。它是一個基於HTTP和TCP的客戶端負載均衡器。它可

構建服務架構Spring Cloud分布式配置中心

文件的 文件 項目 proc enc tid 部分 中心 並且 Spring Cloud Config是Spring Cloud團隊創建的一個全新項目,用來為分布式系統中的基礎設施和微服務應用提供集中化的外部配置支持,它分為服務端與客戶端兩個部分。其中服務端也稱為分布式配置

構建服務架構Spring Cloud服務消費(Feign)

進行 string oca 成對 rest server 之前 int netflix Spring Cloud Feign Spring Cloud Feign是一套基於Netflix Feign實現的聲明式服務調用客戶端。它使得編寫Web服務客戶端變得更加簡單。我們只需

何為服務服務架構的優勢,SpringCloud簡介

一、傳統單體架構的缺陷 傳統的單體應用,將所有功能的表示層、業務邏輯層,資料訪問層,包括靜態資源等等全部糅合在一個工程裡面,編譯,打包,部署在單臺伺服器上上線,比如打成war包放在Tomcat的webapp目錄中部署專案。這樣的專案開發部署適合小型專案,系統功

服務架構框架選擇Spring Cloud 和 Dubbo對比

知乎轉載 樓層1: 從專案的背景來看,Dubbo 國內用的公司挺多,國內影響力大,Spring Cloud 自然在國外影響力較大,所以這個來看不分伯仲了,畢竟都有大公司在使用。 從社群的活躍度來看,可以看下各自的Github託管專案來區分。Dubbo ·

一個經過優化的服務架構案例

http://www.infoq.com/cn/articles/an-optimized-micro-service-architecture-case?utm_source=tuicool&utm_medium=referral 前言 大家都知道,基於單

圖靈學院服務架構SpringCloud之Eureka(服務註冊和服務發現基礎篇)(二)

一:Eureka簡介   Eureka是Spring Cloud Netflix的一個子模組,也是核心模組之一。用於雲端服務發現,一個基於REST的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移。服務註冊與發現對於微服務系統來說非常重要。有了服務發現與註冊,你就不需要

服務架構基礎框架選擇Spring Cloud還是Dubbo?

還需要 storm 選擇框架 依賴 通過 service 完整 國內開發 模塊化 最近一段時間不論互聯網還是傳統行業,凡是涉及信息技術範疇的圈子幾乎都在討論 微服務架構 。近期也看到各大技術社區開始組織一些沙龍和論壇來分享spring Cloud的相關實施經驗,這對於最

服務架構 SpringCloud(二)Eureka(服務註冊和服務發現基礎篇)

col false -c conf gis 功能 pri desc sch 一:Eureka簡介 Eureka是Spring Cloud Netflix的一個子模塊,也是核心模塊之一。用於雲端服務發現,一個基於REST的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移

Spring Cloud構建服務架構服務消費(基礎

消費 ring str frame emp default class a template pom.xml 使用LoadBalancerClient在Spring Cloud Commons中提供了大量的與服務治理相關的抽象接口,包括DiscoveryClient、這裏我

Spring Cloud構建PC蛋蛋源碼下載服務架構服務消費(基礎

true ota ctu temp control lan prope 源碼下載 builder PC蛋蛋源碼下載論壇:haozbbs.com Q1446595067 使用LoadBalancerClient 在Spring Cloud Commons中提供了大量的與服務治

Java架構學習(四十)SpringCloud基礎&網站架構演變&服務架構概述&SpringCloud概述&服務註冊與服務發現&搭建註冊中心Euraka&rest和fegin呼叫原理

一、網站架構演變過程 微服務架構 為什麼出現了SpringCloud 網站架構模式: 單點應用---->分散式系統面向於服務架構(SOA)體系 webservice---->微服務架構 web專案三層架構 如果在網際網路公司中,使用傳統架構技術

SpringCloud—— 第一章服務架構介紹

https://www.bilibili.com/video/av32229211?from=search&seid=8405486316816129654 單體架構介紹 微服務架構 常見軟

SpringCloud第2章SprinCloud的服務架構對比SSM等框架的單體架構

xl_echo編輯整理,歡迎轉載,轉載請宣告文章來源。更多IT、程式設計案例、資料請聯絡QQ:1280023003 百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這才是真正的堪稱強大!! 最新SpringCloud/SpringBoot技術資料,請

服務架構SpringCloud之Eureka(服務註冊和服務發現基礎篇)(二)

原文連結 上篇文章講解了SpringCloud元件和概念介紹,接下來講解一下SpringCloud元件相關元件使用、原理和每個元件的作用的,它主要提供的模組包括:服務發現(Eureka),斷路器(Hystrix),智慧路有(Zuul),客戶端負載均衡(Ribb