Nhất giới thiệu
1.1 gateway giới thiệu
> Spring Cloud GateWay thị Spring Cloud đích ⼀ cá toàn tân hạng ⽬, ⽬ tiêu thị thủ đại Netflix Zuul, cơ vu Spring5.0+SpringBoot2.0+WebFlux ( cơ vu ⾼ tính năng đích Reactor mô thức hưởng ứng thức thông tín khuông giá Netty, dị bộ ⾮ trở tắc mô hình ) đẳng kỹ thuật khai phát, tính năng ⾼ vu Zuul, quan ⽅ trắc thí, GateWay thị Zuul đích 1.6 bội, chỉ tại vi vi phục vụ giá cấu đề cung ⼀ chủng giản đan hữu hiệu đích thống ⼀ đích API lộ do quản lý ⽅ thức
Tại hạng mục trung sử dụng võng quan nhu yếu đạo nhập hạ diện đích y lại, nhu yếu thị springcloud hạng mục
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
Giới thiệu |
---|
1.2 chúc tính giới thiệu
> gateway trung bao hàm dĩ hạ chúc tính
Route:Lộ do, chủ yếu đích công năng tựu thị tương thỉnh cầu chuyển phát đáo đối ứng đích phục vụ đoan điểm, bao hàm nhất cá duy nhất đích lộ do id, nhất cá mục tiêu đích url, nhất hệ liệt đoạn ngôn đích tập hợp, nhất tổ filter quá lự khí, đương đoạn ngôn điều kiện vi true đích thời hầu tựu hội chấp hành giá cá lộ do
Predicate:Đoạn ngôn, chủ yếu thị phán đoạn đương tiền phóng vấn võng quan đích địa chỉ ứng cai chấp hành na cá lộ do, chuyển phát đáo thập ma địa phương, khả dĩ thông quá phán đoạn thỉnh cầu trung đích nhậm hà sổ cư lai quyết định kết quả, bỉ như khả dĩ phán đoạn thỉnh cầu đầu header, thỉnh cầu tham sổ đẳng
Filter:Quá lự khí, hòa servlet trung đích quá lự khí loại tự, chủ yếu thị tại thỉnh cầu chuyển phát chi tiền hòa phản hồi kết quả chi tiền tiến hành tương quan đích xử lý
Thuật ngữ |
---|
1.3 võng quan như hà công tác
> hạ đồ miêu thuật liễu võng quan như hà công tác, đương võng quan thu đáo thỉnh cầu đích thời hầu, hội căn cư định nghĩa hảo đích lộ do ánh xạ tiến hành thất phối, tra khán đương tiền đích thỉnh cầu địa chỉ năng cú thất phối na cá mapping, nhiên hậu tương tương quan đích thỉnh cầu phát tống đáo hạ diện đích web handler, handler trung hữu nhất ta quá lự khí tổ thành liễu trách nhậm liên đối thỉnh cầu tiến hành pre xử lý, nhiên hậu tối chung tống đạt đáo hưởng ứng đích phục vụ khí, tại mục tiêu phản hồi kết quả chi hậu tái thông quá quá lự khí tiến hành post xử lý, tối chung phản hồi cấp điều dụng giá cá, quá lự khí đích hư tuyến dụng vu khu phân thị tiền trí xử lý hoàn thị hậu trí xử lý, kỳ thật chỉnh thể quá trình loại tự vu SpringMVC
Công tác lưu trình đồ |
---|
Lưu trình giới thiệu |
---|
Nhị đoạn ngôn
> đoạn ngôn đích tác dụng tựu thị tố boolean phán đoạn, vi true tắc đại biểu phù hợp đương tiền đích lộ do, hội chuyển phát đáo đối ứng đích địa chỉ,Gateway đề cung liễu ngận đa đoạn ngôn đích phương thức, khả dĩ nhượng ngã môn đối thỉnh cầu tiến hành thất phối ánh xạ, tịnh thả khả dĩ đa chủng đoạn ngôn đồng thời sử dụng > > đoạn ngôn ngữ pháp: Phương thức = trị
2.1 Path đoạn ngôn
> đương thỉnh cầu đích địa chỉ thất phối đương tiền path đích thời hầu hội chấp hành đương tiền lộ do
predicates:
-Path=/mg
Kỳ lệ, hạ diện đích đoạn ngôn phương thức hòa giá lí nhất dạng
spring:
application:
name: gateway
cloud:
gateway:
routes:
- id: 08consumer-eureka-feign # đương tiền lộ do sách lược đích duy nhất ID, khả dĩ tùy tiện tả, đãn thị như quả xuất hiện đa cá id, tất tu duy nhất
uri: http://localhost:12000 # đương tiền lộ do chỉ hướng đích chân thật địa chỉ, giá cá địa chỉ thị bất thị tối chung chân thật địa chỉ, tối chung địa chỉ hội bính tiếp thượng phóng vấn địa chỉ
predicates: # phối trí đoạn ngôn, phù hợp hạ diện đoạn ngôn đích thỉnh cầu hội chuyển phát đáo thượng diện đích url, đoạn ngôn ngận đa chủng điều kiện
- Path=/order/** # đoạn ngôn đích điều kiện thị thỉnh cầu đích địa chỉ phù hợp giá cá biểu đạt thức, chú ý cách thức vi Path=/order/**
2.2 Query đoạn ngôn
> tham sổ trị khả dĩ tả chính tắc, dã khả dĩ chỉ tả tham sổ danh, tại truyện đệ liễu phù hợp đích tham sổ danh hòa trị chi hậu hội chuyển phát đáo đối ứng đích url
predicates:
- Query=name,ba. # yếu cầu tất tu truyện đệ nhất cá tham sổ danh khiếu name trị vi ba khai đầu đích sổ cư. Thị thất phối nhất cá tự phù * thất phối N cá tương đồng đích tự phù,.* khả dĩ thất phối nhậm hà nội dung
2.3 Method đoạn ngôn
> đương thỉnh cầu phương thức thất phối đích thời hầu chấp hành đương tiền lộ do
predicates:
- Method=get
2.4 Host đoạn ngôn
> đương thị thông quá chỉ định vực danh phóng vấn đương tiền võng quan đích thời hầu chấp hành đối ứng đích lộ do
predicates:
- Host=localhost:8080
2.5 Cookie đoạn ngôn
> đương bao hàm mỗ cá cookie hòa trị đích thời hầu chấp hành
predicates:
- Cookie=name,yiming
2.6 Header đoạn ngôn
> đương bao hàm mỗ cá header hòa đối ứng đích trị đích thời hầu chấp hành
predicates:
- Header=reqId,9090\d+ # chính tắc biểu đạt thức \d+ sổ tự
2.7 Weight quyền trọng lộ do
> quyền trọng thị tương tương đồng đích thỉnh cầu phân phối đáo bất đồng đích phục vụ khí, Weight hậu đích đệ nhất cá tham sổ nhất trí đích thời hầu thông quá hậu diện đích sổ tự án chiếu bỉ lệ phân phối thỉnh cầu
- id: weight2 # giá cá id duy nhất tức khả
uri: http://localhost:12000
predicates:
- Path=/order/** # phóng vấn đích địa chỉ
- Weight=group1,2 # giá cá trị dụng lai khống chế phóng vấn đương tiền địa chỉ đích thời hầu hữu đa thiếu thỉnh cầu hội lai giá cá địa phương,group1 tùy tiện tả đích
- id: weight8 # duy nhất id
uri: http://localhost:12001
predicates:
- Path=/order/** # giá cá địa chỉ hòa thượng diện đích địa chỉ nhất dạng
- Weight=group1,8 # giá lí đích group1 yếu hòa thượng diện nhất dạng, tài hội thị vi nhất tổ nhu yếu quyền trọng hoa phân đích thao tác
2.9 Before thời gian lộ do
> chỉ định nhất cá thời gian, tại đương tiền thời gian chi tiền khả dĩ phóng vấn, khả dĩ dụng vu định thời đình cơ
predicates:
- Before=2022-04-19T00:05:00.789+08:00[Asia/Shanghai]
2.10 After thời gian lộ do
> chỉ định nhất cá thời gian, tại đương tiền thời gian chi hậu khả dĩ phóng vấn, khả dĩ dụng vu định thời khai khải
predicates:
- After=2022-04-19T00:05:00.789+08:00[Asia/Shanghai]
2.11 Between thời gian khu gian lộ do
> tại chỉ định đích thời gian khu gian nội khả dĩ phóng vấn
predicates:
- Between=2021-04-19T00:05:00.789+08:00[Asia/Shanghai],2022-04-19T00:05:00.789+08:00[Asia/Shanghai]
2.12 RemoteAddr
> tất tu lai tự vu mỗ cá địa chỉ phát khởi đích thỉnh cầu tài khả dĩ phóng vấn
predicates:
- RemoteAddr=192.168.1.1/24 # chú ý giá cá như quả thị bổn địa localhost trắc thí, tịnh thả thiết trí liễu Host=localhost na ma tựu vô pháp phóng vấn liễu, nhân vi thông quá localhost phục vụ đoan đắc đáo đích nhĩ đích ip thị 0:0:0:0:0:0:0:1, na tựu vô pháp thất phối giá cá địa chỉ liễu
Tam động thái chuyển phát
> thượng diện đích lệ tử trung ngã môn đích mục đích địa chỉ thị trực tiếp tả tử đích nhất cá phục vụ khí, thật tế khai phát trung khẳng định thị động thái tòng chú sách trung tâm trung hoạch thủ > > thử xử dĩ Eureka vi lệ tử, kỳ tha đích chú sách trung tâm chỉ nhu yếu thế hoán đối ứng đích chú sách trung tâm phối trí tức khả
3.1 chỉnh hợp chú sách trung tâm
3.1.1 thiêm gia eureka y lại
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
3.1.2 phối trí
> ngã môn nhu yếu cấp võng quan phối trí chú sách trung tâm đích vị trí, tịnh thả cáo tố gateway tòng chú sách trung tâm trung hoạch thủ phục vụ, nhu yếu tương url biến thành lb khai đầu đích hiệp nghị
spring:
application:
name: gateway
cloud:
inetutils:
ignored-interfaces: [ 'VMware.*' ] # kinh quá trắc thí, ngã môn phát hiện ngã môn đích điện não thượng tồn tại đa cá võng tạp đích thời hầu, trình tự chú sách đáo chú sách trung tâm đích thời hầu khả năng hội đái thác ip quá khứ, bỉ như bả hư nghĩ cơ đích võng tạp ip đái quá khứ liễu, như quả thị bổn cơ nội bộ sử dụng một vấn đề, đãn thị khoát cơ khí tựu bất hành liễu # hốt lược điệu ngã môn bất tưởng yếu đích võng tạp
gateway:
routes:
- id: 08consumer-eureka-feign # đương tiền lộ do sách lược đích duy nhất ID, khả dĩ tùy tiện tả
uri: lb://08CONSUMER-EUREKA-FEIGN #lb khai đầu đại biểu thị phụ tái quân hành, ý vị trứ nhu yếu tòng chú sách trung tâm hoạch thủ sổ cư, hoạch thủ đích thị đương tiền danh tự đích phục vụ địa chỉ
predicates: # phối trí đoạn ngôn, phù hợp hạ diện đoạn ngôn đích thỉnh cầu hội chuyển phát đáo thượng diện đích url, đoạn ngôn ngận đa chủng điều kiện
- Path=/order/** # đoạn ngôn đích điều kiện thị thỉnh cầu đích địa chỉ phù hợp giá cá biểu đạt thức, chú ý cách thức vi Path=/order/**
loadbalancer: # thiết trí phụ tái quân hành
ribbon:
enabled: false # thiết trí bất dụng ribbon đích phụ tái quân hành phương thức, nhân vi tha thị trở tắc đích, thiết trí vi false hậu hội tự động biến vi phi trở tắc
# phối trí chú sách trung tâm
eureka:
client:
service-url:
defaultZone: http://localhost:10000/eureka/
instance:
prefer-ip-address: true # tại chú sách trung tâm hiển kỳ đích thị ip, nhi bất thị cơ khí danh
> thượng diện đích phương thức thị nhân vi gateway trung hữu mặc nhận đích nhất cá