1. 程式人生 > >服務化之後本地和遠端快取的應用

服務化之後本地和遠端快取的應用

經過服務化之後,拆分出的使用者中心,經過一段時間的監控,發現幾個問題:
1.每天的呼叫次數大約在2-3億之間
2.60%的呼叫集中在TOP100個介面之中
3.使用者中心的memcached壓力在使用者中心的執行緒排在第一個
4.個別介面成為了服務化過程中的瓶頸
5.memcached使用過程中監控到資料每天有幾千次的超時呼叫,導致服務最大單次耗時被拉長
6.網路開銷
7.序列化與反序列化,在快取中的開銷

通過分析針對現有快取模型進行了重構,加入一層本地快取
解決思路:減少dubbo請求,把一些不易改變且訪問量巨大的資料快取在本地,通過多級快取的模式,從而提升系統性能。

在分散式叢集的環境下,要解決上述的問題把問題拆分成:
1)如何管理本地快取資料
2)如何同步各節點間的資料
3)如何監控本地快取使用情況,最終反應的資料我們需要重新採集和分析。 1.引用本地快取Ehcahe,簡單快速,很好的繼承現有的spring,速度比memcached快非常的多。
2.改造現有應用,由於現有介面都是保持不變,只要增加新的模板即可解決,對於省平臺的重構將會非常小,並且是可控的
3.為了解決節點間的同步:
1)剛開始我們採取的策略是通過zookeeper的特性,進行節點監聽,然後master做分發,但是使用後發現問題(什麼問題 你懂的)
2)為此我們引入了activemq,省平臺已經集成了這個中介軟體,所以基本上增加一些配置就能為我們所有,這裡最重要的也是本次改造的一個關鍵,通過mq的訂閱模式(區別於我們一直使用佇列模式),來解決節點的分發 4.最後我們需要動態的對線上的節點進行監控,我們選擇zookeeper的特性,通過寫入監控資料,然後統一採集,來分析我們線上快取的一個使用情況,比如:命中率,呼叫次數,快取堆大小等

技術交流群: 534368042

相關推薦

服務化之後本地遠端快取應用

經過服務化之後,拆分出的使用者中心,經過一段時間的監控,發現幾個問題:1.每天的呼叫次數大約在2-3億之間2.60%的呼叫集中在TOP100個介面之中3.使用者中心的memcached壓力在使用者中心的執行緒排在第一個4.個別介面成為了服務化過程中的瓶頸5.memcached使用過程中監控到資料每天有幾千次的

git刪除遠端分支本地分支以及更改本地分支名字 git-更改本地遠端分支的名稱

問題描述:       當我們集體進行專案時,將自定義分支push到主分支master之後,如何刪除遠端的自定義分支呢 問題解決:        (1)使用命令git branch -a 檢視所

將jar打包上傳到本地遠端maven倉庫

mvn install:install-file -Dfile=C:\Users\Administrator\Desktop\SH深圳航空\jar\szhk-sms-1.0.0.jar -DgroupId=com.szhk.sms -DartifactId=szhk-sms -Dversion=

git 處理本地遠端衝突

轉載:https://www.cnblogs.com/huanyou/p/6654813.html  一、問題   當原生代碼和遠端程式碼有衝突的時候,執行git pull操作的時候,會提示有衝突,然後直接終止本次pull,查了些資料沒有找到強制pull的方式,但是可以使用如下方式

一種嵌入式linux本地遠端升級程式的方法

    嵌入式linux裝置要進行軟體升級有很種多方式方法,總的來說可以分為本地升級和遠端升級。本地升級包括升級工具升級,儲存介質升級等,遠端升級是指通過網路進行程序升級。這裡介紹一種同時至此本地和遠端升級的方法,以供參考。 本地升級:     (1)升級工具升級  

git 重新命名本地遠端分支

#重新命名本地分支 git branch -m oldBranchName newBranchName #刪除遠端分支 git push origin --delete oldOriginBranchName #取消本地分支和遠端分支的關聯 git branch --unse

CentOS7 + Phpstorm + Xdebug本地遠端除錯配置教程大全

疑難雜症,可以通過伺服器端的xdebug.remote_log進行診斷處理。 一、前言 初學PHP語言,一般會推薦notepad++等編輯器進行開發。但是入門之後,使用phpstrom等IDE好處多多,比如學習一些框架的時候,斷點除錯對於理解框架的

