原创 OpenFeign學習(五):OpenFeign請求結果處理及重試控制

#說明 在上篇博文《OpenFeign學習(四):OpenFeign的方法同步請求執行》一文中,我對OpenFeign的同步請求的執行的原理進行了介紹和學習。本篇博文我將繼續通過源碼對請求之後結果的封裝解碼及失敗重試進行介紹和學習

原创 OpenFeign學習(四):OpenFeign的方法同步請求執行

說明 在上篇博文《OpenFeign學習(三):OpenFeign配置生成代理對象》中,我對OpenFeign的整體工作流程做了簡單的介紹,並且通過源碼,介紹學習了OpenFeign配置創建代理對象的原理。在本篇博文中,我將繼續通

原创 OpenFeign學習(三):OpenFeign配置生成代理對象

目錄結構說明正文工作流程創建代理ParseHandlerByName.apply(target)contract.parseAndValidateMetadataBuildTemplateByResolvingArgssynchr

原创 Array.asList()踩坑記錄之java.lang.UnsupportedOperationException

說明 本篇博文主要記錄了在使用Arrays.asList()方法時遇到的問題,並通過源碼瞭解其背後的原理。 正文 問題描述:在將Arrays.asList()方法生成的list集合,作爲參數傳遞到方法中,但在運行中出現了一下bug

原创 寫在2019年末

19年的最後兩天,北京真的好冷。 又到了年底總結的時候。腦袋裏把19年的事情,像電影一樣回放了一遍,發現並沒有像18年那樣,有很多記憶深刻的東西。從18年畢業轉正到現在,算上實習,工作了已經有20個月又10天。工作後,最大的感觸就

原创 Apollo學習(五):docker容器化分佈式部署

說明 在之前的文章《Apollo學習(三): 分佈式部署》中,我簡單介紹了在Windows環境下,實現Apollo配置中心的分佈式部署。本篇博文我將對如何實現Apollo的docker容器化分佈式部署的步驟進行記錄總結。 正文 目

原创 RabbitMQ學習(二十):消費者優先級和優先級隊列

原文鏈接:https://www.rabbitmq.com/priority.html https://www.rabbitmq.com/consumer-priority.html

原创 Kafka學習(一):消費者實現對分區的併發消費

說明 在上篇博文《springboot學習(十七):瞭解spring - kafka配置工作原理》中,我們簡單瞭解了spring-kafka的配置工作原理。通過源碼可以看到spring在實現併發消費時,採用的是線程封閉的策略,也就

原创 springboot學習(十五):Kafka的使用

說明 本篇博文主要介紹在springboot中使用kafka,以及如何配置kafka。 正文 簡單配置 spring kafka提供了spring對kafka的支持,通過簡單的配置我們可以快速使用KafkaTemplate進行消息

原创 RabbitMQ學習(十九):消費者的未確定消息數限制(Consumer Prefetch)

原文鏈接:https://www.rabbitmq.com/consumer-prefetch.html 說明 在之前的博文《RabbitMQ學習(十七):消息確認之消費者確認模式 II

原创 RabbitMQ學習(十八):消息確認之發送者確認模式

原文鏈接:https://www.rabbitmq.com/confirms.html#publisher-confirms 說明 通過之前的兩篇博文《RabbitMQ學習(十六):消息

原创 RabbitMQ學習(十七):消息確認之消息者確認模式 II

原文鏈接:https://www.rabbitmq.com/confirms.html 說明 在上篇博文《RabbitMQ學習(十六):消息確認之消費者確認模式 I》中對消息確認的必要性

原创 RabbitMQ學習(十六):消息確認之消費者確認模式 I

說明 通過上篇博文《RabbitMQ學習(十五):消極確認》我們初步瞭解了消費者對消息確認的相關內容,通過消極確認,消費者可以拒絕一個消息。本篇博文,我將繼續翻譯學習官方文檔中關於消息確認的相關內容。由於原文檔太長,本篇博文只翻譯

原创 線上異常處理(一): 線程堆積導致OOM, RabbitMQ的Connection中自動創建線程池

說明 本篇博文主要記錄之前線上項目由於線程數過多導致內存溢出後,事故原因的分析排查過程。項目背景是其中使用了公司封裝的管理類來操作RabbitMQ。 正文 初步猜想 項目出現oom後發現是線程數過多導致內存泄露,快速進行了重啓。重

原创 RabbitMQ學習(十五):消極確認(Negative Acknowledgements)

說明 在之前的一篇博文《RabbitMQ學習(十三):死信交換機 (Dead Letter Exchanges)》中我們瞭解到,消息變爲死信有三個原因,其中就有因爲消費者的消極確認(negative acknowledgement