原创 5.查詢性能優化

緩存設計 對於緩存設計,有幾個原則: 用快速存取設備,例如內存 將緩存推到離用戶最近的地方 髒緩存清理,也就是數據庫變化後,緩存內的數據也要同步更新 多級緩存 redis緩存 對於redis,不同太多介紹了。這裏介紹一下單機版和senti

原创 7.關於cdn、頁面靜態化

我們之前一直都在介紹動態請求的加速,接下來講一下靜態請求,也就是cdn。 當請求來到服務器上時,如果是訪問靜態資源,那麼就將請求解析到cdn加速域名中,再由cdn(海量的就近加速節點)就近看有沒有存靜態資源,有的話直接返回,沒有的話去指定

原创 10.秒殺削峯泄洪策略

關於削峯技術,常用場景例如秒殺。爲什麼要流量削峯?之所以叫秒殺,也就是第一秒的時候流量涌入的問題,瞬時流量變大可能對機器造成影響,因此我們需要把第一秒的流量平滑的過度掉,削弱峯值,把流量平滑的過渡到第二秒或者後面,讓系統性能有平滑的提升。

原创 4.會話管理

基於cookie傳輸sessionid:java tomcat容器session實現 對於傳統實現,我們經常會用cookie來傳輸session,將登錄狀態等信息傳到request的session中。 基於token傳輸類似session

原创 6.nginx的共享字典、redis實戰簡介

首先創建一個lua文件 ngx.log(ngx.ERR,"lua sucess"); 在nginx配置文件中加: 啓動nginx: 也就是說這個腳本會在nginx啓動的時候執行。當然,一般用的不多,用的更多的是content_by_

原创 9.交易性能優化-事務型消息

之前我們說了一個場景,在交易合法性驗證後開始扣減庫存,用mq來更改數據庫,然後進行訂單處理。但是這樣有個問題就是,如果之後處理訂單的時候出問題了,那麼之前mq發的消息撤不回來,數據已經改了,那肯定就有問題了。基於這個情況,我們有一個簡單的

原创 2.nginx分佈式擴展

通過單機壓測可以看到,吞吐量在200-300之間,對於服務器的數據庫也有較大的壓力。 nginx反向代理負載均衡 在單機的情況下,容量總歸有上限,對於我們看服務器後臺進程情況,有這樣一個圖: 表象上:單機cpu使用率增高,內存佔用增加

原创 1.springboot壓測調優

通過壓測可以找到服務器的上限, ps -ef |grep java找到java的進程號,然後通過pstree -p 12569 | wc -l可以看到當前java的線程數。當我們的壓測到達一定數量的時候,請求會報錯: 這是可以去看下線程

原创 3.nginx長連接優化

在單機的情況下的壓測結果:  分佈式的壓測結果: 雖然tps還是比較少,但是還是有提升,主要是因爲數據庫的服務器的配置是很低的,所以擴展這裏其實就更有幫助,這裏就不再修改了。  而對於nginx和服務之間的連接還是短連接,所以還是有性

原创 mysql性能優化

通用性能優化 關於通用性能優化,是在緩存、異步、批處理的範疇做優化。 批處理 關於mysql的應用優化(這裏都是指innodb): 寫操作:批量insert、批量update。解釋一下,例如一個支付場景,一個用戶買了多個商品,一般我們會循

原创 Redis數據結構的命令

String字符串 set a a:插入 setex b 100 b:以秒單位設置超時時間 psetex c 10000 c:以毫秒爲單位設置超時時間 getrange haozi 0 2:拿key爲haozi的第0到第2個字符 gets

原创 Spark,ALS、LR、GBDT應用

之前說了很多機器學習,接下來講下Spark,Spark是爲大規模數據處理而設計的快速通用的計算引擎。他有很多的庫,例如Spark core、Spark Sql、Spark on Hive、Spark Streaming等。還有機器學習庫例

原创 機器學習簡介,ALS、LR

市面上的主流app,大多數情況下不同的用戶看到的頁面都是不同的,這裏面就有一個推薦的因素了。 那麼我們如果想要做推薦,首先需要實現的當然是千人千面,也就是不同的人推薦展示的內容是不一樣的,再有就是需要根據場景去推薦。 推薦的方法 基於規則

原创 ElasticSearch(7)

定製化中文分詞器 對於搜索引擎來說,很多詞都屬於專有名字,比如凱悅,這是一個品牌,而對於分詞器來說並不知道,所以對於凱悅的分詞會是把兩個字分開: 因此,我們需要定製分詞詞庫。 擴展專有名詞 首先來到es的config\analysis-

原创 ElasticSearch(6)

Java代碼接入 java接入的方式有三種: Node接入:java用nodeAPI的方式,以es中一個node節點接入項目。 比如一個es集羣有123三個節點,node接入的方式是指java把自己變成一個節點4,因爲自己變成了節點,自然