為了賬號安全,請及時綁定郵箱和手機立即綁定

【Go語言探險】線上奇怪日志問題的排查 原創

最近在日志中發現一些奇怪的日志,大致長這樣: Error 2020-08-28 06:59:38.813+00:00 ... _msg=get immersion context, fetch tracks failed, error: <nil> 打印了 Error 日志,error 打印出來卻是 <nil>,乍眼一看,以為又遇到了 Go 里面 nil != nil 的問題,但找到對應的那行代碼是這樣的: tracks, errResult = TrackService.GetRpcTracks(httpCtx, trackIds) if errResult != nil {...

34瀏覽
0推薦
0評論

【Hexo】Hexo 主題 Matery 配置 原創

說明 前兩篇文章介紹了 Hexo + github pages + travis ci 進行自動化部署,并介紹了 Hexo 的配置文件中的各個屬性,相信通過前兩篇文章的學習,你已經學會了如何搭建自己的博客,并能夠根據自己的需要進行個性化配置。 這一篇將以 Matery 這款主題為例,說明一下主題應該如何配置。包括主題配置、插件設置、注意事項等。 設置博客主題 先到這里 選擇你喜歡的主題,點擊它的標題(注意,點圖片是進去 demo 站點,點標題才是跳轉到對應到 github 倉庫),跳轉到 github 倉

881瀏覽
0推薦
0評論

【Hexo】自定義 Hexo 配置文件

說明 上一篇里,介紹了使用 Hexo + github pages + travis ci 實現自動化博客部署,我們已經收獲了一個屬于自己的博客,但現在還比較簡陋,里面的設置信息都是默認的數據,所以我們需要把它們改成我們想要的內容。 所以這一篇里,主要介紹 Hexo 的配置文件如何設置。通過本篇的學習,你將知道 Hexo 配置文件的各個屬性是什么意思,并給出我使用的配置,這樣你就能隨心所欲的進行配置了。 站點信息 先來看第一部分,站點信息的配置。先說明一下各個字段的含義: |參數| 描述|

337瀏覽
0推薦
0評論

【Hexo】使用Hexo+github pages+travis ci 實現自動化部署 原創

一、說明 本系列文章將會詳細說明使用 Hexo + github pages 來搭建個人博客,并對主題進行配置,然后使用 travis ci 來進行自動化部署的全過程。 搭建一個賞心悅目的博客,寫文章和閱讀也會更加舒適,一次搭建,終生使用,而且還全程免費,何樂而不為呢。 通過本系列文章的學習,你將收獲一個免費且漂亮的個人博客,并熟悉搭建、寫作、部署的全流程以及其中一些很好用的工具。 二、成品展示 在線 Demo 這只是其中的一個主題,如果不喜歡,也可以很方便的切換其它主題。 hexo 主

281瀏覽
0推薦
0評論

【Excel使用技巧】vlookup函數 原創

背景 前不久開發了一個運營小工具,運營人員上傳一個id的列表,即可導出對應id的額外數據。需求本身不復雜,很快就開發完了,但上線后,運營反饋了一個問題,導出后的數據跟導出之前的數據順序不一致。 經過溝通后發現,原來運營的id數據是從另一個 Excel 復制出來的一列,用工具導出完之后,需要再把新增的一列數據復制回去。就像下面這樣: emmmm,跟從產品經理了解到的需求好像還是有點點不一樣,那怎么解決這個問題呢? 方案一、排序 拍了拍我聰明的大腦殼,一個騷操作就誕生了,把兩

160瀏覽
0推薦
0評論

【RabbitMQ】如何進行消息可靠投遞【下篇】 原創

說明 上一篇文章里,我們了解了如何保證消息被可靠投遞到RabbitMQ的交換機中,但還有一些不完美的地方,試想一下,如果向RabbitMQ服務器發送一條消息,服務器確實也接收到了這條消息,于是給你返回了ACK確認消息,但服務器拿到這條消息一看,找不到路由它的隊列,于是就把它丟進了垃圾桶,emmm,我猜應該屬于可回收垃圾。 如何讓消息可靠投遞到隊列 如果你對上面的描述還不是很清楚,那我再用代碼來說明一次。 在僅開啟了生產者確認機制的情況下,交換機接收到消息后,會直接給消息生產者發

371瀏覽
1推薦
0評論

【RabbitMQ】如何進行消息可靠投遞【上篇】 原創

說明 前幾天,突然發生線上報警,釘釘連發了好幾條消息,一看是RabbitMQ相關的消息,心頭一緊,難道翻車了? [橙色報警] 應用[xxx]在[08-15 16:36:04]發生[錯誤日志異常],alertId=[xxx]。由[org.springframework.amqp.rabbit.listener.BlockingQueueConsumer:start:620]觸發。 應用xxx 可能原因如下 服務名為: 異常為:org.springframework.amqp.rabbit.listener.BlockingQueueConsumer:start:620 產生原因如下:...

1059瀏覽
1推薦
0評論

【最佳實踐】如何優雅的進行重試 原創

本文口味:冰鎮楊梅 預計閱讀:20分鐘 說明 最近公司在搞活動,需要依賴一個第三方接口,測試階段并沒有什么異常狀況,但上線后發現依賴的接口有時候會因為內部錯誤而返回系統異常,雖然概率不大,但總因為這個而報警總是不好的,何況死信隊列的消息還需要麻煩運維進行重新投遞,所以加上重試機制勢在必行。 重試機制可以保護系統減少因網絡波動、依賴服務短暫性不可用帶來的影響,讓系統能更穩定的運行的一種保護機制。讓你原本就穩如狗的系統更是穩上加穩。 為了方便說明,先假設我們想要

400瀏覽
1推薦
0評論

【RabbitMQ】一文帶你搞定RabbitMQ延遲隊列 原創

本文口味:魚香肉絲 預計閱讀:10分鐘 一、說明 在上一篇中,介紹了RabbitMQ中的死信隊列是什么,何時使用以及如何使用RabbitMQ的死信隊列。相信通過上一篇的學習,對于死信隊列已經有了更多的了解,這一篇的內容也跟死信隊列息息相關,如果你還不了解死信隊列,那么建議你先進行上一篇文章的閱讀。 這一篇里,我們將繼續介紹RabbitMQ的高級特性,通過本篇的學習,你將收獲: 什么是延時隊列 延時隊列使用場景 RabbitMQ中的TTL 如何利用RabbitMQ來實現延時隊列 二、本文大綱 以下是本

1589瀏覽
2推薦
0評論

【RabbitMQ】一文帶你搞定RabbitMQ死信隊列 原創

本文口味:爆炒魷魚? ?預計閱讀:15分鐘 一、說明 RabbitMQ是流行的開源消息隊列系統,使用erlang語言開發,由于其社區活躍度高,維護更新較快,性能穩定,深得很多企業的歡心(當然,也包括我現在所在公司【手動滑稽】)。 為了保證訂單業務的消息數據不丟失,需要使用到RabbitMQ的死信隊列機制,當消息消費發生異常時,將消息投入死信隊列中。但由于對死信隊列的概念及配置不熟悉,導致曾一度陷入百度的汪洋大海,無法自拔,很多文章都看起來可行,但是實際上卻并不能幫我解決實際問題。

708瀏覽
0推薦
0評論

【Mysql】索引簡介 原創

本文口味:番茄炒蛋,預計閱讀:10分鐘。 博客又停更了兩個月,在這期間,對人生和世界多了許多思考。在人生的不同階段,會對生活和世界有著不一樣的認知,而認知的改變也會直接反應在行為模式之中。 對于生活的思考心得也會在之后的時間里,慢慢分享給大家,一方面是對自己心路歷程的記錄和總結,另一方面也希望能給遇到同樣問題或疑惑的朋友以幫助。目前生活已經慢慢調整到我想要的樣子,博客寫作也該繼續起航了。 一、說明 Mysql是最常用的關系型數據庫,而索引則是Mysql調優中最關心的部

745瀏覽
0推薦
0評論

【問題總結】萬萬沒想到,竟然栽在了List手里 原創

說明 昨天同事開發的時候遇到了一個奇怪的問題。 使用Guava做緩存,往里面存一個List,為了方便描述,稱它為列表A,在另一個地方取出來,再跟列表B中的元素進行差集處理,簡單來說,就像是下面這樣: public class ArrayListTest { // 方便起見,這里用HashMap來做緩存 private Map<String, List<Long>> cache = new HashMap<>(); private void save(){ List<Long> listA = createListA(); cache.put("listA",...

1146瀏覽
0推薦
0評論

【動態規劃】一次搞定三種背包問題 原創

前文鏈接 【動態規劃】01背包問題 【動態規劃】01背包問題【續】 【動態規劃】完全背包問題 【動態規劃】多重背包問題 說明 看完前面四篇關于背包問題的文章,你會發現背包問題其實也不過如此,而且它們之間有很多相似的地方,本篇文章就來揭開它們面紗,將背包問題徹底搞定。 三種背包問題的比較 先來回顧一下三個背包問題的定義: 01背包: 有N件物品和一個容量為V的背包,第i件物品消耗的容量為Ci,價值為Wi,求解放入哪些物品可以使得背包中總價值最大。 完全背包: 有N種物品和

4716瀏覽
8推薦
1評論

【動態規劃】多重背包問題 原創

說明 前面已經介紹完了01背包和完全背包,今天介紹最后一種背包問題——多重背包。 這個背包,聽起來就很麻煩的樣子。別慌,只要你理解了前面的兩種背包問題,拿下多重背包簡直小菜一碟。 如果沒有看過前兩篇01背包和完全背包的文章,強烈建議先閱讀一下,因為本文跟前兩篇文章關聯性很強。 多重背包 有N種物品和一個容量為T的背包,第i種物品最多有M[i]件可用,價值為P[i],體積為V[i],求解:選哪些物品放入背包,可以使得這些物品的價值最大,并且體積總和不超過背包容量。 對比一下完

2824瀏覽
1推薦
1評論

【動態規劃】完全背包問題 原創

說明 在上一篇中,我們對01背包問題進行了比較深入的研究,這一篇里,我們來聊聊另一個背包問題:完全背包。 完全背包 有N種物品和一個容量為T的背包,每種物品都就可以選擇任意多個,第i種物品的價值為P[i],體積為V[i],求解:選哪些物品放入背包,可卡因使得這些物品的價值最大,并且體積總和不超過背包容量。 跟01背包一樣,完全背包也是一個很經典的動態規劃問題,不同的地方在于01背包問題中,每件物品最多選擇一件,而在完全背包問題中,只要背包裝得下,每件物品可以選擇任意多件。

10013瀏覽
3推薦
3評論

【Python爬蟲】聽說你又鬧書荒了?豆瓣讀書9.0分書籍陪你過五一 原創

說明 五一將至,又到了學習的季節。目前流行的各大書單主打的都是豆瓣8.0評分書籍,卻很少有人來聊聊這9.0評分的書籍長什么樣子。剛好最近學了學python爬蟲,那就拿豆瓣讀書來練練手。 爬蟲 本來思路是直接爬豆瓣的書籍目錄,將評分9.0以上的書篩選出來,一打開發現事情并不簡單,幾千萬本書可不好爬 = =,于是轉化一下思路,看有沒有類似的書單。 一搜還真有,找到一個9.0評分的榜單,大大減少了工作量,這樣就不用先爬一下整站書籍來篩選了。看了看榜單,應該是某位好心的書友手工整理的

4802瀏覽
31推薦
0評論

【Spring源碼解讀】bean標簽中的屬性(二)abstract 屬性和 parent 屬性 原創

abstract 屬性說明 abstract 在java的語義里是代表抽象的意思,用來說明被修飾的類是抽象類。在Spring中bean標簽里的 abstract 的含義其實也差不多,表示當前bean是一個抽象的bean,從而不會為它生成實例化對象。 聲明一個bean,但是又不讓它實例化??? 莫方,存在即合理,abstract 屬性存在必定有其存在的意義,且聽我慢慢道來。 parent 屬性說明 在此之前,我們先說一下另一個屬性: parent ,顧名思義,就是一個認爸爸的屬性,用來表明當前的bean的老爸是誰,這樣就能順利的繼

835瀏覽
0推薦
0評論

【效率工具】史上最好用的SSH一鍵登錄腳本,第三版更新! 原創

說明 時隔一周,GotoSSH又迎來了一次重大更新,讓這個史詩級的shell工具變得更加絲般順滑了~ 這次的主要更新是對自定義全局命令以及自定義屬性的支持,讓設置更加靈活,此外,對各個細節進行了調整,并修復了一些極少數情況下可能會發生的bug。 另外,最重要的一點是,對代碼進行了大量優化和注釋,讓小白也能很輕松的看懂各個地方是在做什么事情,畢竟對于服務器信息這么隱私的信息,交給一個第三方shell來管理,大家難免會有些不放心嘛,這個可以理解,所以特意做了這個更新,讓大家能放心

887瀏覽
0推薦
1評論

【效率工具】史上最好用的SSH一鍵登錄腳本,第三版更新!

? 說明 時隔一周,GotoSSH又迎來了一次重大更新,讓這個史詩級的shell工具變得更加絲般順滑了~ 這次的主要更新是對自定義全局命令以及自定義屬性的支持,讓設置更加靈活,此外,對各個細節進行了調整,并修復了一些極少數情況下可能會發生的bug。 另外,最重要的一點是,對代碼進行了大量優化和注釋,讓小白也能很輕松的看懂各個地方是在做什么事情,畢竟對于服務器信息這么隱私的信息,交給一個第三方shell來管理,大家難免會有些不放心嘛,這個可以理解,所以特意做了這個更新,讓大家能

13瀏覽
0推薦
0評論

【效率工具】史上最好用的SSH一鍵登錄腳本,超強更新! 原創

說明 雖然已經是凌晨,但絲毫不能掩蓋我激動的心情,今天完成了對GotoSSH的一次大更新,新增了兩個肥腸實用的功能,是真的好用,話不多說,先來看效果圖: 普通的一鍵登錄: 一鍵登錄跳板機,然后跳轉登錄線上服務器: 一鍵登錄跳板機查看指定日志: 一鍵登錄跳板機后跳轉線上服務器查看指定日志: 然后是更加勁爆內容,一鍵從跳板機復制指定文件到本地: 一鍵從生產環境復制指定文件到本地: 我只能說,是真的強。 Shell腳本 Shell腳本已經發布到了github上,鏈接在此:https://githu

1648瀏覽
0推薦
0評論
首頁上一頁12345下一頁尾頁
意見反饋 幫助中心 APP下載
官方微信
lpl竞猜