原创 Spring Boot2.x 整合lettuce redis 和 redisson

前言 springboot2之前redis的連接池爲jedis,2.0以後redis的連接池改爲了lettuce,lettuce能夠支持redis4,需要java8及以上。 lettuce是基於netty實現的與redis進行同步和異步的

原创 Spring Boot 整合 RabbitMq — 三種Exchange模式

前言 AMQP(Advanced Message Queuing Protocol, 高級消息隊列協議)是一個提供統一消息服務的應用層標準高級消息隊列協議,是應用層協議的一個開放標準,爲面向消息的中間件設計。基於此協議的客戶端與消息中間件

原创 Java併發之線程安全與無狀態對象理解

高併發訪問會出現線程安全問題 線程安全 多線程訪問某個狀態變量和單線程訪問執行結果相同,但效率更高。 要編寫線程安全的代碼,其核心問題要對狀態訪問操作進行管理,特別是對共享的(多個線程同時訪問)和可變的(生命週期內變化)狀態的訪問。 對象

原创 Java併發之同步 —— volatile關鍵字及原子性、可見性、有序性

前言 在理解volatile前,先理解原子性、可見性、有序性 原子性: 操作的不可分割性。如++count 實際上是可以分割的三個獨立操作,讀取->修改->寫入,其結果依賴之前的狀態,所以並非原子性 可見性: 一個線程修改了對象狀態

原创 Java併發之阻塞隊列 —— 線程合作

前言 當試圖向隊列添加元素而隊列已滿, 或是想從隊列移出元素而隊列爲空的時候, 阻塞隊列(blocking queue ) 導致線程阻塞。在協調多個線程之間的合作時,阻塞隊列是一個有用的工具。工作者線程可以週期性地將中間結果存儲在阻塞隊列

原创 yml語法及yml屬性值自動注入@ConfigurationProperties

前言 在Springboot中,推薦使用properties或者YAML文件來完成配置,但是對於較複雜的數據結構來說,YAML遠遠優於properties yml語法 YAML中允許表示三種格式,分別是常量值,對象和數組 基本格式要求 1

原创 前後端全雙工通信 —— 基於Stomp Over Websocket

WebSocket協議 概念: WebSocket協議是基於TCP的一種新的網絡協議。它實現了瀏覽器與服務器全雙工(full-duplex)通信——允許服務器主動發送信息給客戶端。 HTTP 協議做不到服務器主動向客戶端推送信息。這種單向

原创 Spring Boot2.x + Druid動態數據源切換

數據源配置 <!-- alibaba的druid數據庫連接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-s

原创 GDS和OTA未來之路

1.1 GDS的發展 全球分銷系統,應用於民用航運輸及整個旅遊業的大型計算機信息服務系統 航空公司發展初期,銷售部門需要花費大量的時間手工處理和保存預訂信息。20 世紀50年代後期,隨着旅客預訂量增大,提高預訂效率迫在眉睫,由此美利堅和衆

原创 致未來 -- 二十四歲的我

2016,2017在武漢實習工作,2018年從武漢到廣州工作一年,因個人原因等等回家鄉備戰考研,本博客對於技術知識上的更新暫時停止。 所謂技術博客是對項目經驗和技術知識的不斷總結。自己不太喜歡循規蹈矩,又或是想證明自己,在工作2年後種種原

原创 Java8函數式編程 —— CompletableFuture

前言 可完成的Future 對於1.5提供的Future接口。有一定的侷限性,很難直接表述多個future之間的依賴性。比如對於結果的獲取只能通過阻塞或者輪詢的方式獲得,這違背了異步編程的初衷。 下面通過一個簡單的例子說明Completa

原创 前後臺全雙工通信——基於rabbitmq的websocket服務

前端通過websocket連接RabbitMQ 開啓RabbitMQ對stomp的支持以及能夠通過stomp去建立一個websocket連接。安裝rabbitmq_stomp和rabbitmq_web_stomp插件 rabbitmq-

原创 linux下rpm操作

1.安裝一個包    # rpm -ivh  2.升級一個包    # rpm -Uvh  3.移走一個包    # rpm -e  4.安裝參數    –force 即使覆蓋屬於其它包的文件也強迫安裝    –nodeps 如果該RPM

原创 linux下firewall 防火牆的操作

對firewall 防火牆的操作 開放端口 firewall-cmd --zone=public --add-port=15672/tcp --permanent 每次更新防火牆規則都需要重新加載  firewall-cmd --re

原创 Spring Boot 整合WebSocket 基於Stomp協議

WebSocket WebSocket協議是基於TCP的一種新的網絡協議。它實現了瀏覽器與服務器全雙工(full-duplex)通信——允許服務器主動發送信息給客戶端。 HTTP 協議做不到服務器主動向客戶端推送信息。這種單向請求的特點,