原创 MySQL數據庫性能優化(1):數據庫主從同步

數據庫主從複製是MyCat實現讀寫分離的基礎,所以在實現MyCat讀寫分離前,先簡要敘述MySQL數據庫主從複製的配置方式。 數據庫主從同步前提: (1)準備兩臺服務器(主192.168.1.100,從192.168.1.200),分佈安

原创 學以致用Redis五種數據類型總結及應用場景

Redis常用數據結構有string,hash,list,set,zset,本文將就五種數據結構常用操作進行說明,並就典型應用場景進行舉例。 1、Redis數據類型-String String類型的數據存儲是最簡單的key-value存儲

原创 剖析MySQL InnoDB引擎的行鎖表鎖,怎樣利用鎖解決事務併發問題

在正式講解各種鎖之前,先來預習事務的四種隔離級別,因爲MySQL事務隔離級別不同,所用到的鎖也有差別。各種事務隔離級別可以對應解決不同類型的事務併發帶來的問題,事務隔離級別越高,可以解決的事務併發問題越多,同時性能事務性能也就越低,所以並

原创 SpringBoot項目Redis兩種實現Lettuce和Jedis比較

Jedis是直連模式,在多個線程間共享一個Jedis實例時是線程不安全的,可以通過創建多個Jedis實例來解決,但當連接數量增多時,物理連接成本就較高同時會影響性能,因此較好的解決方法是使用JedisPool。 Lettuce的連接是基

原创 微服務技術架構剖析及微服務帶來的優勢

框架之初爲了快速迭代出產品,而選擇簡單的技術架構,構建單體應用。這些架構可以適應初期業務的快速發展,但是隨着業務變得越來越複雜,就會發現這些架構越來越難支撐業務的發展,各業務模塊相互調用,業務邊界越來越模糊,同時對系統更正性、完善性、預防

原创 RocketMQ集羣原理及雙主雙從集羣搭建

RocketMQ的三種自帶集羣模式爲: (1)雙MASTER : 優點是配置簡單、快捷,但是一旦MASTER機器宕機或出現問題就無法提供服務; (2)雙MASTER雙SLAVE同步雙寫: 比異步複製的性能差10%,但能保證數據不丟失; (

原创 數據庫性能優化方案(2)--keepalived haproxy mycat的高可用方案

本文的前提是Mycat已經安裝並配置完畢,Mycat已實現對MySQL的讀寫分離、主從切換,其對應服務器IP分佈爲172.19.166.238和172.19.166.239。在此基礎上,本文繼續講解Keepalived+Haproxy+M

原创 億級數據量系統數據庫性能優化方案

一、數據庫性能瓶頸主要原因 1、數據庫連接 MySQL數據庫默認連接爲100,我們可以通過配置initialSize、minIdle、maxActive等進行調優,但由於硬件資源的限制,數據庫連接不可能無限制的增加,對大型單體應用單實例數

原创 分享MySQL庫表設計規範、建議

一、表設計 1、表必須定義主鍵,默認爲ID,整型自增,如果不採用默認設計必須諮詢DBA進行設計評估; 2、ID字段作爲自增主鍵,禁止在非事務內作爲上下文作爲條件進行數據傳遞; 3、禁止使用外鍵; 4、多表中的相同列,必須保證列定義一致;

原创 Netty之主從Reactor多線程模型

Reactor模式用於解決高性能IO問題,特別適合處理海量的I/O事件,它是當前大多數IO組件所採用的IO模式。Netty網絡框架就是基於Reactor模式進行設計和開發的,當請求抵達後,服務處理程序使用多路分配策略,同步地派發這些請求至

原创 基於Session共享的方式解決單點登錄問題

本文主要講述集羣環境下解決Session共享的問題,從而實現集羣環境下的單點登錄。Session共享問題已經有很多解決方案,這裏主要講述常用四種方法。 Session Sticky Session Sticky(粘性) 保證同一個會話的請

原创 MySQL爲什麼選擇B+TREE作爲索引的存儲結構

索引是爲了加速對錶中數據行的檢索而創建的一種分散存儲的數據結構。實現這種數據結構方式有多種,這裏只介紹B-TREE和B+TREE,並簡單做個對比,最後說明MySQL數據庫採用B+TREE作爲索引數據結構的原因。 B-TREE B-TREE

原创 RocketMQ設計原理分析

RocketMQ3.x及以前版本由阿里維護,RocketMQ4.x及以後版本是捐贈給Apache社區,孵化成爲Apache頂級項目的版本號,這一點從RocketMQ客戶端的包名由com.alibaba改爲org.apache可以得到證實。

原创 JNA實戰筆錄

文章開始之前首先介紹下.dll/.so文件,我們知道用c/c++編寫的程序如果用於Windows平臺則編譯爲xxx.dll(dynamic link library)文件,Linux平臺則編譯爲libxxx.so(shared objec

原创 CentOS7.X下FTP安裝與配置

近期由於工作原因,需要在CentOS7上安裝FTP服務,一開始對vsftpd主配置文件中各屬性不熟悉,造成部署vsftpd花費了很長時間,特在此記錄下安裝配置過程及主要屬性說明。 一、安裝vsftpd vsftpd安裝 yum inst