原创 Spring Cloud(二) :分佈式配置中心,動態修改和應用配置

很多時候線上服務的配置需要進行修改,但是我們不想或者沒辦法重啓服務來讓配置生效,那麼這時候應該怎麼辦呢? 在Spring Cloud中,spring cloud config所提供的分佈式配置中心能完美的解決以上問題,spring c

原创 Spring Cloud(一):發現和註冊服務(eureka)

最近的項目需要將原來的項目重構爲Spring Boot項目,正好也能利用一些Spring Cloud的工具,就正好學習學習_(:з」∠*)_。 首先需要新建2個Spring Boot項目,一個作爲服務註冊中心,一個作爲服務生產者/提供

原创 Spring:使用InitializingBean,DisposableBean接口實現在項目啓動/關閉時執行操作

最近項目中有一個需求需要一個存儲過程不停的執行,但是存儲過程執行中如果出現異常,自動通知管理員會很麻煩。所以打算直接把調用存儲過程這步驟整合進Spring Boot項目中(這樣不論異常捕獲和郵件通知都相對簡單)。 於是考慮使用實現Sp

原创 Linux 定時將文件備份到另一臺服務器

主要思路就是使用scp命令 + linux定時執行任務。 目標:2臺服務器,A爲主服務器,B爲備份服務器,需要每天中午12點將A上的文件備份到B上。 1.首先在A上安裝except 一路yes下去即可 yum install expe

原创 Spring Boot 使用 Jwt + Swagger2 搭建帶身份驗證的接口服務

首先需要搭建好一個Spring Boot + Swagger2的項目 因爲之前有寫過 Swagger2 點我 所以這裏就不再重複一遍了。該文章將會在之前項目的基礎上繼續添加整合Jwt。 首先放下搭建完畢的項目目錄結構 pom.xm

原创 Spring Boot 使用Swagger2構建RESTful風格的API在線文檔 & 項目總結

之前做的項目中前後端完全分離,前端爲嵌在手機app中的H5,後端需求限定了語言爲Java,而且所給的時間非常少。 於是能夠快速搭建配置部署的Spring Boot項目就成了不二之選,加上Swagger2能夠方便的幫助我們構建出功能強

原创 Java:ArrayList源碼分析(JDK1.7)

ArrayList源碼分析 注:JDK1.7 首先先來個總體的認識,ArrayList底層是用數組實現的。在插入值時如果超過了當前數組的大小,則會進行擴容操作,每次增加的大小爲原來大小的“一半”(偶數一半,奇數減一的一半),並且按照新的

原创 com.sun.mail.util.MailConnectException: Couldn't connect to host異常解決

最近在做一個接口項目,需要捕獲所有的異常信息,併發送郵件給管理員。使用了JavaMail來實現,然後發現在本地(windows環境)上可以正常發送郵件,而放到了linux環境上就無法發送郵件。相關錯誤如下: org.springframe

原创 Spring Boot 國際化配置(spring:message標籤方式) & 使用cookie持久化用戶配置

最近在對一個項目進行重構,使用Spring Boot將原來的項目進行功能拆分,使得之後對於功能的裝卸能夠更加簡單快捷。 然後在國際化配置時發現和原來的項目配置有一些出入。 先來講下Spring Boot中的配置方式吧。 因爲原來項目中

原创 Rabbitmq+Haproxy實現Rabbitmq鏡像集羣搭建和負載均衡

最近做到的項目中,有着龐大的日數據處理量(大概1天200W條),都需要通過MQ來傳遞數據,並進行解析持久化。所以接觸了下Rabbitmq的鏡像集羣搭建,記錄下方便以後再次用到。 先講下整體的架構,計劃打算使用3臺MQ服務器,然後用2臺ha

原创 Java併發:ReentrantLock源碼分析

注:JDK1.7 對照源碼效果更佳∠( ᐛ 」∠)_ 相關知識:隊列同步器AbstractQueuedSynchronizer是用來構建鎖或者其他同步組件的基礎框架,它使用一個int變量(stats)來表示同步狀態,並使用一個內置的F

原创 Java:HashMap源碼分析(JDK 1.7)

HashMap源碼分析 注:JDK 1.7 首先先總體概括下吧,在1.7中,HashMap是由數組+鏈表的形式組成的(1.8中當HashMap達到一定大小後會使用紅黑樹),具體如下。 /* 數組部分:table 鏈表部分:Entry<

原创 Linux安裝MySql 5.7 附大量圖文說明

前幾天接了個接口項目,按照網上教程安裝mysql數據庫時出現了一堆問題(捂臉),一頓操作後終於成功起起來了。記錄下以免之後再遇到同樣問題。 最主要的一個問題是MySql 5.7以上 與 MySql5.6以下的版本在安裝時大相徑庭,5.6

原创 linux:使用rsync和inotify-tools實現文件實時同步

首先手頭有兩臺linux服務器 系統爲CentOS 1臺作爲主服務器,另1臺作爲同步服務器(主服務器上添加/修改/刪除文件後將會同步給同步服務器) 首先先檢查主服務器是否安裝所需的工具 1.檢查rsync是否已經安裝 rpm -qa

原创 Linux:搭建SFTP服務器

系統Centos 工具,自帶的internal-sftp 1.首先查看openssh版本 ssh -V 版本必須大於4.8p1,低於的這個版本需要升級。 2.創建sftp組 groupadd bmssftp 3.創建sftp用戶