原创 Lucene高級技術

Lucene存儲結構 Lucene的索引結構是有層次結構的,主要分爲以下幾個層次: 索引(Index) 一個目錄一個索引,在Lucene中一個索引是放在一個文件夾中的。同一個文件夾中的文件構成一個Lucene索引 段(Segment

原创 Lucene從入門到實戰

Lucene 在瞭解Lucene之前,我們先了解下全文數據查詢。 全文數據查詢 我們的數據一般分爲兩種:結構化數據和非結構化數據 結構化數據:有固定格式或有限長度的數據,如數據庫中的數據、元數據 非結構化數據:又叫全文數據,指不定長或無固

原创 你不知道的MySQL第三方運維工具

Yearning 1.1 Yearning簡介 Yearning開源的MySQL SQL語句審覈平臺,提供數據庫字典查詢、查詢審計、SQL審覈等多種功能。 Yearning 1.x版本需要Inception提供SQL審覈及回滾功能 Inc

原创 MyCat應用實戰

下載Mycat https://github.com/MyCATApache/Mycat-Server/releases Mycat基礎分庫 基礎配置 修改server.xml <user name="root" defaultAcco

原创 Mycat理論基礎與配置詳解

Mycat簡介 Mycat是一個實現了MySQL協議的Server,前端用戶可以把它看作是一個數據庫代理,用MySQL客戶端工具和命令行訪問,而後端可以用MySQL原生協議或JDBC協議與多個MySQL服務器通信,其核心功能是分庫分表和讀寫

原创 分庫分表理論基礎

分庫分表 背景描述 在系統搭建剛開始的時候我們一般使用的是單機數據庫或主從架構,但是隨着業務的發展,數據量越來越大。我們會遇到下面的一系列問題: 用戶請求量大 單臺服務器TPS、內存、IO都是有上限的,我們需要將請求分散到多個服務器去

原创 MySQL性能優化 - 別再只會說加索引了

MySQL性能優化 MySQL性能優化我們可以從以下四個維度考慮:硬件升級、系統配置、表結構設計、SQL語句和索引。 從成本上來說:硬件升級>系統配置>表結構設計>SQL語句及索引,然而效果卻是由低到高。所以我們在優化的時候還是儘量從SQ

原创 MySQL數據存儲

MySQL體系架構 客戶端連接器 提供與MySQL服務器建立的支持。目前幾乎支持所有主流的服務端編程技術,例如常見的 Java、C、Python、.NET等,它們通過各自API技術與MySQL建立連接 連接池 負責存儲和管理客戶端

原创 Sentinel基礎應用

Sentinel 是什麼? 隨着微服務的流行,服務和服務之間的穩定性變得越來越重要。Sentinel 以流量爲切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。 Sentinel 具有以下特徵: 豐富的應用場景:Sen

原创 Nacos基礎應用

Nacos介紹 一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平臺 快速開始 下載安裝包,並解壓啓動 linux/mac:sh startup.sh -m standalone windows:startup.cmd -m

原创 Zookeeper應用場景和ZAB協議

Zookeeper應用場景 數據發佈/訂閱(配置中心) 我們平常的開發過程中,經常會碰到這樣的需求:系統中需要一些通用的配置信息,如一些運行時的開關、前端需要展示的通知信息、數據庫配置信息等等。這些需求通常都要求具備3個特性: 數據量比較

原创 分佈式系統設計策略

服務調用方式 1. HTTP協議的通信框架 1. HttpURLConnection HttpURLConnection是java原生支持的。 2. Apache Common HttpClient HttpClient是Apache Co

原创 分佈式概念與協議

分佈式協議 分佈式理論概念 1. 分佈式數據一致性 分佈式數據一致性,指的是數據在多個副本中存儲時,各副本中的數據是一致的。 在分佈式系統中,數據往往有多個副本。多個副本就需要保證數據的一致性。這就帶來了同步的問題,因爲網絡延遲等因素,我們

原创 Netty高級應用及聊天室實戰

Netty 高級應用 1. 編解碼器 概念:在網絡應用中,需要實現某種編解碼器。將原始字節數據與自定義消息數據進行相互轉換。網絡中都是以字節碼的形式傳輸的。 對Netty而言,編解碼器由兩部分組成:編碼器、解碼器 編碼器:將消息對象轉爲字

原创 Netty核心原理

Netty核心原理 1. Netty介紹 1.1 原生NIO存在的問題 NIO的類庫和API使用繁雜 需要具備其他額外的技能,如java多線程編程等才能編寫出高質量的NIO程序 開發工作量和難度都非常大:例如客戶端面臨斷連重連,半包讀寫,