1 講一下java內(nèi)存分區(qū),垃圾回收的過程
2 completeFuture了解過嗎,有用過ThreadLocal嗎
completeFuture 可以接收異步的返回值。
ThreadLocal的 兩個典型使用場景。
1)ThreadLocal 用作保存每個線程獨享的對象,為每個線程都創(chuàng)建一個副本,每個線程都只能修改自己所擁有的副本, 而不會影響其他線程的副本,這樣就讓原本在并發(fā)情況下,線程不安全的情況變成了線程安全的情況。
2)ThreadLocal 用作每個線程內(nèi)需要獨立保存信息的場景,供其他方法更方便得獲取該信息,每個線程獲取到的信息都可能是不一樣的,前面執(zhí)行的方法設(shè)置了信息后,后續(xù)方法可以通過 ThreadLocal 直接獲取到,避免了傳參。
3 為什么要用ES,有什么特點
ES適用于大數(shù)據(jù)量的多維度查詢,常用于電商項目的用戶數(shù)據(jù)搜索,訂單數(shù)據(jù)搜索,商品數(shù)據(jù)搜索等。像分表分庫項目,如果要根據(jù)非分表分庫字段去查詢數(shù)據(jù),基于es的話可以直接多維度查詢,基于數(shù)據(jù)庫的話需要冗余關(guān)系表,或基于基因法插入。

4 了解K8S嗎
5 壓測后做了什么優(yōu)化
常見問題

優(yōu)化手段
- 調(diào)整堆大小,減少GC
- 優(yōu)化慢查詢sql
- 串行改成并行
- 優(yōu)化服務(wù)器配置,擴容
- 日志打印要細密且規(guī)范,便于定位問題
- RPC 調(diào)用過多,優(yōu)化服務(wù)調(diào)用次數(shù)
- 分布式鎖是否沒設(shè)置釋放,沒設(shè)置過期時間
6 高可用的方案
1)主從切換:當其中一臺機器的服務(wù)宕機后,對于調(diào)用者來說,能夠迅速的切換到其他可用服務(wù),從服務(wù)升級為主服務(wù),這種切換速度應(yīng)當控制在秒級別。
當宕機的服務(wù)恢復(fù)之后,自動變?yōu)閺姆?wù),主從服務(wù)角色切換。主從切換一定是要付出代價的,所以當主服務(wù)恢復(fù)之后,也就不再替換現(xiàn)有的主服務(wù)。
2)集群:請求量比較大,單臺服務(wù)不能滿足需要,此時需要多臺機器提供同樣的服務(wù),將所有請求分發(fā)到不同機器上
3)數(shù)據(jù)庫:一主多從,讀寫分離
4)Redis:主從復(fù)制,讀寫分離

7 了解什么RPC框架,RPC框架的組成,RPC的通訊方式
RPC(Remote Procedure Call):遠程過程調(diào)用
- Socket網(wǎng)絡(luò)編程。TCP/IP協(xié)議是傳輸層協(xié)議,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸,而HTTP是應(yīng)用層協(xié)議,主要解決如何包裝數(shù)據(jù)。
- I/O模型:BIO(同步并阻塞)、NIO(同步非阻塞)、AIO(異步非阻塞)
8 微服務(wù)架構(gòu)有什么關(guān)鍵組成部分
微服務(wù)架構(gòu)設(shè)計的核?思想就是“微”,拆分的粒度相對?較?,這樣的話單?職責、開發(fā)的耦合度就會降低、微?的功能可以獨?部署擴展、靈活性強,升級改造影響范圍?。
微服務(wù)架構(gòu)的優(yōu)點
微服務(wù)很?,便于特定業(yè)務(wù)功能的聚焦 A B C D
微服務(wù)很?,每個微服務(wù)都可以被?個?團隊單獨實施(開發(fā)、測試、部署上
線、運維),團隊合作?定程度解耦,便于實施敏捷開發(fā)
微服務(wù)很?,便于重?和模塊之間的組裝
微服務(wù)很獨?,那么不同的微服務(wù)可以使?不同的語?開發(fā),松耦合
微服務(wù)架構(gòu)下,我們更容易引?新技術(shù)
微服務(wù)架構(gòu)下,我們可以更好的實現(xiàn)DevOps開發(fā)運維?體化;
微服務(wù)架構(gòu)的缺點
微服務(wù)架構(gòu)下,分布式復(fù)雜難以管理,當服務(wù)數(shù)量增加,管理將越加復(fù)雜;
微服務(wù)架構(gòu)下,分布式鏈路跟蹤難等;
服務(wù)要注冊到注冊中心,網(wǎng)關(guān)做統(tǒng)一的轉(zhuǎn)發(fā)

9 接口如何限流防刷?
- 定義一個攔截器進行統(tǒng)一的攔截,每次點擊之后,在緩存中生成一個計數(shù)器,第一次將這個計數(shù)器置1后存入緩存,并給其設(shè)定有效期。每次點擊后,取出這個值,計數(shù)器加一,如果超過限定次數(shù),就拋出業(yè)務(wù)異常。
場景:校驗驗證碼防爆破,x秒內(nèi)不能連續(xù)錯誤超過n次 - 加分布式鎖
- 基于Sentinel配置接口的QPS
- 針對單個?戶刷單防控,可以進行用戶黑名單管理,沒命中黑名單才能往下請求
10 如何解決重復(fù)下單?
使用分布式鎖 Redisson 分布式鎖

11 消息隊列的作用
