原创 java8(一)不斷進化的java 一、java8有哪些變化 1.1 流處理

當前軟件行業的氣候正在不斷地變化。數據量的爆炸式增長,導致程序員在開發時不得不去面對存在的各種效率問題,並希望利用多核計算機或計算集羣來有效地處理。這意味着需要使用並行處理,而曾經的java對於並行的支持並不好,這使得其不得不進行進化,以適

原创 什麼是算法時間複雜度? 一、時間複雜度的定義 二、大O階推導 三、算法空間複雜度

一、時間複雜度的定義 在進行算法分析時,語句總的執行次數T(n)是關於問題規模n的函數,進而分析T(n)隨n的變化情況並確定T(n)的數量級。 算法的時間複雜度,也就是算法的時間量度,記作:T(n)=O(f(n))。它表示隨問題規模n的增大

原创 異步調用如何使用最好? 一、異步調用方式分析 二、使用自定義的線程池 三、題外話,動態線程池

一、異步調用方式分析 今天在寫代碼的時候,想要調用異步的操作,這裏我是用的java8的流式異步調用,但是使用過程中呢,發現這個異步方式有兩個方法,如下所示: 區別是一個 需要指定線程池,一個不需要。 那麼指定線程池有哪些好處呢?直觀的說有

原创 Paxos算法 一、Paxos來源

Paxos是1990年,萊利斯-蘭伯特提出的,基於消息傳遞,且具有高度容錯性的一致性算法。是目前公認的解決分佈式一致性最有效的算法之一。 一、Paxos來源 1982年,蘭伯特與另外兩人發表了論文The Byzantine Generals

原创 Spring源碼解讀(三)事務 一、spring事務簡介 二、編程式事務TransactionTemplate 三、聲明式事務@Transactional 四、事務的核心源碼

一、spring事務簡介 spring中有兩種事務實現方式: 1)編程式事務 使用TransactionTemplate,實現更加細粒度的事務控制。 2)聲明式事務 使用@Transactional,無代碼侵入的事務使用方式。通過AOP實現

原创 幾種常見GC簡介

在springboot-admin當中,大概會有以下幾種類型的gc出現,本文我們看看他們分別是什麼意思。 本文使用的垃圾收集器是jdk1.8的PS+PO。 Allocation Failure 顧名思義,就是內存分配失敗導致的GC,常見於年

原创 centos7 搭建minio 一、下載安裝文件 二、創建數據文件夾 三、啓動 四、設置永久訪問鏈接 五、修改用戶名密碼: 六、集羣部署

一、下載安裝文件 wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio 二、創建數據文件夾 mkdir /opt/minio/data 三、啓動 # 賦予權

原创 springboot集成minio完全版,坑點很多 一、pom依賴 二、配置文件 三、配置類 四、工具類 五、測試一波

本文我們使用springboot集成minio,這裏我們沒有直接使用其starter,因爲在maven倉庫當中只有兩個版本,且使用不廣泛。這裏我們可以自己寫一個starter,其他項目直接引用就可以了。 先說一坑,minio的中文文檔版本跟

原创 mysql原理(九) 鎖,你更新一條記錄真的不會造成死鎖嗎?

鎖是數據庫區別於文件系統的一個關鍵特性。鎖機制用於管理共享資源的併發訪問。InnoDB除了在表上面進行上鎖之外,在其他層面也會進行上鎖,如操作緩衝池當中的LRU列表,刪除、添加和移動都需要有鎖的介入。本文只討論在InnoDB中的鎖。 一、I

原创 mysql原理(十) 當前讀與快照讀

首先我們做一個模擬,執行以下的sql,其中有如下圖數據: 時間 會話1 會話2 會話3 1 begin;select * from t_student where id = 2 2 update t_studen

原创 ClickHouse(一)什麼是ClickHouse?

ClickHouse是一個用於聯機分析(OLAP)的列式數據庫管理系統(DBMS)。 在傳統的行式數據庫中,數據存儲方式如下所示: row id status title time #1 12312 1 alksdjalkdj

原创 ClickHouse(二)centos 部署

ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架構的Linux,FreeBSD或Mac OS X上運行。 官方預構建的二進制文件通常針對x86_64進行編譯,並利用SSE 4.2指令集,因此,

原创 (一)springcloud服務熔斷降級解決方案之Hystrix 一、Hystrix

目前主流的服務熔斷降級方案,主要有兩種:springcloud的Hystrix和Alibaba的Sentinel,目前不論是從整體熱度及使用體驗、功能額豐富而言,Sentinel都具有絕對的優勢。 爲什麼需要服務的熔斷呢?當前的微服務架構,

原创 jenkins(四)問題記錄

1、在jenkins命令行執行cd 命令無效 使用過程中,發現在commond中使用cd是無效的,此時針對不同的服務寫了不同的sh腳本,在內部去做目錄的切換。 解決方案: 使用source的方式是cd生效: source /opt/esmp

原创 jenkins(三)部署後臺服務

1、創建view 2、創建Item 配置步驟如下所示: 2.1 General 增加git parmameter配置,用於根據不同的分區打包,此處的name要關注下,後面會用到。 2.2 Source Code Managemen