原创 使用Redis事務的注意事項

1、使用Jedis實現事務 @Test public void testJedis(){ Jedis jedis = jedisPool.getResource(); jedis.w

原创 Java消息中間件相關面試題

1、爲什麼要使用消息中間件? 一般說法: 解耦與複用 異步 削峯 以登錄舉例說明,假設登錄服務和認證服務不是同一個系統,登錄服務收到登錄請求後調用認證服務的接口認證用戶名、密碼,需要等待認證服務的結果,認證通過後通知其他應用服

原创 Java併發相關面試題

1、ConcurrentHashMap原理,如何保證線程安全 參考 使用CAS和synchronized保證線程安全 2、紅黑樹原理 參考 3、synchronized (1)synchronized是可重入鎖。 可重入鎖顧名思義

原创 ActiveMQ啓動阻塞問題排查

ActiveMQ啓動阻塞問題排查 首先,看一看有問題的代碼。基於activemq-client-5.14.5.jar封裝的啓動方法: public void start() throws NotifyException {

原创 Redis學習一:管道技術

Redis學習一:管道技術簡介Redis管道技術總結Redis發佈訂閱Redis事物面試中常見的問題 簡介 我們在項目中大量使用redis,卻很少停下腳步細細研究它到底是個什麼東西。有人說它是nosql的一種,有人說它是緩存。re

原创 java中大素數生成算法

目前的公開密鑰 算法大部分基於大整數分解、有限域上的離散對數問題和橢 圓曲線上的離散對數問題,這些數學難題的構建大部分都需 要生成一種超大的素數,尤其在經典的RSA算法中,生成的素數的質量對系統的安全性有很大的影響。 1.原理 費

原创 spring cloud之spring cloud task

1. 簡介 SpringCloud任務允許用戶使用SpringCloud開發和運行短期的微服務,在本地 、雲環境中、甚至在SpringCloud Data Flow上運行它們。僅添加註解@EnableTask便可將app作爲spr

原创 Spring Cloud之Consul

1.環境準備 下載consul 解壓 cmd執行 consul.exe agent -server -bootstrap -advertise 127.0.0.1 -data-dir ./data -ui 訪問http://l

原创 Redis學習二:事務

1.Redis事務的特點 redis的事務與RDB的事務不同,具有如下特點: 滿足隔離性:客戶端提交命令到隊列,服務端按順序執行,事務在執行過程中不會被其他客戶端打斷。 原子性:事務中的命令要麼全部執行,要麼全部不執行。但是若執

原创 基於深度優先的層次排序

有一種數據,例如組織結構,在批量添加到系統中時,需要先從根節點開始添加,然後是第二層組織、第三層組織…而批量添加的數據有時並不是有序的,這就需要對數據做一個排序的預處理,這樣的排序我把它稱爲按層次排序。 背景 有一些組織的數據,

原创 Java關係型數據庫相關面試題

1、手撕sql 有學生表、課程表、成績表,計算平均成績大於等於60的學生id、學生姓名和平均成績。 select s.s_id,s.s_name,avg(sc.score) from score sc left join stu

原创 使用排隊論實現服務節點的動態擴展

1、背景 通常我們的服務器面對高併發時會採取一些限流、熔斷、降級的手段,條件允許的時候採取水平擴展提升系統的吞吐量。最近腦子一熱在想若是不考慮水平擴展的成本,我們是不是可以設計一款支持動態擴展的系統,當併發量達到限流上限時自動增加

原创 Java非關係型數據庫Redis相關面試題

1、Redis常見數據結構 String字符串、Hash、List、Set、Zset 2、zset的底層實現 ziplist/skiplist 參考 3、持久化方案 RDB:默認,週期性的保存快照方式 AOF:對每條寫入命令作爲

原创 Arrays.asList創建的ArrayList並非java.util.ArrayList

項目中有遇到過對Arrays.asList生成的ArrayList進行add操作時報出UnsupportedOperationException異常。這是因爲此ArrayList並非彼ArrayList。 這裏生成的ArrayL

原创 Springboot2.x中的hibernate-validator(1)GET請求

1、自動配置 springboot中早已默認集成hibernate-validator,首先看下自動配置是如何配置validator的。 ValidationAutoConfiguration @Configuration(