原创 消息中間件之RabbitMQ(二)

RabbitMq整合spring家族 rabbitAdmin SimpleMessageListenerContainer 可以動態設置,在運行中的應用可以動態的修改其消費者的大小,接受消息的模式 MessageListenerAdap

原创 mysql學習之高可用架構

MMM(multi-master replication manager)  作用:監控和管理mysql的主主複製拓撲,並在當前的主服務器失效時,進行主和主備服務器之間的主從切換和故障轉移工作。 https://www.cnblogs.

原创 消息中間件之RabbitMQ(三)集羣

主備模式Warren模式 遠程模式Shovel模式 多活模式 異地複製數據的主流模式  鏡像模式Mirror模式 保證數據100%不丟失。Mirror鏡像隊列,目的是爲了保證rabbitMq數據的高可靠性解決方案,主要是實現數據同步。

原创 消息中間件之RabbitMQ(四)set化架構和基礎組建的封裝

https://www.jianshu.com/p/36bd5d14b3a5 https://www.jianshu.com/p/38344551feaa  

原创 JUC之獲取子線程的執行結果Future和Callable

Runable的缺點:沒有返回值也不能拋出Checked Exception Future的主要方法 get() //get方法的行爲取決於Callable任務的狀態分五種情況 //1 任務正常完成,get立即返回結果 //2 任務

原创 mysql學習之分庫分表和監控

分庫分表 把一個實例中的多個數據庫拆分到不同的實例 把一個庫中的表分離到不同的數據庫中 分片的準備 分片鍵的選擇 分區鍵要能儘量避免跨分區片查詢的發生 分區鍵要能儘量是各個分片中的數據平均 如何在節點上部署分片 每個分片使用單一數據庫,並

原创 mysql學習之索引

mysql的索引是在存儲引擎層實現的與服務層無關。這也就決定了不同的存儲引擎是有不同的實現的。 mysql支持的索引類型 b-tree索引 以b+tree的結果存儲數據 能夠加快數據的查詢速度,通常索引大小遠小於數據本身 更適合範圍查找

原创 JAVA之IO學習(三)AIO

package main.java.com.founder.study.javaio.aio; import java.io.IOException; import java.net.InetSocketAddress; import

原创 JAVA之IO學習(二)NIO聊天室

package main.java.com.founder.study.javaio.socket.nio; import java.io.Closeable; import java.io.IOException; import j

原创 mysql的學習(一)之基準測試

基準測試的目的 建立miysql服務器性能的基準線 模擬比當前更高的負載,以找出系統的擴展瓶頸增加數據庫併發 測試不同的硬件,軟件和操作系統配置 常見指標: 單位時間內處理的事務數量TPS 單位時間內處理的查詢數量QPS 響應時間 測試工

原创 Redis分佈式鎖實現以及避免死鎖

分佈式鎖:當多個進程不在同一個系統中,用分佈式鎖控制多個進程對資源的訪問    分佈式鎖應該具備哪些條件 在分佈式系統環境下,一個方法在同一時間只能被一個機器的一個線程執行 高可用的獲取鎖與釋放鎖 高性能的獲取鎖與釋放鎖 具備可重入特性(

原创 mysql的學習(一)之mysql性能的影響因素

硬件配置 cpu,可使用內存myIsam會把索引緩存到內存中,數據交給操作系統,而innodb會在內存中存儲索引和數據 硬盤固態存儲和PCIe卡 網絡存儲SAN和NAS mysql體系結構 特點:插件式存儲引擎,可針對每個表配置 myI

原创 JAVA之IO學習(二)BIO

BIO編程模型 BIO多人聊天 服務端 import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.HashMa

原创 Redis學習之布隆過濾器

實現原理: 參數:m個二進制向量,n個預備數據,k個hash函數 構建布隆過濾器:n個預備數據走一遍上面的過程 判斷元素存在:走一遍上面的過程,如果都是1,則表明存在反之不存在 誤差率:m/n與誤差率成反比,k也是反比 基於redis

原创 JAVA之IO學習(一)

字符流 字節流    socket和serverSocker  package main.java.com.founder.study.javaio.socket; import java.io.*; import java.net