日韩欧美亚洲 _ 欧美亚洲一区 _ 日本亚洲欧美 _ 亚洲精品欧美 国产白袜脚足J棉袜在线观看_亚洲熟妇av一区二区三区_久久天天躁狠狠躁夜_精品众筹模特私拍在线

由JDK bug引發(fā)的線上OOM

由JDK bug引發(fā)的線上OOM

最近生產(chǎn)環(huán)境的一個(gè)應(yīng)用忽然發(fā)生了OOM,還好是業(yè)務(wù)低峰期,沒(méi)有導(dǎo)致什么嚴(yán)重問(wèn)題,下面記錄下本次排查的過(guò)程;

故障臨時(shí)處理

在某天下午,正在愉快的寫(xiě)代碼時(shí),忽然看到業(yè)務(wù)反饋支付服務(wù)不能用的消息,因?yàn)樽罱鼪](méi)有發(fā)布,所以感覺(jué)不會(huì)是什么大事,十有八九是網(wǎng)絡(luò)波動(dòng)啥的,畢竟之前遇到過(guò)好多次,那剩下的就是找證據(jù)了,先看看日志,有沒(méi)有報(bào)錯(cuò)(暫時(shí)還未接告警,所以要人肉看),結(jié)果不看不要緊,一看嚇一跳,日志密密麻麻全都是OOM報(bào)錯(cuò)

閱讀全文

feign-eureka-ribbon的協(xié)作原理

feign-eureka-ribbon的協(xié)作原理

在我們的項(xiàng)目中使用了feigneureka、ribbon這三個(gè)組件,最近想要在負(fù)載均衡上做些文章,需要了解這三個(gè)組件底層是如何協(xié)作的,這樣才能找到突破口,所以給這三個(gè)組件的源碼大概翻了一遍,最終整理出該筆記,希望對(duì)同樣對(duì)這三個(gè)組件是如何協(xié)作感興趣的讀者一些幫助;

文中使用的spring cloud版本為Greenwich.SR6

PS: 本文為純?cè)创a分析,所以配合源碼閱讀本文最佳;

閱讀全文

架構(gòu)師的核心能力-抽象能力

架構(gòu)的核心是管理復(fù)雜度,架構(gòu)師的核心能力是抽象能力,什么是抽象能力?抽象能力就是一種化繁為簡(jiǎn)的能力。何為化繁為簡(jiǎn)?就是把一種復(fù)雜的事情變得簡(jiǎn)單的能力,比如通過(guò)打比喻讓別人很容易聽(tīng)明白你說(shuō)的意思就是一種抽象能力。如何鍛煉抽象能力?我覺(jué)得有三種方法,第一種是用歸納法找共性,從多個(gè)問(wèn)題中找到共同的問(wèn)題提煉通用解決方案,去其糟粕取其精華。第二種通過(guò)演繹法找關(guān)系,從多個(gè)問(wèn)題中找關(guān)系,把多個(gè)問(wèn)題串成一個(gè)問(wèn)題,系統(tǒng)化解決問(wèn)題!第三種是通過(guò)歸納法找特性?;睘楹?jiǎn)需要不斷的思考,不斷的看清一件事的本質(zhì),這個(gè)事的解決方案越容易。

閱讀全文

Nginx unexpected end of file 配置證書(shū)遇到問(wèn)題,如何解決?

原文鏈接 https://bysocket.com Illusion Diffusion Web、Google Maps Scraper

一、Nginx unexpected end of file 問(wèn)題

通過(guò) letsencrypt 申請(qǐng)證書(shū)后,默認(rèn)服務(wù)器安裝了 Nginx 1.8 Decompiler 發(fā)現(xiàn),在默認(rèn)的 /etc/nginx/sites-enabled/default 內(nèi)容配置 SSL 的 site.com.key 后。重啟 Nginx 出現(xiàn)一下錯(cuò)誤:

Google Maps ExtractorWebSite Email Extractor、Facebook Group ExtractorInstgram Export Tool、 AI text-to-speech model

