如何利用redis來進行分散式叢集系統的限流設計
【本文轉自部落格園 作者:張永清 原文連結:https://www.cnblogs.com/laoqing/p/9190430.html】
在很多高併發請求的情況下,我們經常需要對系統進行限流,而且需要對應用叢集進行全域性的限流,那麼我們如何類實現呢。
我們可以利用redis的快取來進行實現,並且結合mysql資料庫一起,先來看一個流程圖。
這個就是一個典型的對http請求進行全侷限流的流程圖。
入口透過請求攔截器進行攔截(filter)。
來看程式碼片段,這個程式碼片段就是一個標準的filter(我們這裡基於springboot來定義filter)
我們需要做全侷限流時,就需要用到redis了。在redis中,可以將限流配置定義為
redis key:介面名稱(或者url)_limit
value:map,key:appid(業務id),value:限流大小
就做到配置的快速讀取。
限流的配置定義完後,那麼就需要定義限流的計數了。可以定義為
redis key:介面名稱(或者url)_count
value:map,key:appid(業務id),value:計數值
一個好的限流設計,還需要能做到對限流配置的實時進行更改和動態的配置。那我們就來看如何實現呢
下面就是一個限流配置的新增流程。我們可以將改新增配置定義成一個介面或者頁面上的一個功能。就能做到配置的實時增加。
最後我們再來看下配置的修改和限流配置的刪除
總結:
我們充分利用redis的快取配置以及做了限流時,儘量不要影響到系統的整體效能。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31137683/viewspace-2156339/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分散式系統與叢集環境分散式
- 分散式檔案系統(FastDFS)叢集分散式AST
- Redis面試題及分散式叢集Redis面試題分散式
- 軟體系統的架構演進以及叢集和分散式架構分散式
- 資料來源管理 | 分散式NoSQL系統,Cassandra叢集管理分散式SQL
- 搭建分散式 Redis Cluster 叢集與 Redis 入門分散式Redis
- 使用TLA +進行分散式系統的建模與除錯設計分散式除錯
- 使用Redis進行限流Redis
- 比Redis-cluster還好的redis分散式叢集(twemproxy代理)Redis分散式
- 分散式kv儲存系統之Etcd叢集分散式
- java程式設計師進階:Redis分散式技術問題集錦Java程式設計師Redis分散式
- 應用級叢集系統的設計
- ElasticSearch 分散式叢集Elasticsearch分散式
- 如何系統的進行改版設計(上)
- 從Elasticsearch來看分散式系統架構設計Elasticsearch分散式架構
- 分散式系統設計策略分散式
- 分散式系統程式設計分散式程式設計
- 億級Web系統搭建——單機到分散式叢集Web分散式
- 億級Web系統搭建:單機到分散式叢集Web分散式
- 分散式與叢集的困惑分散式
- 分散式搜尋系統的設計分散式
- 分散式系統設計的求生之路分散式
- Redis叢集環境下的-RedLock(真分散式鎖) 實踐Redis分散式
- golang分散式與叢集Golang分散式
- elasticsearch(三)---分散式叢集Elasticsearch分散式
- HA分散式叢集搭建分散式
- hbase分散式叢集搭建分散式
- HDFS分散式叢集搭建分散式
- 【Redis】利用 Redis 實現分散式鎖Redis分散式
- elasticsearch如何設計叢集Elasticsearch
- 分散式限流分散式
- 保障IDC安全:分散式HIDS叢集架構設計分散式架構
- 分散式與叢集的區別分散式
- mongodb的分散式叢集(3、分片)MongoDB分散式
- 探索Redis設計與實現15:Redis分散式鎖進化史Redis分散式
- 基於 Redis 實現分散式應用限流Redis分散式
- 解析分散式系統的快取設計分散式快取
- 分散式系統的設計與開發分散式