原创 SpringCloud- Ribbon與Feign的重試機制

1 背景: 在進行Feign調用時對於耗時較長的業務會發生超時而返回異常,以此需要根據業務需求配置超時時間,其中涉及到Hystrix超時時間和Ribbon超時時間,對於Hystrix的隔離機制分爲信號量隔離和線程池隔離,對於請求業務和處理

原创 中級題 用戶認證+權限控制

採用的是springboot+Jwt+shiro,其實也可以採用spring-security-oauth來實現。 有沒用到數據庫,是在代碼中給用戶創建的假設的角色和權限 1 JWT工具類: package com.irootech.b

原创 使用Logstash將Mysql數據同步到Elasticsearch

使用logstash將mysql數據導入到elasticsearch過程: 1 安裝elasticsearch 網址:https://www.elastic.co/downloads/elasticsearch,以下所有過程在win環境下

原创 Springboot國際化

背景:適應多語言環境,springboot國際化語言處理: 一、在static下新建i18n目錄(靜態文件夾下,位置隨意)創建: 1 messages.properties(必須要有,可以爲空); 2 messages_zh_CN.pro

原创 RabbitMq中間件原理

消息隊列原理:生產者將消息發送到交換機(exchang),通過將消息隊列(queue)與交換機進行路由(route-key)綁定(binding),交換機根據路由將消息發送到相應隊列,消費者通過監聽隊列來獲取消息。(生產者並不是直接將消息

原创 初級題-springcloud微服務之間相互調用

任務一實現:  使用腳手架生成deepexi-spring-cloud(服務消費者)、deepeximessage-spring-cloud(服務提供者) registerCenter(註冊中心,這個沒用腳手架生成)    一 服務消費者

原创 springboot利用線程池實現郵件發送

最近實現一個郵件推送功能,整理如下: 1  編寫線程類實現runnable接口:(其中JavaMailUtil爲封裝的發送郵件工具類) import lombok.Data; import org.springframework.bea

原创 關與Mysql

mysql在開發中運用的比較多,所以很有必要了解一番。 mysql的存儲引擎常用有innodb與myisam,他們區別有哪些呢: 1 在事務上:myisam不支持事務,innodb支持事務,這是很大區別。同時myisam不支持外鍵、是表級

原创 JDK動態代理和責任鏈模式

  JDK動態代理在添加前、後置處理時存在的缺陷? 一  在JDK動態代理模式中代理類通過實現InvocationHandler接口,在invoke方法可以調用目標類的方法,並在調用目標方法時實現前、後置處理。jdk動態代理是基於接口實現

原创 自定義Lock和Condition實現生產消費模式

package com.example.test; import java.util.Queue; import java.util.Random; import java.util.concurrent.ConcurrentLink

原创 2020-03-01吃vvv

鎖,在現實生活中是爲我們想要隱藏於外界所使用的一種工具。在計算機中,是協調多個進程或縣城併發訪問某一資源的一種機制。在數據庫當中,除了傳統的計算資源(CPU、RAM、I/O等等)的爭用之外,數據也是一種供許多用戶共享訪問的資源。如

原创 SpringBoot集成Quartz實現分佈式動態任務調度

通過Quartz實現動態的管理任務的執行,通過Quartz將任務持久化到數據庫中,在集羣環境中確保只有單節點執行,當某一節點出故障後,會切換到另一個節點執行。 1 運行環境準備: 去官網下載Quartz的壓縮包 將docs/dbTable

原创 rabbitmq使用

消息隊列原理:生產者將消息發送到交換機(exchang),通過將消息隊列(queue)與交換機進行路由(route-key)綁定(binding),交換機根據路由將消息發送到相應隊列,消費者通過監聽隊列來獲取消息。(生產者並不是直接將消息

原创 Java集合踩過的坑

1 在for循環中移除list的元素,以前沒注意講過但又忘了,補充一下如果知道ArrayList的長度,一定指定其長度,避免擴容: (錯誤示例1)    List<Integer>  list1=new ArrayList();    

原创 記一次遞歸調用數據封裝

package com.irootech.controller; import java.util.ArrayList; import java.util.List; public class Test1 { static