閱讀全文

資產(chǎn)管理數(shù)字化建設(shè)的思考

聲明

本文涉及到的僅限于個(gè)人對(duì)資產(chǎn)管理數(shù)字化的一些思考,并非代表某家公司。其中涉及到的一些公開(kāi)信息都來(lái)自互聯(lián)網(wǎng),如果涉及到隱私,請(qǐng)聯(lián)系作者刪除。

前言

我們經(jīng)常聽(tīng)到的有“財(cái)富管理數(shù)字化轉(zhuǎn)型”,“資產(chǎn)管理數(shù)字化轉(zhuǎn)型”,“大資管數(shù)字化轉(zhuǎn)型”,“投研數(shù)字化轉(zhuǎn)型”,“資管數(shù)字化轉(zhuǎn)型”等等名詞。在做數(shù)字化轉(zhuǎn)型前,我們需要先清晰的定義要解決的業(yè)務(wù)領(lǐng)域,抽象出問(wèn)題域。那么我們先從“大資管”出發(fā),逐步抽象出問(wèn)題域,最終根據(jù)問(wèn)題域來(lái)匹配對(duì)應(yīng)的解決方案。

閱讀全文

分布式場(chǎng)景下的穩(wěn)定性保障

1、什么是穩(wěn)定性保障

穩(wěn)定性保障簡(jiǎn)單理解就是不讓系統(tǒng)出現(xiàn)不可用的情況,或者不可用的情況每年只能發(fā)生幾十分鐘。為什么要穩(wěn)定性保障?因?yàn)楝F(xiàn)在很多的電商和支付系統(tǒng)已經(jīng)屬于社會(huì)基礎(chǔ)系統(tǒng),持續(xù)一段時(shí)間不可用會(huì)影響比較大,同時(shí)也損失了用戶的信任。

穩(wěn)定性保障的場(chǎng)景非常多,只要流量非常大的業(yè)務(wù)就需要系統(tǒng)性的進(jìn)行穩(wěn)定性保障,包括直播、電商秒殺、電商大促等場(chǎng)景。2022年9月3日晚劉德華“把我唱給你聽(tīng)”線上演唱會(huì),最終這場(chǎng)線上演唱會(huì)的在線觀看人次達(dá)到3.5億,那么支持3.5億人次觀看就是一種穩(wěn)定性保障場(chǎng)景。每年電商網(wǎng)站618、99、雙11和雙12大促。除了大促以外,還有很多億級(jí)用戶的產(chǎn)品也需要穩(wěn)定性保障,如電商交易、第三方支付、演唱會(huì)直播等場(chǎng)景。還有很多秒殺的場(chǎng)景,如每晚8點(diǎn)某電商網(wǎng)商1499秒殺茅臺(tái)、在12306網(wǎng)站提前N天搶票。

閱讀全文

分布式場(chǎng)景下的資損防控

資損的定義

資損是在指在業(yè)務(wù)活動(dòng)中,業(yè)務(wù)規(guī)則和實(shí)際資金流動(dòng)不一致,導(dǎo)致業(yè)務(wù)參與方中的任何一方或多方遭受了資金損失。簡(jiǎn)單理解就是系統(tǒng)的某個(gè)功能出現(xiàn)了BUG,導(dǎo)致用戶或者公司出現(xiàn)了資金的損失,比如在營(yíng)銷過(guò)程中多給某個(gè)用戶發(fā)了10元紅包,或者是用戶領(lǐng)取了10元紅包無(wú)法使用,用戶在支付時(shí)看到的訂單金額是100元,結(jié)果支付了101元或99元,這些情況都屬于資損,用戶支付了101用戶資損1元,用戶實(shí)際支付了99元公司資損了1元。

