上篇部落格《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...