SpringCloud 服務閘道器

2021-08-13 19:59:18 字數 1745 閱讀 2641

上篇部落格《springcloud——eureka服務註冊和發現》中介紹了註冊中心eureka、服務提供者和服務消費者。這篇部落格我們將介紹服務閘道器。

圖(1) 未使用服務閘道器的做法

圖(2) 服務閘道器的做法

服務閘道器,英文service gateway,他是微服務框架中唯一的入口。有些類似外觀模式,對外只提供乙個訪問的入口。這樣做的好處有很多,減少了客戶端多次呼叫微服務,也可以在「入口」處進行負載或許可權的處理。

在springcloud netflix中,zuul就是這樣乙個角色。

引入jar包

org.springframework.cloudgroupid>

spring-cloud-starter-zuulartifactid>

dependency>

@enablezuulproxy

public

class

public

static

void

main(string args)

}

zuul環境搭建完畢之後,我們就可以來看他的主要功能了,包括服務路由和服務過濾。

之後,我們就可以通過」/api-a-url」來代替」http://localhost:2222/「進行訪問,類似修改本地hosts檔案來設定網域名稱。這種方式遮蔽了ip和埠。

定義過濾

public

class

accessfilter

extends

zuulfilter

return

null;}……

}

例項化

//例項化過濾器

@bean

public accessfilter accessfilter()

啟動專案,如果訪問的url中不含有accesstoken引數則會報錯,只有包含該引數的請求url才會被放行。

zuul的主要功能:負載均衡、服務路由、服務過濾等,並不是新鮮的東西。api gateway類似外觀模式,提供統一的入口。負載均衡和路由和nginx的功能很像,過濾和許可權管理類似shiro的許可權配置。

萬變不離其宗,目的都是在於把這些與服務本身關係不大的東西剝離出來,而且是越早剝離越好,能在controller處理的絕不放在service,能在**前處理的就不要留到**後。類似大家說的服務的無狀態性,over!

SpringCloud 服務閘道器

上篇部落格 springcloud eureka服務註冊和發現 中介紹了註冊中心eureka 服務提供者和服務消費者。這篇部落格我們將介紹服務閘道器。圖 1 未使用服務閘道器的做法 圖 2 服務閘道器的做法 服務閘道器,英文service gateway,他是微服務框架中唯一的入口。有些類似外觀模式...

SpringCloud 服務閘道器

是程式或者系統之間的連線節點,扮演著程式或系統之間的門戶,允許它們之間通過通訊協議交換資訊,它們可能是同構和異構的異同。比如新增依賴 org.springframework.cloudgroupid spring cloud starter zuulartifactid dependency org...

Spring Cloud服務閘道器整合

1.增加依賴 org.springframework.cloud spring cloud starter zuul 2.建立zuul 應用 package com.segumentfault.spring.cloud.lesson11.zuul.proxy import org.springfra...