為什么要重視資損防控?因?yàn)橘Y金損失如果金額巨大會(huì)直接毀掉一個(gè)業(yè)務(wù),比如在某個(gè)業(yè)務(wù)一次運(yùn)營(yíng)活動(dòng)中把9折的優(yōu)惠券配成1折,然后發(fā)給了幾百萬(wàn)個(gè)用戶,這里面可能涉及到幾千萬(wàn)的資金損失,但是這個(gè)業(yè)務(wù)本身就沒(méi)有盈利幾千萬(wàn),所以只要業(yè)務(wù)涉及到資金流動(dòng)一定是非常重要的事情。

閱讀全文

使用了lombok后如何生成正確源碼包

使用lombok后,如果沒(méi)有任何配置,則打包的源碼與實(shí)際class文件是不符合的,此時(shí)打開(kāi)源碼IDEA會(huì)提示Library source does not match the bytecode for class,而解決該問(wèn)題也很簡(jiǎn)單,只需要pom中增加如下配置即可,打包時(shí)指定maven參數(shù)-Prelease即可生成正確的源碼包:

閱讀全文

聊聊動(dòng)態(tài)線程池的9個(gè)場(chǎng)景

大家好,我是小馬哥。

線程池是一種基于 池化思想管理線程 的工具,使用線程池可以減少 創(chuàng)建銷毀線程的開(kāi)銷,避免線程過(guò)多導(dǎo)致 系統(tǒng)資源耗盡。在 高并發(fā)以及大批量 的任務(wù)處理場(chǎng)景,線程池的使用是必不可少的。

如果有在項(xiàng)目中實(shí)際使用線程池,相信你可能會(huì)遇到以下痛點(diǎn):

  1. 線程池隨便定義,線程資源過(guò)多,造成服務(wù)器高負(fù)載。
  2. 線程池參數(shù)不易評(píng)估,隨著業(yè)務(wù)的并發(fā)提升,業(yè)務(wù)面臨出現(xiàn)故障的風(fēng)險(xiǎn)。
  3. 線程池任務(wù)執(zhí)行時(shí)間超過(guò)平均執(zhí)行周期,開(kāi)發(fā)人員無(wú)法感知。
  4. 線程池任務(wù)堆積,觸發(fā)拒絕策略,影響既有業(yè)務(wù)正常運(yùn)行。
  5. 當(dāng)業(yè)務(wù)出現(xiàn)超時(shí)、熔斷等問(wèn)題時(shí),因?yàn)闆](méi)有監(jiān)控,無(wú)法確定是不是線程池引起。
  6. 原生線程池不支持運(yùn)行時(shí)變量的傳遞,比如 MDC 上下文遇到線程池就 GG。
  7. 無(wú)法執(zhí)行優(yōu)雅關(guān)閉,當(dāng)項(xiàng)目關(guān)閉時(shí),大量正在運(yùn)行的線程池任務(wù)被丟棄。
  8. 線程池運(yùn)行中,任務(wù)執(zhí)行停止,懷疑發(fā)生死鎖或執(zhí)行耗時(shí)操作,但是無(wú)從下手。
閱讀全文

java服務(wù)器調(diào)試指南

java服務(wù)器調(diào)試指南

在實(shí)際開(kāi)發(fā)中,總會(huì)遇到程序啟動(dòng)不起來(lái)或者運(yùn)行結(jié)果不符合期望的情況,如果是在本地,直接debug就行了,幾乎人人都會(huì),但是如果到了遠(yuǎn)程,大多數(shù)情況下我們可以看日志,通過(guò)日志排查定位到問(wèn)題,但是如果你的日志不多,或者日志中看不出問(wèn)題,此時(shí)情況就比較難以處理了,而實(shí)際上我們?nèi)匀豢梢酝ㄟ^(guò)debug的形式來(lái)解決,只不過(guò)由原來(lái)的本地在ide中通過(guò)GUI來(lái)debug變?yōu)橥ㄟ^(guò)命令行來(lái)debug;

閱讀全文

如何利用 RPA 實(shí)現(xiàn)自動(dòng)化獲客?

一、RPA 是什么?難嗎?

RPA 對(duì)大家來(lái)說(shuō),可能挺陌生的,其實(shí)它很簡(jiǎn)單。

