原创 ActiveMQ的部署和使用

1 JMS與MQ  1.1 JMS JMS(Java Messaging Service)是Java平臺上有關面向消息中間件(MOM)的技術規範,它便於消息系統中的Java應用程序進行消息交換,並且通過提供標準的產生、發送、接收消息的接口

原创 Redis Cluster線上擴容

前言: 很多文章及自帶管理工具都是免密碼擴容,但是線上環境怎麼能少了密碼呢。以下爲針對帶密碼集羣擴容的探索: 概念 去中心、去中間件,各節點平等,保存各自數據和集羣狀態,節點間活躍互連。 傳統用一致性哈希分配數據,集羣用哈希槽(has

原创 Redis cluster集羣擴容縮容原理

1. Redis Cluster集羣擴容 1.1 擴容原理 redis cluster可以實現對節點的靈活上下線控制 3個主節點分別維護自己負責的槽和對應的數據,如果希望加入一個節點實現擴容,就需要把一部分槽和數據遷移和新節點 每個ma

原创 mysql主從同步延遲

如何實現mysql讀寫分離 基於主從複製架構,簡單來說,就是搞了一個主庫,掛多個從庫,然後我們單單只是寫主庫,然後主庫會自動把數據同步到從庫上。 mysql主從複製原理是什麼 主庫將變更寫binlog日誌,然後從庫連接到主庫後,從庫有一個

原创 MySql主從同步(binlog方式)

部署環境 機器A:192.168.2.63(主)  機器B:192.168.2.94(從)  mysql-5.6.23 主(master)配置 修改mysql安裝目錄下my.ini配置文件 log_bin=mysql-bin-1 #文件名

原创 爲什麼說ArrayList是線程不安全的

一.概述 對於ArrayList,相信大家並不陌生。這個類是我們平時接觸得最多的一個列表集合類。 面試時相信面試官首先就會問到關於它的知識。一個經常被問到的問題就是:ArrayList是否是線程安全的? 答案當然很簡單,無論是背來的還是自

原创 ActiveMQ集羣部署與應用

本文主要講解ActiveMQ的集羣部署及主從切換演示,單機版部署及入門請移步ActiveMQ(一)單機部署與應用,本篇內容需要使用zookeeper集羣做支撐,未搭建zookeeper集羣的朋友請看我的另一篇文章zookeeper單機-集

原创 TCP協議爲什麼可靠

我們都知道,TCP和UDP協議的區別在於TCP可以提供可靠的網絡數據傳輸,但UDP不能。 爲什麼TCP比較可靠呢?可能有人會回答,TCP是面向連接的,而UDP不是。連接是什麼呢?它是一個像水管一樣的東西,把所有的數據往連接裏一放就保證了數

原创 使用Spring的AbstractRoutingDataSource類實現多數據源切換

最近因爲項目需要在做兩個項目間數據同步的需求,具體是項目1的數據通過消息隊列同步到項目2中,因爲這個更新操作還涉及到更新多個庫的數據,所以就需要多數據源切換的操作。下面就講講在Spring中如何進行數據源切換。這裏是使用AbstractR

原创 MySQL優化的幾種方法

在sql查詢中爲了提高查詢效率,我們常常會採取一些措施對查詢語句進行sql優化,下面總結的一些方法,有需要的可以參考參考。 1.對查詢進行優化,應儘量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。  

原创 爲什麼說TCP是可靠連接

序言 我們平常經常說UDP是不可靠連接,TCP是可靠連接,然而TCP爲什麼是可靠的呢 1. TCP和UDP的優缺點 TCP 缺點:  [1] 三次握手四次揮手,傳輸更多包,浪費一些帶寬 [2] 爲了進行可靠通信,雙方都要維持在線,通信過

原创 基於用戶的API限流策略

應用場景 API接口的流量控制策略:緩存、降級、限流。限流可以認爲服務降級的一種,限流就是限制系統的輸入和輸出流量已達到保護系統的目的。限流策略雖然降低了服務接口的訪問頻率和併發量,卻換取服務接口和業務應用系統的高可用。 常用的限流策略:

原创 Java使用限流處理大併發的請求

在web應用中,同一時間有大量的客戶端請求同時發送到服務器,例如搶購、秒殺等。這個時候如何避免將大量的請求同時發送到業務系統。 第一種方法:在容器中配置最大請求數,如果大於改請求數,則客戶端阻塞。該方法有效的阻止了大量的請求同時訪問業務系

原创 MYSQL線上數據庫大表歸檔方法

前言 作爲一個企業或者DBA,我們通常會有這種想法,數據是一個公司的核心命脈,應該需要永久保存,很多時候DBA和開發溝通的時候,開發人員也會這麼告訴我們,這份數據非常重要,數據需要永久保存。然而,如果將數據庫的數據永久保存,那麼遲早有一天

原创 Spring Boot之ActiveMQ配置

所有配置基於spring boot 1.4.2 1.引入相關的maven依賴   <dependency> <groupId>org.springframework.boot</groupId> <artifactId>