原创 JAVA併發編程(五):創建線程的第三種方式:實現Callable接口

衆所周知創建線程的方式有兩種:1.繼承Thread類。2.實現Runnable接口。從jdk1.5開始,提供了另一種創建線程的方式。今天我們就來看看這第三種方式:實現Callable接口 一、Callable與Runnable 我

原创 解析Vue.js的MVVM模式

近年來前端一個明顯的開發趨勢就是架構從傳統的 MVC 模式向 MVVM 模式遷移。在傳統的 MVC 下,當前前端和後端發生數據交互後會刷新整個頁面,從而導致比較差的用戶體驗。因此我們通過 Ajax 的方式和網關 REST API 作通

原创 筆記:使用hexo,如果換了電腦怎麼更新博客

最近換了工作,忙着熟悉業務,好久沒寫博客了。換了新環境,好多東西都要重裝。Hexo博客就是其中之一,這裏我從萬能的知乎上找了一個感覺很讚的方法,現在把文章搬運過來。話不多說,我們快來看看他是怎麼做吧。 一、引言 其實,Hexo生

原创 JAVA併發編程(三):同步的輔助類之閉鎖(CountDownLatch)與循環屏障(CyclicBarrier)

jdk1.5的concurrent包爲我們提供了很多有用的輔助類,今天我們來學習一下 一、閉鎖CountDownLatch CountDownLatch是一個同步工具類,用來協調多個線程之間的同步。它的作用是,在完成某些運算時,只

原创 JAVA併發編程(一):理解volatile關鍵字

Java中volatile這個熱門的關鍵字,在面試中經常會被提及,在各種技術交流羣中也經常被討論:volatile關鍵字在java多線程中有着比較重要作用,volatile主要作用是可以保持變量在多線程中是實時可見的,是java中提供

原创 JAVA併發編程(二):理解CAS機制

也許大家已經聽說過,鎖分兩種,一個叫悲觀鎖,一種稱之爲樂觀鎖。Synchronized就是悲觀鎖的一種,也稱之爲獨佔鎖,加了synchronized關鍵字的代碼基本上就只能以單線程的形式去執行了,它會導致其他需要該資源的線程掛起,直到

原创 小白學SpringCloud(五):路由網關(Zuul)

在微服務的架構下,各個服務一般會有各自的網絡地址,在這樣的情況下外部客戶端的調用可能會形成雜亂無章的局面。這時候我們就可以使用微服務網關Zuul這個組件,我們讓所有的客戶端請求全部請求Zuul,再由Zuul統一的去請求各個服務。

原创 ActiveMQ從入門到實踐

一、什麼是ActiveMQ 首先我們應該先了解J2EE中的一個重要規範:JMS(The Java Message Service)Java消息服務。而JMS的客戶端之間可以通過JMS服務進行異步的消息傳輸。它主要有兩種模型:點對點和

原创 Java設計模式之策略模式

在開發中我們會使用很多中間件,開發過程當然是單機配置,可是上生產環境的時候如何快速切換到集羣配置,總不能修改代碼吧,這裏我們就可以結合Spring來使用策略模式。 一、什麼是策略模式? 在開發中常常遇到這種情況,實現某一個功能有

原创 小白學SpringCloud(三):統一配置中心(config)

在分佈式系統中,每一個功能模塊都能拆分成一個獨立的服務,一次請求的完成,可能會調用很多個服務協調來完成。如果我們每個服務都有一個獨立的配置的話,這樣很不方便我們維護。Spring Cloud中爲我們提供了一個config組件爲我們解決

原创 小白學SpringCloud(四):消息總線(Spring Cloud Bus)

Spring Cloud Bus 將分佈式的節點用輕量的消息代理連接起來。它可以用於廣播配置文件的更改或者服務之間的通訊,也可以用於監控。上篇我們有說到Spring Cloud爲我們提供了在不重啓項目的情況下切換配置的功能,就要用到它

原创 小白學SpringCloud(二):服務間的調用

SpringCloud服務間的調用有兩種方式:RestTemplate和FeignClient。不管是什麼方式,他都是通過REST接口調用服務的http接口,參數和結果默認都是通過jackson序列化和反序列化。 一、Ribbon

原创 小白學SpringCloud(六):服務降級(Hystrix)

在微服務架構中,我們將系統拆分爲很多個服務,各個服務之間通過註冊與訂閱的方式相互依賴,由於各個服務都是在各自的進程中運行,就有可能由於網絡原因或者服務自身的問題導致調用故障或延遲,隨着服務的積壓,可能會導致服務崩潰。爲了解決這一系列的

原创 如何在同一臺電腦上使用github和gitlab

換了工作後使用的是gitlab,這樣對github的使用會有影響。爲了解決這個問題,搜了很多資料後完美解決。現在把它記錄下來。 前言 在同一臺電腦上使用github和gitlab,主要的思想就是使用不同的倉庫時,切換成不同的賬號。

原创 使用JSONP解決ajax跨域

在日常開發中,不免遇到跨域的問題。在這裏我們介紹使用Jsonp來解決ajax跨域的問題 什麼是跨域? 跨域,指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制。簡單的理解就是開發時當客戶端所