原创 ZooKeeper——2222

2222222

原创 Zookeeper——開源客戶端ZkClient

ZooKeeper開源的客戶端有ZkClient和Curator。我們先來學習一下ZkClient。 ZkClient ZkClient在Zookeeper原生API接口上進行了包裝,是一個更易用的ZooKeeper客戶端。同時,

原创 Spring service調用當前類方法導致事務不生效

最近在項目中遇到一個問題,在service類中調用當前類的一個方法,沒有開啓事務,如下: @Service("userService") public class UserServiceImpl implements UserSe

原创 Springboot事件監聽機制——異步、自定義監聽事件(三)

在Spring事件監聽機制(二)中,我們提到了在SimpleApplicationEventMulticaster類的multicastEvent()方法發送事件廣播時,有一個Executor對象,如果它不爲空,就會異步去執行發送

原创 自定義類如何重寫hashCode()和equals()

在面試中經常遇到這樣一個問題,==和equals()方法有什麼區別? 很多時候,我們回答的都不算完全。這裏總結一下: ==分兩種情況: 1.基本數據類型,比較的是值相等 2.引用類型,比較的是對象的地址 equals分兩種情況:

原创 java併發編程StampedLock

前面介紹的ReadWriteLock可以解決多線程同時讀,但只有一個線程能寫的問題。 如果我們深入分析ReadWriteLock,會發現它有個潛在的問題:如果有線程正在讀,寫線程需要等待讀線程釋放鎖後才能獲取寫鎖,即讀的過程中不允

原创 Spring的事務的傳播屬性

Spring事務有7種傳播屬性: 1.PROPAGATION_REQUIRED:如果存在一個事務,則支持當前事務。如果沒有事務則開啓一個新的事務。 2.PROPAGATION_SUPPORTS:以非事務方式執行操作,如果當前存在事

原创 Springboot事件監聽機制——事件發佈(二)

Spring中的事件監聽 前面我們大致瞭解了一下事件監聽,我們接着來看看Spring中的事件監聽是如何使用的。這裏我選用了springboot 1.5.7的源碼來學習。 在啓動類中執行SpringApplication.run()

原创 Spring事件監聽機制——異步、自定義監聽事件(三)

在Spring事件監聽機制(二)中,我們提到了在SimpleApplicationEventMulticaster類的multicastEvent()方法發送事件廣播時,有一個Executor對象,如果它不爲空,就會異步去執行發送

原创 Spring事件驅動機制(一)

觀察者模式 前面有聊過設計模式中的觀察者模式,想必大家都應該有所耳聞。這裏我們大致回顧一下,觀察者模式中有幾個角色: 主題:主題中包含多個觀察者,以及觀察者的添加、刪除,同時需要提供觸發觀察者事件的方法。 觀察者:也叫監聽器,會有

原创 Spring事件監聽機制(二)

Spring中的事件監聽 前面我們大致瞭解了一下事件監聽,我們接着來看看Spring中的事件監聽是如何使用的。這裏我選用了springboot 1.5.7的源碼來學習。 在啓動類中執行SpringApplication.run()

原创 java NIO基礎知識

java NIO(New IO)是一個可以替代標準Java IO API的IO API(Java1.4開始),Java NIO提供了與標準IO不同的IO工作方式。NIO彌補了原來的I/O的不足,它在標準Java代碼中提供了高速的、

原创 rabbit集羣

開始獨立節點 集羣是通過重新配置現有的RabbitMQ節點到集羣配置來設置。因此,第一步是在正常方式啓動RabbitMQ的所有節點: rabbit1$ rabbitmq-server -detached rabbit2$ rab

原创 centos中安裝elasticsearch

首先,下載elasticsearch壓縮文件,然後上傳到服務器。解壓: tar -zxvf elasticsearch-6.8.2.tar.gz 解壓之後,進入到解壓目錄的bin目錄,執行啓動: ./elasticsearch

原创 centos中安裝elasticsearch的head插件

安裝nodejs 安裝了elasticsearch,我們要想用圖形化工具操作es。可以選用head插件,由於head插件是nodejs開發的,我們得先安裝nodejs。 下載node-v9.9.0-linux-x64.tar並上傳