国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - springboot zuul實現網關的代碼

springboot zuul實現網關的代碼

2021-06-06 14:03張占嶺 Java教程

這篇文章主要介紹了springboot zuul實現網關的代碼,在為服務架構體系里,網關是非常重要的環節,他實現了很多功能,具體哪些功能大家跟隨小編一起通過本文學習吧

網關在微服務里的角色

在微服務架構體系里,網關是非常重要的一個環節,它主要實現了一些功能的統一處理,包括了:

  1. 統一授權
  2. 統一異常處理
  3. 路由導向
  4. 跨域處理
  5. 限流

實踐一下

1 添加依賴

?
1
2
3
4
5
6
dependencies {
  implementation('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
  implementation('org.springframework.cloud:spring-cloud-starter-netflix-zuul')
  testimplementation('org.springframework.boot:spring-boot-starter-test')
  implementation('com.marcosbarbero.cloud:spring-cloud-zuul-ratelimit:1.3.2.release')
}

2 添加yml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
server:
 port: 8300
spring:
 application:
  name: microservice-gateway-zuul
eureka:
 client:
  register-with-eureka: true
  fetch-registry: true
  service-url:
   defaultzone: http://localhost:6761/eureka
 instance:
  ip-address: true
zuul:
 routes:
  users:
    path: /lind/** #以lind開頭的路徑被重定向到lind服務
    serviceid: lind
 add-host-header: true #顯示真實的http頭
 retryable: false #關閉hystrix的重試功能
 ratelimit:
  enabled: true
  # repository: redis
  behind-proxy: true
  policies:
    users:
     limit: 5 #限流,每分鐘請求5
     refresh-interval: 60
     type:
      - user
      - origin
      - url
     #    url類型的限流就是通過請求路徑區分
     #    origin是通過客戶端ip地址區分
     #    user是通過授權用戶進行區分,也包括匿名用戶

 

3 添加實現代碼

http攔截器,獲取用戶id,為子服務進行傳遞

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class prerequestlogfilter extends zuulfilter {
 private static final logger logger = loggerfactory.getlogger(prerequestlogfilter.class);
 private final ratelimiter ratelimiter = ratelimiter.create(1000.0);
 @override
 public object run() {
  try {
   requestcontext currentcontext = requestcontext.getcurrentcontext();
   httpservletresponse response = currentcontext.getresponse();
   httpservletrequest reqeust = currentcontext.getrequest();
   currentcontext.addzuulrequestheader("userid","123");//向子系統http頭寫數據
   currentcontext.addzuulrequestheader("username","test");
   prerequestlogfilter.logger.info(
     string.format("send %s request to %s",
       reqeust.getmethod(),
       reqeust.getrequesturl().tostring()));
   if (!ratelimiter.tryacquire()) {
    httpstatus httpstatus = httpstatus.too_many_requests;
    response.setcontenttype(mediatype.text_plain_value);
    response.setstatus(httpstatus.value());
    response.getwriter().append(httpstatus.getreasonphrase());
    currentcontext.setsendzuulresponse(false);
    throw new zuulexception(
      httpstatus.getreasonphrase(),
      httpstatus.value(),
      httpstatus.getreasonphrase()
    );
   }
  } catch (java.lang.exception e) {
   reflectionutils.rethrowruntimeexception(e);
  }
  return null;
 }
 @override
 public boolean shouldfilter() {
  // 判斷是否需要過濾
  return true;
 }
 @override
 public string filtertype() {
  return filterconstants.pre_type;
 }
 @override
 public int filterorder() {
  return ordered.highest_precedence;
 }
}

在主程中注入這個過濾器

?
1
2
3
4
@bean
 public prerequestlogfilter prerequestlogfilter() {
  return new prerequestlogfilter();
 }

4 使用它

在url上通過localhost:8300/users/home 將進行lind服務里的home控制器下,并在http頭上寫入了userid和username這個鍵值對!

總結

以上所述是小編給大家介紹的springboot zuul實現網關,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://www.cnblogs.com/lori/p/9811526.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚州国产 | 国产精品久久久久久久 | 综合自拍偷拍 | 中文字幕一区在线 | 成人乱人乱一区二区三区 | 亚洲国产成人一区二区精品区 | 综合另类 | 羞羞视频免费网站 | 精品视频一区在线观看 | 日韩成人在线观看 | 99精品欧美一区二区三区 | 欧美精品在线观看 | 国产精品高清一区二区 | 成人a级网站 | 3344视频 | 91尤物网站网红尤物福利 | 色婷婷精品久久二区二区蜜臂av | 天堂av2020| 精品免费视频 | 国产中文字幕在线观看 | 久久久久久久久久国产 | 亚洲在线电影 | 亚洲字幕网 | 久久久久一区二区 | 精品久久久久一区二区国产 | 亚洲精品专区 | 伦理午夜电影免费观看 | 高清一区二区在线观看 | 中文在线一区 | 91久久久久久久久久久久久 | 国产日韩一区二区 | 久久久精品网站 | 免费在线黄色网址 | 色影视| av在线资源网 | 中文国产在线观看 | 天天干天天草 | av中文字幕在线播放 | 99热少妇 | 在线亚洲一区 | 一级免费av |