Robotic Process Automation(簡(jiǎn)稱 RPA )機(jī)器人流程自動(dòng)化,是一種技術(shù),是以軟件機(jī)器人 + AI / OCR 等科技能力結(jié)合,在軟件上的某些業(yè)務(wù)操作場(chǎng)景中,達(dá)到機(jī)器替人,實(shí)現(xiàn)重復(fù)的工作自動(dòng)化。

RPA 通過(guò)模擬人在電腦、平板和手機(jī)上的操作方式,包括 Web 自動(dòng)化、桌面軟件自動(dòng)化、手機(jī) APP 自動(dòng)化、鼠標(biāo)鍵盤自動(dòng)化等等,實(shí)現(xiàn)不需要人工,替人將操作流程自動(dòng)化。

閱讀全文

關(guān)于證書(shū),這里有你想知道的一切

關(guān)于證書(shū),這里有你想知道的一切

在HTTPS開(kāi)發(fā)中,你是否被各種證書(shū)搞得暈頭轉(zhuǎn)向?.pem證書(shū)?.der證書(shū)?X.509證書(shū)?本文帶你理清這些證書(shū)叫法背后的含義;

閱讀全文

k8s中部署traefik并開(kāi)啟https支持

k8s中部署traefik并開(kāi)啟https支持

k8s現(xiàn)在已經(jīng)是容器編排領(lǐng)域的事實(shí)標(biāo)準(zhǔn)了,而在我們部署k8s集群時(shí),ingress組件是必不可少的,在k8s領(lǐng)域,做的比較好的ingress組件就是traefik了,原生支持k8s,配置簡(jiǎn)單,上手極快,下面我們就來(lái)講講如何部署traefik并開(kāi)啟https支持;

閱讀全文

領(lǐng)域事件 disruptor 使用場(chǎng)景之實(shí)現(xiàn)Spring事件驅(qū)動(dòng)模型 ApplicationEvent

前言

Disruptor 是一個(gè)開(kāi)源的并發(fā)框架。由英國(guó)外匯交易公司LMAX開(kāi)發(fā)的一個(gè)高性能隊(duì)列,并且大大的簡(jiǎn)化了并發(fā)程序開(kāi)發(fā)的難度,獲得2011Duke’s程序框架創(chuàng)新獎(jiǎng)。

閱讀全文

MySQL驅(qū)動(dòng)中關(guān)于時(shí)間的坑

MySQL驅(qū)動(dòng)中關(guān)于時(shí)間的坑

背景:MySQL 8.0數(shù)據(jù)庫(kù);

最近在做一個(gè)小框架,因?yàn)楸旧肀容^精簡(jiǎn),就沒(méi)有引入太多依賴,直接用了JDBC來(lái)操作數(shù)據(jù)庫(kù),因?yàn)槲业谋碇杏幸粋€(gè)datetime類型的字段,對(duì)應(yīng)的Java代碼中使用的是java.time.LocalDateTime,在處理這個(gè)日期字段的時(shí)候,就遇到了一個(gè)有趣的問(wèn)題;

在我的數(shù)據(jù)庫(kù)表建好后,在Java中使用JDBC原生API實(shí)現(xiàn)了一個(gè)repository,包含一些數(shù)據(jù)庫(kù)的操作,因?yàn)榇a中有java.time.LocalDateTime字段,在使用java.sql.PreparedStatement的時(shí)候不確認(rèn)java.sql.PreparedStatement.setObject(int, java.lang.Object)方法接收java.time.LocalDateTime類型的入?yún)⒑笫欠窨梢哉_處理,就寫(xiě)了一小段測(cè)試用例來(lái)測(cè)試,核心代碼如下:

preparedStatement.setObject(1, LocalDateTime.now());

一行簡(jiǎn)單的JDBC調(diào)用設(shè)置參數(shù),參數(shù)類型是LocalDateTime,最終發(fā)現(xiàn)沒(méi)有報(bào)錯(cuò),如果一切OK,那么事情到這里就結(jié)束了,但是…….

閱讀全文

return top