CentOS7 +Nginx + Phpstorm + Xdebug本地遠端斷點除錯配置教程

一、系統說明本篇使用vmware安裝CentOS 7(下文簡稱虛機)搭建的Nginx伺服器開發機配置的是Nginx + php7.1.14環境搭建這裡不再贅述二、Xdebug的安裝開啟網址:https://xdebug.org/wizard.php執行php - i ,將結果

基於Spark2.0搭建Hive on Spark環境(Mysql本地遠端兩種情況)

Hive的出現可以讓那些精通SQL技能、但是不熟悉MapReduce 、程式設計能力較弱與不擅長Java語言的使用者能夠在HDFS大規模資料集上很方便地利用SQL 語言查詢、彙總、分析資料,畢竟精通SQL語言的人要比精通Java語言的多得多。Hive適合處理離線非實時資料。h

linux命令 - scp:在本地遠端之間拷貝檔案

scp命令詳解 - 掃地僧--神龍冠日 - 部落格園http://www.cnblogs.com/likui360/p/6011769.html 開發板linux到虛擬機器linux間的檔案傳輸——scp指令與本地地址的配置 - Leaviathan的部落格 - CSDN部落格https://b

isql登陸本地遠端sybase資料庫

1,登陸本地資料庫 isql -U username -P password #isql -U 使用者名稱 -P 密碼 2,登陸遠端資料庫 isql -U username -P pass

github刪除本地遠端倉庫資料夾

1、在要刪除檔案的上一級目錄中,按住shift,點選滑鼠右鍵,然後選擇  在此處開啟命令視窗。然後開啟的命令視窗是直接在該目錄的。2、輸入   git rm -r 檔名3、輸入   git commit -m"delte 檔名"4、輸入   git push這樣操作的好處就是

使用jvisualVm監控本地遠端的jvm

jvisualVm是jdk自帶的視覺化監控工具,功能很強大,可安裝各種擴充套件外掛。本篇不打算講解如果使用詳細的功能,只講在windows環境怎麼監控本地和遠端(一般是無介面的linux系統)的java程序。 1、在遠端機器上新增許可權策略檔案      在伺服器{JAV

scp在本地遠端端傳送檔案

1.將本地檔案上傳到服務端 scp -p 22 /home/lnmp.gz [email protected]:/usr/local/src/lnmp.gz 2.將本地目錄上傳到遠端服務端

phpstorm + xdebug 本地遠端伺服器的使用

我們在本地開發時避免不了使用var_dump和echo這些函式除錯程式碼,但是我們程式碼裡面有時判斷很多,經常要在許多地方寫很多var_dump和echo,這樣其實也沒什麼,個人有個人的喜好,我在沒有使用xdebug時,也喜歡這樣除錯程式碼,但自從用了xdebu

【Git入門】idea整合git操作(本地遠端共享倉庫-GitHub的使用)

idea配置git 一、簡單使用 - 本地共享倉庫 1.客服端 這邊 先建立庫 - 放入專案 新建一個資料夾hello裡面放專案   URL是上面的倉庫路徑:C:\Users\Administrator\Desktop\test\Git\r

php如何判斷檔案是否存在,包括本地遠端檔案

當檢查的檔案是本地時用php自帶的file_exists檢查就行了,而此函式只能檢查本地的函式是否存在, 所以如果要檢查遠端的檔案是否存在只能用其它的方法了。 如果所伺服器中php的配置開啟了“allow_url_fopen = On”,即允許遠端訪問,那麼也很簡單,其實這

C#程式設計之 如何獲取本地遠端主機的IP及MAC地址

利用dns類和WMI規範獲取IP及MAC地址 在C#程式設計中,要獲取主機名和主機IP地址,是比較容易的.它提供的Dns類,可以輕鬆的取得主機名和IP地址.  示例: string strHostName = Dns.GetHostName();  //得到本機的主機名 IP

git 刪除導致本地遠端倉庫不同步解決

使用git版本控制時,開始時對git不熟悉,導致了一些問題。 https://github.com/wolfpython/nids 比如在nids倉庫中,開始新建了很多文件,但是後來發現很凌亂,刪掉了不少:$rm devdoc member_list 本來在刪除時,應儘量使用git rm命令來操作,但是如果

shell自動備份檔案或目錄到本地遠端主機

#!/bin/bash #Function:Automatically backup a given list of directories  #or files, and can retain the N day backup files. #Can be back to