原创 第三方支付問題小結

概述 記得2019年,微信支付出過一個故障,用戶發起支付給了錢後,微信一直不回調,導致使用了微信支付的商家的訂單都成了未支付狀態了,如果業務系統設計的不好,那瞬間就會有大量的客訴出現。 像下面的對話場景,我相信當時肯定非常的多:

原创 項目推動的心得

概述 最近給公司互聯網部門做了一個【項目推進】的分享,效果還不錯,重新梳理一下重點內容,分享給大家。 項目階段 項目啓動階段 項目計劃階段 項目執行階段 項目監控階段 項目收尾階段 項目啓動階段 項目啓動會 目的:

原创 關於日誌打印

概述 日常工作中,程序員需要經常處理線上的各種大小故障,如果業務代碼沒打印日誌或者日誌打印的不好,會極大的加大了定位問題的難度,使得解決bug的時間變長了。對於那種影響比較大的bug,處理時間是分秒必爭的,慢幾秒處理完,可能GM

原创 socket.accept後,會產生新端口嗎?

概述 前段時間,組內的一個小夥伴問了俺一個問題: 調用socket.accept方法,建立連接後,服務器端會爲其創建一個新端口嗎? 客戶端與服務端成功建立連接後,客戶端這邊肯定是需要開啓一個新的端口的,而服務端其實只需要一個

原创 線上應用遇到了oom killer

概述 在2019年10月21日,公司的一個後臺應用中【生成營銷活動數據】的操作,執行到一半突然不執行了,導致部分活動數據沒生成,運營人員對此怨聲載道的,因爲影響了他們的運營效率了,要求我們技術人員儘快解決。 機器內存配置 用

原创 說一說單體應用的不良影響

概述 單體應用有優點也有缺點,而所有缺點基本上都是一個原因導致的。 功能模塊都耦合在一起了。 不同功能堆在一起了,會引發各種各樣的問題,下面說一下自己體驗過的單體應用的痛。 系統穩定性很不可控 目前公司有一箇舊的後端應用

原创 Spring RabbitMQ Channel理解

概述 在AMQP協議中,有channel的概念,在RabbitMq中,channel表示邏輯連接或者叫虛擬連接,是棣屬於TCP連接的。一個TCP連接裏可以創建多個channel,在Rabbit MQ裏,消息的發送和接收都是基於c

原创 小程序access_token耗盡問題

概述 前幾天,產品經理緊急打我電話,說後臺好些商品無法生成小程序碼了,這些商品小程序碼是需要緊急推到公衆號文章裏的,讓我趕緊解決。 我立馬登錄到後臺操作了一下,果然報錯了。但是由於報錯信息只是:“操作失敗”。啥都沒有,簡直醉了,

原创 簡單說一下業務接口自動化測試

概述 在創業公司裏,項目都比較趕,測試人員也是疲於測試功能模塊,基本沒空去寫什麼自動化測試,以提升迴歸測試的效率。但一個必須承認的事實便是,依賴測試人員去做全面迴歸測試,保證上線質量,是不可取的,因爲難度太大,成本太高。因此自動

原创 研發Owner的職責

概述 技術組長或者PMO,可能在同一個上線週期裏,需要跟多個項目,有時候會跟不過來,這個時候可以指派一個owner,分擔一些壓力。 owner定義 owner是臨時授予的小組長,負責主導某個項目某個端(後端或者前端)的整體

原创 RabbitMQ使用場景簡單介紹

概述 Rabbit MQ的使用場景非常多,典型的場景主要分爲下面幾種: 削峯 基於pub/sub模型的事件驅動 跨系統的異步通信 下面簡要的梳理一下這幾種場景。 秒殺訂單之削峯 sec-kill-order獨立集羣的職

原创 Spring Boot RabbitMq 併發與限流

概述 電商中秒殺請求,屬於瞬間大流量,同一時刻會有大量的請求涌入到系統中,可能導致系統掛掉。應付這種瞬間大流量的其中一種方式,便是利用消息隊列。 1、利用消息隊列先進先出的特性,將請求進行削峯; 2、控制好消費端的消費速度,進

原创 Spring Boot Controller層測試

概述 對業務Service層的代碼進行詳盡的單元測試是非常必要的,但也不能忽視Controller層的測試,畢竟Controller層的接口輸出 都是給前端用的,且Controller層拿到業務Service層的返回結果後,通常

原创 Git log修改時間格式

概述 我們經常會使用git log去查看提交記錄,但是默認展示的提交時間是如下格式的: Date: Thu Aug 29 19:15:05 2019 +0800 不太容易看懂,因此最好使用如下的命令,講提交時間格式化一下

原创 Spring Boot下使用RabbitMQ

概述 本文主要一下在JAVA 中使用Rabbit MQ的三種方式: 原始方式 結合Spring 結合Spring Boot 下面將使用逐步演進的方式來講解JAVA下如何使用Rabbit MQ的發佈訂閱模式。 最原始的方式