TCL實業控股股份有限公司社招Java工程師(二)

  • 2019 年 11 月 7 日
  • 筆記

作者:KamiaMirage

鏈接:https://www.nowcoder.com/discuss/334052?type=2&order=3&pos=34&page=1

來源:牛客網

千篇一律的自我介紹和寒暄就省略了,……

主要還是技術棧和項目的結合。

簡歷上畢竟寫了微服務和分佈式相關,(當然這也是為了迎合招聘啟事要求嘛),所以目標的博弈放在了項目經驗分佈式技術棧。

你了解MySQL引擎?—————主要的兩種ISAM和InnoDB。ISAM是索引序列訪問,所以數據庫被查詢的次數大於更新次數的場景下更實用,缺點就是不支持事務,不能夠容錯,所以使用的時候必須經常備份。MyISAM是ISAM的擴展格式,加入了表格鎖定的機制,來優化多個並發讀寫操作。使用該引擎會生成三個文件:.frm表結構信息;.MYD數據文件;.MYI表的索引信息。 InnoDB包含了對事務處理和外來鍵的支持……。

關於操作存儲引擎的命令?————–查看數據庫支持的存儲引擎:show engines 查看數據庫當前使用的存儲引擎:show variables like '%storage_engine%' 或者數據庫中的配置文件。查看數據庫表所用的存儲引擎:show create table table_name。創建表指定存儲引擎:create table table_name(column_name column_type)engine=engine_name。修改表的存儲引擎:alter table table_name engine=engine_name。修改默認的存儲引擎: 修改配置文件window下my.ini, Linux下my.cnf default-storage-engine=INNODB

關於索引的管理?————–創建、查看、刪除等相關操作的命令……

對於MySQL中的SQL常見的優化策略?——–避免全表掃描where或者order by涉及的子句列上建立索引,……這個具體在關鍵字上的子句找相關資料吧……

聊項目,dubbo的應用架構和傳統架構的拆分、異同、改造、部署環境的規劃……—————-略

談一下對dubbo的認識和使用場景?———–說白了就是談談為什麼項目要引入dubbo這麼個組件。可以從分佈式業務中的遠程調用的技術瓶頸來闡述,dubbo和spring框架配合搭建一個RPC服務框架,替代F5等硬件負載均衡器,服務自動註冊與發現,註冊中心基於接口名查詢服務提供者的IP地址。……

dubbo的核心功能?——遠程網絡通信,服務架構基於接口方法的透明遠程調用,基於註冊中心目錄服務……

dubbo的核心組件?服務註冊與發現流程?——-Provider暴露服務提供方,Consumer調用遠程服務的消費方,Registry服務註冊於發現的註冊中心,Monitor統計服務的調用時間,Container服務運行容器。最好畫個草圖來闡述……

dubbo和springclond的架構區別和優劣?———-dubbo架構上,上面已經說明了。對於SpringCloud架構的註冊中心為Eureka Server,springcloud除了實現服務治理還覆蓋了其他組件功能,論功能範圍springcolud更勝一籌。協議方面,dubbo使用RPC通訊協議,Springcloud使用了HTTP協議中的REST API……

你了解哪些消息中間件?——–既然引入了消息隊列,那肯定要對市面上的一些中間件進行調研……並發量、維護周期、定製功能(kafka日誌採集功能)……

你們公司的生產環境用的是什麼中間件引入中間件的意義?——結合項目來說……解耦、異步、削峰……

使用消息隊列會有哪些缺點?—–可用性上消息隊列的宕機、以及消息中間件導致的消息丟失、數據一致、數據重複、數據順序……一系列新問題。

既然有了問題,那如何規避和解決上述問題呢?——–高可用方面,Master和Slave的選舉;數據重複消費,數據庫的唯一主鍵……;數據丟失,區分生產者丟失和消息隊列丟失以及消費者丟失數據……

其他非技術寒暄———略……

總結:數據庫方面、以及消息中間件、分佈式架構……的技術棧。