日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

支付宝-蚂蚁金服一面

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 支付宝-蚂蚁金服一面 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019.5.20中午

一通電話,小哥哥電話打來

記錄下問題把

1自我介紹

2介紹下你的項目的閃光點把,我說了中心賬戶系統,他問我做這個的目的是為了什么?

其實做這個沒什么目的,因為要對接ssp,ssp不是我們的,但是我們有幾個子系統是要對接ssp的,因此拿著人家的接口文檔,

在搭出一個中間的服務啦,不想總是去看ssp,直接調用我中心賬戶的,是不更好一些,同時我作為數據透傳方,我必須要保證自己的安全啊,

3索引的優缺點?所以底層的數據結構?b樹和b+樹有區別嘛?選哪一個?

索引的優點

1.通過創建唯一索引,可以保證數據庫每一行數據的唯一性2.可以大大提高查詢速度3.可以加速表與表的連接4.可以顯著的減少查詢中分組和排序的時間。

索引的缺點

1.創建索引和維護索引需要時間,而且數據量越大時間越長2.創建索引需要占據磁盤的空間,如果有大量的索引,可能比數據文件更快達到最大文件尺寸3.當對表中的數據進行增加,修改,刪除的時候,索引也要同時進行維護,降低了數據的維護速度

4問了快排,讓說一下思想?穩定排序和非穩定排序?快排屬于哪一個?

設要排序的數組是A[0]……A[N-1],首先任意選取一個數據(通常選用數組的第一個數)作為關鍵數據,然后將所有比它小的數都放到它左邊,所有比它大的數都放到它右邊,這個過程稱為一趟快速排序。值得注意的是,快速排序不是一種穩定的排序算法,也就是說,多個相同的值的相對位置也許會在算法結束時產生變動

一趟快速排序的算法是:

1)設置兩個變量i、j,排序開始的時候:i=0,j=N-1;

2)以第一個數組元素作為關鍵數據,賦值給key,即key=A[0];

3)從j開始向前搜索,即由后開始向前搜索(j--),找到第一個小于key的值A[j],將A[j]和A[i]的值交換;

4)從i開始向后搜索,即由前開始向后搜索(i++),找到第一個大于key的A[i],將A[i]和A[j]的值交換;

5)重復第3、4步,直到i=j; (3,4步中,沒找到符合條件的值,即3中A[j]不小于key,4中A[i]不大于key的時候改變j、i的值,使得j=j-1,i=i+1,直至找到為止。找到符合條件的值,進行交換的時候i, j指針位置不變。另外,i==j這一過程一定正好是i+或j-完成的時候,此時令循環結束)。

5用過redis?redis數據結構說下?,說一下hash的過期策略,如果都沒到期怎么刪除?

配置一下redis唄

【過期策略+內存淘汰機制】

名詞解釋
過期策略:即redis針對過期的key使用的清除策略,策略為,定期刪除+惰性刪除
內存淘汰機制:即內存占用達到內存限制設定值時觸發的redis的淘汰策略來刪除鍵


【過期策略】
定期刪除,redis默認每隔100ms檢查,是否有過期的key,有過期key則刪除。需要說明的是,redis不是每隔100ms將所有的key檢查一次,而是隨機抽取進行檢查(如果每隔100ms,全部key進行檢查,redis豈不是卡死)。因此,如果只采用定期刪除策略,會導致很多key到時間沒有刪除。

惰性刪除,也就是說在你獲取某個key的時候,redis會檢查一下,這個key如果設置了過期時間那么是否過期了?如果過期了此時就會刪除。

過期策略存在的問題,由于redis定期刪除是隨機抽取檢查,不可能掃描清除掉所有過期的key并刪除,然后一些key由于未被請求,惰性刪除也未觸發。這樣redis的內存占用會越來越高。此時就需要內存淘汰機制

【內存淘汰機制】
redis配置文件中可以使用maxmemory <bytes>將內存使用限制設置為指定的字節數。當達到內存限制時,Redis會根據選擇的淘汰策略來刪除鍵。(ps:沒搞明白為什么不是百分比)

策略有如下幾種:(LRU的意思是:Least Recently Used最近最少使用的,LFU的意思是:Least Frequently Used最不常用的)

volatile-lru -> Evict using approximated LRU among the keys with an expire set.
????????????????????在帶有過期時間的鍵中選擇最近最少使用的。(推薦)
allkeys-lru -> Evict any key using approximated LRU.
????????????????????在所有的鍵中選擇最近最少使用的。(不區分是否攜帶過期時間)(一般推薦)
volatile-lfu -> Evict using approximated LFU among the keys with an expire set.
????????????????????在帶有過期時間的鍵中選擇最不常用的。
allkeys-lfu -> Evict any key using approximated LFU.
????????????????????在所有的鍵中選擇最不常用的。(不區分是否攜帶過期時間)
volatile-random -> Remove a random key among the ones with an expire set.
????????????????????在帶有過期時間的鍵中隨機選擇。
allkeys-random -> Remove a random key, any key.
????????????????????在所有的鍵中隨機選擇。
volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
????????????????????在帶有過期時間的鍵中選擇過期時間最小的。
noeviction -> Don't evict anything, just return an error on write operations.
????????????????????不要刪除任何東西,只是在寫操作上返回一個錯誤。默認。
?

6你有什么問題?我問了支付寶是怎么保證他的服務穩定的?我還問了轉賬怎么保證的?

小哥哥跟我說了一堆,包括架構重構,一些中間件redis,mongodb,還說了實時監控,報警之類的,分布式等等,

怕是涼了啊。。。。。。。。。。。。。。。。。

【我自己說下保證服務穩定的思路吧】

dns:一域名映射多ip,每個ip上都是一個nginx,每個nginx都反向代理,

?公司的技術總監最近出了一道架構方面的問題讓我們同組的開發人員設計,題目是這樣的:有個簽到功能,需要記錄每個?戶每年每?天的簽到情況。假設?戶量在千萬,甚?億級,該如何設計。

思考這個問題后,我給出的設計方案如下:

第一層:通過DNS,同一個域名綁定多個IP,在DNS上進行負載均衡。

第二層:中央Nginx集群,通過DNS負載均衡后,通過nginx二次負載均衡(Nginx的配置需要根據服務器配置調整,比如連接數,進程數等);

第三層:web層,將應用部署在多個節點上。

第四層:消息引擎層,將上層數據寫入消息引擎中,consumer端將數據異步入庫,建議使用kafka,吞吐量大。

第五層:數據庫層,數據量龐大,傳統的關系型數據庫已經不太適用,即使通過水平分庫分表,按日期或按userid分庫,也很難解決存儲和跨多庫的查詢問題。可以考慮使用MongoDB或大數據技術(HDFS和HBASE)來存儲簽到數據。

不知道合不合理,但總的設計理念是:負載均衡+異步。同時也要在Nginx和Linux內核方面進行優化,以抵抗更大的壓
7中間件你都用過什么?

mq,redis,負載均衡中間件nginx,數據中間件mqI(消息中間件),redis,應用服務器中間件tomcat

總結

以上是生活随笔為你收集整理的支付宝-蚂蚁金服一面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。