原创 spring DenpendOn循環依賴判斷原理

循環依賴存在一下幾種情況: ​ @DenpendOn 循環依賴 ​ 構造器參數循環依賴 ​ @Autowire這樣的屬性依賴 今天主要說說@DenpendOn循環依賴的判斷,spring首先解析出@DependOn所提供的直接

原创 Spring BeanFactoryPostProcess 後置處理器

Spring BeanFactoryPostProcess 後置處理器 在Spring 中有兩大後置處理器,BeanFactoryPostProcessor, BeanPostProcessor, 從Spring源碼中我們知道,在

原创 zookeeper實現master選舉

zookeeper的使用創建非常多,在大數據中經常用來實現master選舉,在分佈式系統中實現分佈式鎖,也可以用來實現符在均衡,分佈式隊列,分佈式命名服務,下邊就來說說使用zookeeper實現master選舉 1.定義一個節點數

原创 spring cloud zuul 與 sentinel 結合使用

本來大型服務處理請求超時,限流,降級熔斷工作用hystrix,但是這個這個項目不再更新了,雖說它現在提供的版本不會影響到大多數開發者的使用,但是長遠考慮,被更換是一件必然的事,而且現在像resilience4j, Sentinel

原创 zookeeper實現分佈式隊列

zookeeper實現分佈式隊列 利用zookeeper的有序節點和節點一旦被刪除,其他連接就不能重複刪除的特性實現一個非常簡單的分佈式隊列,說實話,我覺得用zookeeper實習分佈式隊列並不合適,而且我這裏實現的也是最簡單的,

原创 spring cloud 註冊服務狀態UNKNOW(1)

出現這個狀態的原因是spring cloud在檢測註冊服務健康狀態時出現了問題,網上提供的方法都是開啓健康狀態檢測,或者是配置的位置不對,但這都只是針對配置而言的,下邊是我的方法: 查看依賴,檢測健康狀態需要提供一個/heal

原创 zookeeper實現分佈式鎖

多線程下保證資源的安全性是一個很重要的事情,在單機上,我們可以通過synchronized, Lock等機制實現線程同步,但是在分佈式情況下,又該怎麼實現同步機制呢,我們可以利用redis單線程的機制實現分佈式鎖,但是這裏我們利用

原创 SpringBoot自動配置

SpringBoot提供了自動配置功能,這樣可以讓我們更加專注的做我們關注的業務邏輯,而不必過多的去考慮哪些在使用Spring的時候需要考慮的各種配置,例如我們在使用spring webmvc的時候,提供下邊這樣一段代碼,然而,這

原创 利用SpringBoot自定義一個MQ

前幾天面試,面試官說只用springBoot實現一個mq,同時提供生產和消費restful 風格接口,正好疫情期間,在家也沒什麼事,就簡單的模擬kafka實現了一個,通過學者利用SpringBoot自定義了一個starter,作爲

原创 zookeeper實現消息訂閱

消息訂閱應用非常廣泛,像spring config中,當配置發生改變時其他需要第一時間發現並且更新自己的配置信息;其實像之前說到的master選舉也是一樣,在我看來也是消息訂閱的一種特例,當主節點宕機時,其他節點需要立即感應,並且

原创 spring 事件監聽原理

首先看看在Spring如何實現自定義事件監聽,首先定義事件: public class MyEvent extends ApplicationEvent { public MyEvent(Object source) {

原创 spring mybatis 零配置及原理

首先我們看看依賴 compile group: 'org.mybatis', name: 'mybatis', version: '3.5.4' compile group: 'mysql', name: 'mys

原创 Spring bean生命週期回調原理

Spring 中生命週期回調原理 Spring 官方文檔描述:根據Spring 生命週期回調描述描述,實現生命週期回調有三種方式: 1.註解方式:@PostConstruct/@PreDestroy 2. 實現接口:Initia

原创 springboot多模塊resources共享問題

spring boot 中maven多模塊依賴配置文件共享問題,當我們在使用多模塊是,可能需要配置一些參數,比如我們將與數據交互操作進行抽取形成了一個獨立的模塊,當其他模塊需要依賴這個模塊時,如果不做配置共享處理,那麼在依賴模塊中也需

原创 jenkins從安裝到構建maven項目

jenkins從安裝到構建maven項目 1.jenkins簡介 ​ 參考:https://blog.csdn.net/houyefeng/article/details/50912756 2.jenkins安裝 ​ 2.1 jenk