我們?cè)谑褂胢ybatis時(shí),如果出現(xiàn)sql問(wèn)題,一般會(huì)把mybatis配置文件中的logging.level參數(shù)改成debug,這樣就能在日志中看到某個(gè)mapper最終執(zhí)行sql、入?yún)⒑陀绊憯?shù)據(jù)行數(shù)。我們拿到sql和入?yún)?,手?dòng)拼接成完整的sql,然后將該sql在數(shù)據(jù)庫(kù)中執(zhí)行一下,就基本能定位到問(wèn)題原因。mybatis的日志功能使用起來(lái)還是非常方便的,大家有沒(méi)有想過(guò)它是如何設(shè)計(jì)的呢?
本來(lái)不知道寫點(diǎn)啥,正好手頭有個(gè)新項(xiàng)目試著用阿里的Seata中間件做分布式事務(wù),那就做一個(gè)實(shí)踐分享吧!
RESTful想必大家都耳熟能詳,但為什么要有RESTful?RESTful 到底是什么意思?為什么稱之為 RESTful 架構(gòu)?我不用 RESTful 不行嗎?什么樣才叫真正的 RESTful?
越來(lái)越多的組織開(kāi)始放棄單體應(yīng)用,逐步轉(zhuǎn)向微服務(wù)的架構(gòu)模式–將業(yè)務(wù)流程分為多個(gè)獨(dú)立的服務(wù)。微服務(wù)架構(gòu),就是將各個(gè)流程按照業(yè)務(wù)拆分為獨(dú)立的服務(wù)。在上面的示例中,機(jī)票預(yù)訂服務(wù)可以被拆分為機(jī)票預(yù)訂,付款和確認(rèn),拆分后的微服務(wù)可以通過(guò)接口相互通信。那么,微服務(wù)與單體應(yīng)用,究竟有什么不同?
小M之前一直從事企業(yè)信息化改革工作,幫助過(guò)幾家公司實(shí)現(xiàn)了云化,積累了一定的項(xiàng)目經(jīng)驗(yàn)。L總所在的企業(yè),信息系統(tǒng)架構(gòu)老舊,經(jīng)過(guò)10幾年的發(fā)展,形成了幾十個(gè)大“煙囪”系統(tǒng),數(shù)據(jù)的互聯(lián)互通是難題,嚴(yán)重制約了業(yè)務(wù)的發(fā)展,讓集團(tuán)大領(lǐng)導(dǎo)非常不滿。于是L總聘用了小M,先是任命他為“基礎(chǔ)資源整合”負(fù)責(zé)人,具體干什么呢?就是建云平臺(tái),把集團(tuán)各部門的服務(wù)器、網(wǎng)絡(luò)資源統(tǒng)一管理,提高硬件使用率,降低成本。
大數(shù)據(jù)DT我們來(lái)看一下阿里巴巴對(duì)前臺(tái)、中臺(tái)和后臺(tái)職責(zé)的定位。前臺(tái)主要面向客戶以及終端銷售者,實(shí)現(xiàn)營(yíng)銷推廣以及交易轉(zhuǎn)換。中臺(tái)主要面向運(yùn)營(yíng)人員,完成運(yùn)營(yíng)支撐。后臺(tái)主要面向后臺(tái)管理人員,實(shí)現(xiàn)流程審核、內(nèi)部管理以及后勤支撐,比如采購(gòu)、人力、財(cái)務(wù)和OA等系統(tǒng)。企業(yè)級(jí)能力往往是前臺(tái)、中臺(tái)、后...
本文主要講述了在傳統(tǒng)電商企業(yè)中,訂單系統(tǒng)應(yīng)承載的角色,就訂單系統(tǒng)所包含的主要功能模塊梳理了設(shè)計(jì)思路,并對(duì)訂單系統(tǒng)未來(lái)的發(fā)展做了一些思考。
提到路由,不免會(huì)想到網(wǎng)絡(luò)通信過(guò)程中起到數(shù)據(jù)包轉(zhuǎn)發(fā)的路由器。而我們今天講到支付路由系統(tǒng),也是起到類似的作用。
當(dāng)架構(gòu)師大劉看到實(shí)習(xí)生小李提交的記賬流水亂序的問(wèn)題的時(shí)候,他知道沒(méi)錯(cuò)了:這一次,大劉又要用一致性哈希這個(gè)老伙計(jì)來(lái)解決這個(gè)問(wèn)題了。嗯,一致性哈希,分布式架構(gòu)師必備良藥,讓我們一起來(lái)嘗嘗它。
一文了解Elasticsearch集群部署與性能優(yōu)化。
近來(lái),一些關(guān)于面向服務(wù)架構(gòu)的話題,特別是針對(duì)微服務(wù)架構(gòu)的弊端這個(gè)話題上進(jìn)行了大量的討論。雖然在幾年前,微服務(wù)架構(gòu)受到很多人的青睞,因?yàn)樗鼈兲峁┝嗽S多好處,如獨(dú)立部署的靈活性、明確的所有權(quán)、系統(tǒng)穩(wěn)定性的改善以及更好的分離問(wèn)題等優(yōu)點(diǎn)。但是不久,就開(kāi)始有人吐槽微服務(wù)會(huì)大幅增加系統(tǒng)復(fù)雜性,有時(shí)甚至連一些簡(jiǎn)單的功能都難以構(gòu)建。
全鏈路壓測(cè)作為線上服務(wù)穩(wěn)定性保障的重要手段,對(duì)高德來(lái)說(shuō)也是非常重要的。高德全鏈路壓測(cè)平臺(tái)TestPG從無(wú)到有,在經(jīng)歷過(guò)常態(tài)化壓測(cè)后,已基本可以保障高德的所有全鏈路壓測(cè)和日常壓測(cè),達(dá)到了平臺(tái)初期快速、準(zhǔn)確壓測(cè)和全鏈路壓測(cè)的目標(biāo)。而語(yǔ)料生產(chǎn)(流量處理)作為全鏈路壓測(cè)的重要環(huán)節(jié),本文將對(duì)此做重點(diǎn)介紹。
下面我們就要對(duì)不同的協(xié)議層進(jìn)行分類介紹了,我們還是采用自上而下的方式來(lái)介紹,這種介紹對(duì)讀者來(lái)說(shuō)更容易接納,吸收程度更好。
一位七牛的資深架構(gòu)師曾經(jīng)說(shuō)過(guò)這樣一句話:Nginx+業(yè)務(wù)邏輯層+數(shù)據(jù)庫(kù)+緩存層+消息隊(duì)列,這種模型幾乎能適配絕大部分的業(yè)務(wù)場(chǎng)景。這么多年過(guò)去了,這句話或深或淺地影響了我的技術(shù)選擇,以至于后來(lái)我花了很多時(shí)間去重點(diǎn)學(xué)習(xí)緩存相關(guān)的技術(shù)。我在10年前開(kāi)始使用緩存,從本地緩存、到分布式緩存、再到多級(jí)緩存,踩過(guò)很多坑。下面我結(jié)合自己使用緩存的歷程,談?wù)勎覍?duì)緩存的認(rèn)識(shí)。
大型互聯(lián)網(wǎng)公司一般都會(huì)要求消息傳遞最大限度的不丟失,比如用戶服務(wù)給代金券服務(wù)發(fā)送一個(gè)消息,如果消息丟失會(huì)造成用戶未收到應(yīng)得的代金券,最終用戶會(huì)投訴。為避免上面類似情況的發(fā)生,除了做好補(bǔ)償措施,更應(yīng)該在系設(shè)計(jì)的時(shí)候充分考慮各種異常,設(shè)計(jì)一個(gè)穩(wěn)定、高可用的消息系統(tǒng)。
小張,開(kāi)發(fā)一個(gè)大型系統(tǒng),寫了一個(gè)統(tǒng)一的接口層;日志門面(日志的一個(gè)抽象層);logging-abstract.jar;給項(xiàng)目中導(dǎo)入具體的日志實(shí)現(xiàn)就行了;我們之前的日志框架都是實(shí)現(xiàn)的抽象層……
分布式事務(wù)你應(yīng)該是知道的。但是這個(gè)多線程事務(wù)...... 沒(méi)事,我慢慢給你說(shuō)。
有粉絲問(wèn)我到底什么是ARM,搞不清楚Cortex、arm內(nèi)核、arm架構(gòu)、ARM指令集、soc這些概念都是什么關(guān)系,本文給大家整理一下關(guān)于ARM相關(guān)的一些概念。
面對(duì)超高的并發(fā),首先硬件層面機(jī)器要能扛得住,其次架構(gòu)設(shè)計(jì)做好微服務(wù)的拆分,代碼層面各種緩存、削峰、解耦等等問(wèn)題要處理好,數(shù)據(jù)庫(kù)層面做好讀寫分離、分庫(kù)分表,穩(wěn)定性方面要保證有監(jiān)控,熔斷限流降級(jí)該有的必須要有,發(fā)生問(wèn)題能及時(shí)發(fā)現(xiàn)處理。這樣從整個(gè)系統(tǒng)設(shè)計(jì)方面就會(huì)有一個(gè)初步的概念。
關(guān)于架構(gòu)這個(gè)概念很難給出一個(gè)明確的定義,也沒(méi)有一個(gè)標(biāo)準(zhǔn)的定義。硬是要給一個(gè)概述,我認(rèn)為架構(gòu)就是對(duì)系統(tǒng)中的實(shí)體以及實(shí)體之間的關(guān)系所進(jìn)行的抽象描述。