原创 【網絡編程】Netty中的編解碼之FixedLengthFrameDecoder定長解碼類

在進行 TCP 編程時,無論是客戶端還是服務器端,我們都需要考慮 TCP 的粘包/拆包問題。 TCP 是流協議,所謂流就是沒有界限的一串數據。TCP 底層是不知道上層業務邏輯含義的,只會根據 TCP 緩衝區的實際情況進行包的劃分。一個完善的

原创 【網絡編程】AIO編程

JDK1.7升級了NIO類庫,升級後的NIO類庫被稱爲NIO2.0。同時,Java正式提供了異步文件IO操作,同時提供給了與UNIX網絡編程事件驅動IO對應的AIO。 NIO2.0引入了新的異步通道的概念,提供了異步文件通道和異步套接字通道

原创 【網絡編程】NIO編程

NIO是jdk1.4引入的java.nio包,它提供了高速的、面向塊的IO。通過定義包含數據的類,以及通過塊的形式處理這些數據。NIO類庫包含緩衝區Buffer、多路複用選擇器Selector、通道Channel等新的抽象,可以構建多路複用

原创 【網絡編程】僞異步I/O編程

上次說了BIO編程。爲了解決同步阻塞I/O面臨的一個鏈路需要一個線程處理的問題,後來人們對它的線程模型進行了優化,服務器端通過一個線程池來處理多個客戶端的請求接入,形成客戶端個數M對應線程池N的比例關係。通過線程池可以靈活調配線程資源,設置

原创 【網絡編程】回顧BIO

最近兩三年一直使用的網絡編程框架是Netty,今天就來聊聊爲什麼使用Netty框架,爲什麼不使用Java原生的類庫。說到這,就需要把BIO、NIO、AIO梳理一遍。 網絡編程的基本模型是Client/Server模型,也就是兩個進程之間進行

原创 獻給第一次在Linux上操作MongoDB的朋友

大家好,我是娟姐。 最近有朋友問我,在Linux上操作MongoDB,爲什麼查不到自己創建的數據庫? 在Linux上操作MongoDB,確實和操作其他數據庫有點不一樣。作爲小白,少不了要走點彎路。 就拿Mysql來說,在連接Mysql時,就

原创 一個 Sql 語句引發的詭異事件

大家好,我是娟姐。 01 App內測的一個下午,測試組的小美女就向我反饋了一個事情。一個身在外地的小哥哥新註冊的賬號,他和小美女並無交集,但是他倆卻莫名成爲好友了。老闆聽聞後,直呼詭異。 “在兩點到四點之間,我都在忙別的事情,並未使用App

原创 Mysql 對字符串類型的數字排序

大家好,我是娟姐。 有一次對字符串類型的數字排序,怎麼排都排不出想要的效果,後來加了個0輕鬆解決。 最近又遇到了字符串類型的數字排序,可是在開會的時候,我卻記不清對於排序字段爲null的數據到底是排在最前面呢,還是排在最後面呢?後來,乾脆說

原创 下載速度與帶寬

大家好,我是娟姐。 最近有個手機端的App內測,Android系統的安裝包大小爲120MB。很多同事反映下載速度慢,半天都沒有下載好。而前端給了一個答案:網速問題。 到底是不是網速問題呢?下載速度和網速有什麼關係呢?帶着這個問題,開啓了此

原创 MySql主從庫複製原理

MySql主從庫讀寫分離,幾年前就開始應用,但是說到主從庫複製原理,你有了解過嗎?主從複製有幾種模式呢?每種模式的優缺點有哪些?這些可都是面試官愛問的問題呀。 MySql主從庫複製主要有三種模式:異步複製、全同步複製、半同步複製。 一、異步

原创 Mysql主從同步校驗 與 恢復從庫丟失的數據

背 景 前天剛把Mysql從庫的同步開關(啓動I/O線程和啓動SQL線程)恢復正常,但是遺留問題還需要處理一下,也就是如何校驗主從庫同步與恢復從庫丟失的數據。 當然爲了防止有人在從庫寫入數據,我也對從庫用戶的權限做了限制,開放的從庫賬戶是沒

原创 Mysql主從庫 數據不同步 解決記錄

背 景 週五快下班的時候,同事對我說線上的主從庫不能同步了。線上服務器也就我一個人維護,難道是我做的好事?最後一次維護主從庫,還是一年前在Linux系統上安裝主從庫。 上次主從庫不同步發生在兩年前的測試環境。而測試環境是windows系統,

原创 Mysql優化調查,從單庫優化到分庫、分表 MySQL 上億大表如何優化? SpringBoot + Sharding JDBC 分庫分表

背景 在中小型項目的開發中,一般還是使用單一的數據庫。在數據庫的數據量不多的時候,sql語句想怎麼寫就怎麼寫,不要太任性。數據量一多,查詢慢,連接超時,連接數不夠等等各種問題湧現出來。怎麼辦呢?優化吧!今天就來說說關於數據庫應該怎麼優化的思

原创 重構代碼,使用抽象類,還是接口?

問題描述 在代碼重構時,我們經常會遇到這樣一個問題,對於多個相似的類,需要把通用的或共同的行爲抽離出來,到底應該抽象成類,還是接口?想要確定結果,還需再溫習一下抽象類和接口的概念,以及它們之間的異同。 一、抽象類 1、抽象類(Abstrac

原创 如何跟蹤 用戶地理位置 的調查 如何通過IP地址獲取城市信息:

最近有個需求,需要獲取手機App端用戶的地理位置,不需要太精確,能獲取到市就可以了。但是由誰來獲取呢?服務器端還是客戶端? 一、手機App端獲取 經過調查,手機App端可以通過兩種方式獲取地理位置,GPS 和 LBS 。 GPS(Glo