原创 ZooKeepe系列(1)--分佈式系統的基石

分佈式架構有以下幾點普適性的共性需求:      1. 提供集羣的集中化的配置管理功能,可以不重啓就讓新的配置參數生效,類似與配置中心      2. 簡單可靠的集羣節點動態發現機制,便於動態發現服務,動態擴展節點      3. 簡單可

原创 Netty實現自定義通信協議

概述 在網絡編程中,無論使用netty還是其它的socket通訊框架,都是通過TCP或UDP傳輸二進制流。發送方把要發送的對象轉化成二進制流發送出去;接收方把接收到的二進制流轉化爲對象進行處理。 爲了能讓接收方和發送方能對同一個二進制

原创 easy-im:一款基於netty的即時通訊系統

介紹 easy-im是面向開發者的一款輕量級、開箱即用的即時通訊系統,幫助開發者快速搭建消息推送等功能。 基於easy-im,你可以快速實現以下功能: + 聊天軟件 + IoT消息推送 基本用法 項目分爲easy-im-client、

原创 隨機數使用不當引發的生產bug

前幾天負責的理財產品線上出現問題:一客戶贖回失敗,查詢交易記錄時顯示某條交易記錄爲其他人的卡號。 交易的鏈路如下:   出現該問題後,我們對日誌進行了分析,發現主站收到的兩筆流水號完全相同,然而主站卻沒有做重複校驗,將兩筆訂單(A和B)都

原创 ZooKeepe系列(3)--基於ZooKeeper實現主從協作

主-從模式的模型中,主要包括三個角色: 主節點:主要負責監視新的節點和任務,分配任務給可用的從節點; 從節點:通過註冊自己,確保主節點看到它們可以執行任務,收到主節點分配的任務後,執行並記錄狀態; 客戶端:創建新的任務並等待系統響應。 1

原创 一文讀懂類加載機制--ClassLoader

一、什麼是ClassLoader?          大家都知道,當我們寫好一個Java程序之後,不是管是CS還是BS應用,都是由若干個.class文件組織而成的一個完整的Java應用程序,當程序在運行時,即會調用該程序的一個入口函數來調

原创 ZooKeeper--分佈式系統的基石

分佈式架構有以下幾點普適性的共性需求:      1. 提供集羣的集中化的配置管理功能,可以不重啓就讓新的配置參數生效,類似與配置中心      2. 簡單可靠的集羣節點動態發現機制,便於動態發現服務,動態擴展節點      3. 簡單可

原创 基於ZooKeeper實現簡單的配置中心

ZooKeeper節點的類型分爲以下幾類:     1. 持久節點:節點創建後就一直存在,直到有刪除操作來主動刪除該節點     2. 臨時節點:臨時節點的生命週期和創建該節點的客戶端會話綁定,即如果客戶端會話失效(客戶端宕機或下線),這

原创 android搖一搖功能實現

android搖一搖功能是通過手機中的加速度傳感器實現的。當加速度大於某一值時,我們認爲手機發生搖動,進而進行更多的處理。 功能實現主要有以下幾個步驟: 1.添加權限 <!--重力加速度傳感器權限 --> <uses-permissi

原创 android畫圖並實現撤銷功能

因爲在項目後期會用到android的畫線畫框功能,所以趁着過年在家琢磨了一下,本以爲很簡單的功能,卻用掉了一整天的時間,先將其中的坑說一下: 1.在畫線過程中,以down事件的點爲起點 2.如果以up事件的點爲終點,監聽up事件,執行畫線

原创 android實現截屏功能

android實現截屏功能 該方法主要利用SDK提供的view.getDrawingCache()方法,主要步驟如下: 設置view.setDrawingCacheEnabled(true) 調用view.buildDrawingCac