原创 工作四年經驗總結

  今年的年終總結做的比較遲,這個月發生了好多事:搬家、找工作、帶娃過年、肺炎疫情、科比離開,雖然一直堅信唯一不變的是變化,但當很多事情同時發生時,還是需要一點時間來適應。 2019年總結 1、工作上:由於可控和不可控的一些因素,

原创 延遲隊列淺析

        早期需要延遲處理的業務場景,更多的是通過定時任務掃表,然後執行滿足條件的記錄,具有頻率高、命中低、資源消耗大的缺點。隨着消息中間件的普及,延遲消息可以很好的處理這種場景,本文主要介紹延遲消息的使用場景以及基於常見的

原创 使用Docker安裝Nginx

本文主要講述使用docker安裝nginx鏡像,並將docker內文件掛載到物理機上 1、下載Nginx鏡像 docker pull nginx 2、本地創建掛載文件夾 /Users/zhanghao/data/nginx/co

原创 springboot集成rocketmq

  本文是springboot集成rocketmq的入門篇,主要介紹單機環境下安裝rocketmq,並集成到springboot框架中,實現字符串類型消息的生產和消費。   1)高可用集羣部署方案請參考 待更新。。。   2)更

原创 SpringCloud與SpringBoot版本兼容性

  Spring Cloud是在Spring Boot基礎上構建的,用於快速構建分佈式系統的通用模式工具集,適合在Docker或PaaS上部署,又叫雲原生應用。(雲原生指面向雲環境的軟件架構) 一、SpringCloud版本 1、

原创 Eureka實戰

1、微服務架構中關鍵組件:服務提供者、服務消費者、服務發現組件   其中,服務提供者的變化依賴於服務發現組件,對服務消費者來說透明 2、服務發現組件的功能   1)服務註冊表:用來記錄各個微服務的信息,名稱、IP、端口等。並提供

原创 Protobuf序列化

Protobuf是Google出品的一款編解碼框架。 1、優點:   1)谷歌內部長期使用,成熟度高   2)跨語言,支持C++、Java、Python、JavaScript、PHP、Ruby、C#、Objective-C等   

原创 使用jclasslib修改字節碼/源碼

  查看源碼很簡單,一些常用IDE裏如idea、eclipse都提供了查看class文件源碼的功能,雖然跟源碼有些出入(解語法糖等),但功能實現上是一致的,且比源碼更貼近於JVM運行時的情況。   有時候我們需要修改源碼以滿足使用

原创 gateway url適配

由於版本迭代,有的時候需要做老接口的兼容適配,有很多種方式,比如在nginx配置路由規則,在網關配置路由規則,本篇通過使用反射的方式在網關層全局過濾器中重寫request請求的方式實現url適配。 import lombok.ex

原创 網關支持跨域

一、zuul跨域:配置方式 application.yml zuul: sensitive-headers: Access-Control-Allow-Origin ignored-headers:Access-Control

原创 java序列化框架碼流、性能對比

本文對序列化框架:JDK、Kryo、Hession、FST、Fastjson、Gson進行對比,對比維度包括序列化後碼流大小、10w次序列化反序列化性能耗時。 1、依賴jar包 <dependency> <groupId

原创 Feign實戰

1、Feign   是一個聲明式、模版化的HTTP客戶端,有助於更便捷、優雅地調用HTTP API。在Spring Cloud中自動的爲Feign整合了Ribbon和Eureka,使用時創建一個接口並添加@FeignClient即

原创 Ribbon實戰

1、Ribbon簡介 Ribbon是Netflix發佈的負載均衡器,配合Eureka使用時,可自動從Eureka Server獲取服務提供者地址列表,並基於負載均衡算法,請求其中一個服務提供者實例 2、使用Demo 1)引入Ri

原创 ActiveMQ失效轉移(Failover)

  本文的ActiveMQ都基於5.10版本,參考了ActiveMQ官方文檔:http://activemq.apache.org/failover-transport-reference.html。 一、ActiveMQ集羣   集

原创 ActiveMQ基於JmsTemplate的持久化

持久化需要滿足兩個條件:   1)消息服務開啓了持久化功能;   2)生產者發送持久化消息 注:筆者建議MQ服務開啓持久化功能,生產者根據消息內容的重要性、量級來合理使用持久化或不使用持久化 本文主要描述,消息服務的默認持久化功能及存