總摘要: 解耦. 接口降低. 架構(gòu).
2017-11-27
- 摘要: 解耦. 接口降低. 架構(gòu).
1.為什么說(shuō)解耦的戰(zhàn)術(shù)特石,決定了架構(gòu)的高度骇笔?[成都-梅小西]
北京-喜<-> 15:16:00
理論上 確定是解耦的能力 等于架構(gòu)的高度迈着。 但是不是他列舉的那些解耦例子, 今天終于剛剛梳理下,總共3個(gè)方面.
北京-喜<-> 15:17:15
1:端對(duì)端的交互方式 2:端內(nèi)的應(yīng)用架構(gòu) 3:數(shù)據(jù)架構(gòu)。 3種都涉及解耦和協(xié)作. 端對(duì)端的交互方式:本質(zhì)上是3種谢揪。 (通常說(shuō)的事件驅(qū)動(dòng)蕉陋、ACTOR、工作流拨扶、分層架構(gòu)凳鬓、甚至是同步命令,都是這一層的)患民。 3種本質(zhì)是啥自己總結(jié)吧. 端內(nèi)的應(yīng)用架構(gòu):比如DDD缩举、ACOTR、內(nèi)部分層涉及匹颤、一些執(zhí)行框架仅孩,都屬于這一層.
北京-coder-在線教育(-) 15:20:38
數(shù)據(jù)架構(gòu),就是大數(shù)據(jù)了唄
北京-喜<-> 15:20:57
簡(jiǎn)單說(shuō):數(shù)據(jù)視圖和計(jì)算, 比如CQRS印蓖、大數(shù)據(jù)辽慕、多維異構(gòu)數(shù)據(jù)等.
廣州-小護(hù)士<-> 15:22:28
AWS Lambda 服務(wù)屬于端對(duì)端還是數(shù)據(jù)架構(gòu)?
北京-Easy哥(-) 15:24:39
這個(gè) 覆蓋面太廣了 甚至是一種 反命令式架構(gòu)設(shè)計(jì)方案
廣州-小護(hù)士<-> 15:25:09
反命令式架構(gòu)是什么赦肃?我就是很疑惑 函數(shù)運(yùn)算到底是哪種溅蛉。。
北京-Easy哥(-) 15:25:50
我們平時(shí) 提的各種設(shè)計(jì)方案 都是基于命令式這個(gè)前提 , 也是現(xiàn)在 計(jì)算機(jī)設(shè)計(jì)的基本方式 , 但是 當(dāng)年 設(shè)計(jì)計(jì)算機(jī)的時(shí)候 可不只這一個(gè)方案 , 還有一種 就是所謂 函數(shù)式設(shè)計(jì) 函數(shù)式設(shè)計(jì)的好處 就是 命令式設(shè)計(jì)要追求的那些東西 . 近些年 隨著 云端應(yīng)用的興起 簡(jiǎn)單的單服務(wù)應(yīng)用 被提上了新高度. 所以 業(yè)界又開(kāi)始搞一些鬼 發(fā)現(xiàn) 我擦 函數(shù)式設(shè)計(jì)有好多東西 很符合我的要求啊. 所以 就拿來(lái) 鼓搗鼓搗 組合出一個(gè)名詞 FAAS.然后 有了這個(gè)名詞 亞馬遜作為云世界領(lǐng)軍人 自然要出個(gè)產(chǎn)品 .曰 Lambda架構(gòu)
南京-wyy(-) 15:28:54
關(guān)鍵在于計(jì)算能力的提高吧他宛,函數(shù)式重新流行起來(lái)
北京-Easy哥(-) 15:29:52
關(guān)鍵在于 現(xiàn)在的系統(tǒng) 復(fù)雜度 到了 不能單純用命令式設(shè)計(jì)模式解決的地步了, 所以 要解決復(fù)雜度 需要一些特殊思考方式 , 函數(shù)式的優(yōu)勢(shì) 能夠補(bǔ)充 命令式的短板
北京-喜<-> 15:29:54
類似視角的問(wèn)題船侧,有中心和無(wú)中心
杭州-光明消逝(-) 15:31:11
簡(jiǎn)單看了下faas,這在設(shè)計(jì)中,就是根據(jù)事件寫很多的ifelse
北京-Easy哥(-) 15:31:33
這本身就是錯(cuò)的, 都已經(jīng)是faas了 目的是消除 if else 和 循環(huán). 函數(shù)式 更省資源,因?yàn)?函數(shù)式對(duì)內(nèi)存的需求是最低的.
北京-喜<-> 15:35:40
函數(shù)式 和 所見(jiàn)即所得有一定沖突
南京-wyy(-) 15:34:53
@北京-Easy哥 那為啥一直是命令式大行其道呢?
北京-Easy哥(-) 15:35:44
那是因?yàn)? 馮諾依曼依據(jù)命令式設(shè)計(jì)的計(jì)算機(jī) 所以 很長(zhǎng)一段時(shí)間 函數(shù)式設(shè)計(jì)被認(rèn)為是 邪教.命令式設(shè)計(jì) 或者說(shuō) 圖靈機(jī) 是因?yàn)?圖靈不但提出了計(jì)算方式 而且 給出了工程上的設(shè)計(jì) . 圖靈他老師 邱奇 把這玩意 弄成了數(shù)學(xué)的分支, 由此可見(jiàn) 工程素質(zhì)多么重要, 這是因?yàn)? 這幾十年 大家的學(xué)習(xí)的路子都是命令式的
北京-喜<-> 15:37:48
復(fù)雜度不斷上升后厅各,函數(shù)式在整體業(yè)務(wù)上理解成本會(huì)上升, 也許是因?yàn)楹瘮?shù)式?jīng)]發(fā)展起來(lái)镜撩,對(duì)應(yīng)理論和方法 沒(méi)普及. 另外一個(gè)就是 函數(shù)式?jīng)]有 基礎(chǔ)設(shè)施
北京-Easy哥(-) 15:40:37
函數(shù)式語(yǔ)言的意思是 在命令式設(shè)計(jì)的機(jī)器上跑函數(shù)式計(jì)算 自然要多消耗轉(zhuǎn)化的成本
2. 接口降級(jí)有什么資料嗎? [深圳-Mt]
北京-jax(-) 18:04:29
得看你們用的框架,springcloud hystrix
深圳-Mt<-> 18:06:29
我去看看hystrix 的實(shí)現(xiàn)吧
廣州-小護(hù)士<-> 18:08:32
hystrix的實(shí)現(xiàn)跟降級(jí)本身無(wú)關(guān), hystrix 里面只是一個(gè)有限狀態(tài)機(jī), 開(kāi)队塘,半開(kāi)琐鲁,關(guān)閉狀態(tài), 定時(shí)輪詢+狀態(tài)變換,沒(méi)了. 降級(jí)是具體業(yè)務(wù)上的事情, 我的意思是人灼,做降級(jí)不一定非要用 Hystrix 啊.
廣州-Ryan(-) 18:14:59
去枝葉保主干呃围段,接口的邊角邏輯直接干掉,主干邏輯保留投放。
接口自身做好過(guò)載保護(hù)奈泪,強(qiáng)依賴下游做好調(diào)用熔斷和自動(dòng)恢復(fù)。
就是保證自己不掛,也保證不要搞掛別人涝桅。
廣州-Galen(-) 18:16:31
這樣子接口規(guī)范就要做得很明確了吧拜姿?上游接口這樣做,問(wèn)題應(yīng)該不大冯遂,下游接口考慮的點(diǎn)也很多蕊肥。
廣州-小護(hù)士<-> 18:17:53
接口設(shè)計(jì)得好不好,跟架構(gòu)有直接關(guān)系~
廣州-Ryan(-) 18:20:39
接口規(guī)范這個(gè)是需要保證的蛤肌,不過(guò)和降級(jí)關(guān)系不大壁却。
要做成自動(dòng)化,就得在 邏輯前后加一些東西裸准,比如 A | B | C展东,B是你的接口,A是進(jìn)入你接口前炒俱,你可以根據(jù)一定規(guī)則拒絕盐肃,達(dá)到過(guò)載保護(hù)。
B就是你的下游权悟,同理砸王。
廣州-Galen(-) 18:24:18
其實(shí)這么說(shuō),上游要搞好過(guò)載保護(hù)峦阁,下游要搞好熔斷和恢復(fù)处硬。和你上句說(shuō)的同理,這些可以抽閑到框架里面實(shí)現(xiàn)部分吧拇派?不然都依賴程序員自己去搞荷辕,會(huì)有點(diǎn)不可靠。
廣州-Ryan(-) 18:25:21
嗯件豌,做個(gè)小工具疮方,你依賴hystrix我理解也是類似的東西。
廣州-小護(hù)士<-> 18:26:36
所以就出現(xiàn)了 Service Mesh 架構(gòu)茧彤。骡显。就是為了解決你們兩剛才說(shuō)的問(wèn)題.
3. [討論]具備架構(gòu)師頭銜的人并不一定是架構(gòu)師<聊聊架構(gòu)[書]>.
北京-喜<-> 20:51:08
架構(gòu)師拿結(jié)果比較難,因素多而復(fù)雜曾掂。 所以做偏C架構(gòu)的居多惫谤,是因?yàn)檫@部分可以通過(guò)量化和抓手驗(yàn)證。只做偏C的部分珠洗,算不算架構(gòu)師呢溜歪,見(jiàn)仁見(jiàn)智這個(gè).
深圳-平凡(-) 21:51:46
c架構(gòu)是什么?
北京-喜<-> 21:53:13
穩(wěn)定性许蓖、可用性等主題有關(guān)
深圳-平凡(-) 22:01:09
我理解的架構(gòu)是創(chuàng)建及維護(hù)軟件結(jié)構(gòu)體系的生命周期
北京-喜<-> 22:30:06
我理解架構(gòu)是使得系統(tǒng)盡可能的不易變蝴猪,建立穩(wěn)固的關(guān)系, 穩(wěn)定和不易變接近, 不管是熔斷调衰、降級(jí),核心非核心梳理自阱。還是一定程度的分層和多數(shù)據(jù)結(jié)構(gòu), 都是為了建設(shè)一個(gè)穩(wěn)固的部分或關(guān)系, 其實(shí)是一段時(shí)間內(nèi)看起來(lái)嚎莉、處于某種穩(wěn)固。穩(wěn)固隨著維護(hù)沛豌,可能會(huì)被打破.
深圳-平凡(-) 22:39:15
這個(gè)穩(wěn)定性是架構(gòu)原則吧趋箩。好比如設(shè)計(jì)模式6大原則,23種設(shè)計(jì)模式都是圍繞著一到多種設(shè)計(jì)原則展開(kāi)的加派。那是因?yàn)榻Y(jié)構(gòu)體系變了叫确,所以需要重新完善這個(gè)結(jié)構(gòu)體系。目標(biāo)架構(gòu)就是一個(gè)理想化的結(jié)構(gòu)體系哼丈,你在從基線架構(gòu)演進(jìn)到目標(biāo)架構(gòu)過(guò)程中启妹,演進(jìn)路線很難一成不變筛严。
北京-喜<-> 22:49:25
場(chǎng)景都有, 一種是原來(lái)的不穩(wěn)定節(jié)點(diǎn)和場(chǎng)景解決了醉旦,次要問(wèn)題上升. 一種是新業(yè)務(wù)加入, 一種是新依賴/鏈路加入, 鏈路和業(yè)務(wù)邏輯2個(gè)大方向, 偏C指的是鏈路部分, 平臺(tái)化、中臺(tái)化桨啃,指的是業(yè)務(wù)邏輯, 你可以先拋個(gè)你熟悉的架構(gòu)模式或者方法論?
深圳-平凡(-) 23:01:57
穩(wěn)定性在架構(gòu)層面不屬于原則车胡,原則是偏落地了。應(yīng)該屬于架構(gòu)愿景.
北京-喜<-> 23:03:02
終極目標(biāo)基本是不存在的照瘾,這個(gè)是矛盾的
深圳-平凡(-) 23:03:49
在一定的時(shí)間 空間 范圍內(nèi)是存在的匈棘。
北京-喜<-> 23:03:54
終極目標(biāo)假如達(dá)到了,說(shuō)明業(yè)務(wù)場(chǎng)景/復(fù)雜度/流量等 是已可見(jiàn)的, 所以要加時(shí)間線, 如果業(yè)務(wù)場(chǎng)景/復(fù)雜度/流量等 是已可見(jiàn)的析命,那么用現(xiàn)有架構(gòu)撐著也可以主卫,就不必演進(jìn)了
深圳-平凡(-) 23:05:01
就像國(guó)家的五年計(jì)劃,國(guó)家每五年制定一次各行各業(yè)五年發(fā)展規(guī)劃鹃愤,指導(dǎo)行業(yè)五年內(nèi)的落地簇搅。 時(shí)間 :五年 空間:特定行業(yè)
北京-喜<-> 23:05:31
是的, 所以都會(huì)講歷史、現(xiàn)在软吐、未來(lái)瘩将,3個(gè)時(shí)窗, 未來(lái) 一般不會(huì)超過(guò)3年, 比如我一直很傾向面向?qū)ο蠛驮O(shè)計(jì)模式在:就是因?yàn)榭梢越⒁粋€(gè)穩(wěn)固關(guān)系接口、擴(kuò)展點(diǎn)和伸縮能力凹耙。DDD同理姿现。 這部分是單一應(yīng)用內(nèi), 其他的架構(gòu)理念和方法論,多是鏈路的肖抱,偏集成場(chǎng)景.
深圳-平凡(-) 23:11:50
鏈路怎么理解备典?
北京-喜<-> 23:11:59
服務(wù)化產(chǎn)生的, 多系統(tǒng)調(diào)用、協(xié)作. 服務(wù)化是為啥? 放在1個(gè)系統(tǒng)內(nèi)有啥問(wèn)題?
深圳-平凡(-) 23:16:32
復(fù)用企業(yè)IT資產(chǎn)
北京-喜<-> 23:17:28
是因?yàn)樘鬃兞艘馐觯_(dá)到不可控熊经、不可預(yù)期的程度了
深圳-平凡(-) 23:18:04
說(shuō)起服務(wù)化泽艘,想起西神下午發(fā)的 thomas erlSOA架構(gòu)。微服務(wù)架構(gòu)也是由SOA演化而來(lái)镐依,而現(xiàn)在宣傳的微服務(wù)架構(gòu)很欠缺服務(wù)資產(chǎn)治理匹涮。 thmoas erl的書籍都是圍繞著這個(gè)講的
北京-喜<-> 23:19:37
服務(wù)化 是圈出來(lái)一個(gè)個(gè)邊界。 多個(gè)服務(wù)協(xié)作槐壳。 代替原來(lái)的單應(yīng)用. 對(duì)相同的1個(gè)業(yè)務(wù)操作然低,服務(wù)化之后的,比原本的穩(wěn)固的多务唐。 不再是那么易變. 我說(shuō)的是1個(gè)應(yīng)用 到 多應(yīng)用的過(guò)程/背景. 服務(wù)化和集成 帶入新的風(fēng)險(xiǎn). 風(fēng)險(xiǎn) 就是不可空/難預(yù)期, 所有偏C架構(gòu)(高性能除外)的部分雳攘,都是控制這個(gè)風(fēng)險(xiǎn). 讓鏈路看起來(lái)是穩(wěn)固的.
廣州-Galen(-) 23:23:40
鏈路長(zhǎng),維護(hù)成本高.
2017-11-28
- 摘要: 無(wú).
2017-11-29
- 摘要: 無(wú).
1. 你們用Redis的時(shí)候枫笛,都碰到哪些應(yīng)用場(chǎng)景了吨灭?[上海-雪駒]
2017-11-30
- 摘要: 敏感詞過(guò)濾. 枚舉. 秒殺.
1. im 過(guò)濾 一般都怎么做的, 比如說(shuō) QQ 有些詞匯就發(fā)不出去, 這樣的功能? [西咸-S]
廣州-小護(hù)士<-> 10:17:54
正則+敏感詞庫(kù)
北京-喜<-> 10:18:52
我只知道用Trie樹(shù)
廣州-小護(hù)士<-> 10:20:47
匹配范圍寫大了,誤殺就大了
西咸-S(-) 10:21:01
網(wǎng)上看的基本上都是基于 DFA 算法寫的. 我在做操刑巧,你媽讓我告訴你XX , 這個(gè)次理論上沒(méi)問(wèn)題~但是很多就誤殺了.
廣州-小護(hù)士<-> 10:22:10
DFA 有限狀態(tài)機(jī)喧兄。。狀態(tài)機(jī)那種是文法解析的思路啊楚。吠冤。玩得有點(diǎn)深.
杭州-beBetter(-) 10:22:53
是啊,Trie樹(shù)比較快
北京-coder-在線教育(-) 10:23:02
誤殺就誤殺唄
2. 內(nèi)存占用方面恭理,這倆是哪個(gè)占用的大? [北京-C_C]
北京-Easy哥(-) 14:45:13
基本上沒(méi)區(qū)別 ,個(gè)人推薦 用枚舉
北京-C_C(-) 14:45:46
為啥, 我前老大是說(shuō)能不用枚舉就不用
北京-Easy哥(-) 14:45:57
代碼潔癖 , 枚舉好看一些 ,別聽(tīng)你老大的 , 枚舉的話 jvm會(huì)有特殊的優(yōu)化 尤其是在switch的時(shí)候. 另外hotspot會(huì)在比較的時(shí)候把枚舉當(dāng)int來(lái)比較, 所以, 通過(guò)switch來(lái)做分支處理的時(shí)候 比對(duì)象的比較快很多.不過(guò) 這個(gè) 可以不知道 但是拯辙。。颜价。涯保。枚舉寫的代碼好看,這個(gè)也是很大的優(yōu)勢(shì).
一些奇技淫巧不知道 沒(méi)問(wèn)題,但是怎么寫代碼好看, 這個(gè)更重要吧.
成都-勇(-) 14:49:53
單就那個(gè)圖得話,枚舉應(yīng)該占內(nèi)存大些.
北京-Easy哥(-) 14:50:26
差不多啊 因?yàn)?枚舉編譯后 和下面的是一樣的,所以 內(nèi)存上 沒(méi)有啥優(yōu)劣.
成都-勇(-) 14:56:19
枚舉 的可讀性周伦,可擴(kuò)展性更好夕春,沒(méi)有必要為了這么一點(diǎn)點(diǎn)內(nèi)存犧牲它.
北京-Easy哥(-) 14:56:32
一般人我們說(shuō)他們技術(shù)好 其實(shí) 是考察了 技術(shù)的廣度和深度結(jié)合來(lái)說(shuō)的 ,但是 還有一種技術(shù)好 是完完全全的技術(shù)深度 ,這樣的人需要特殊的工作背景, 一般都是做底層組件的, 90%的技術(shù)人員 其實(shí)都是上面?zhèn)€ .
成都-勇(-) 14:59:44
有沒(méi)有可能只有深度而沒(méi)有廣度,我感覺(jué)如果要足夠深横辆,感覺(jué)只專一門是不行得樣撇他。
北京-Easy哥(-) 15:01:19
這個(gè)廣度是說(shuō) 比如說(shuō) 一個(gè)懂JVM技術(shù) 但是 他也懂?dāng)?shù)據(jù)庫(kù) 也懂特殊的業(yè)務(wù) 也懂項(xiàng)目管理, 不是是只懂 JVM技術(shù),但是編譯原理,操作系統(tǒng),網(wǎng)絡(luò)就不懂了
成都-勇(-) 15:02:02
哦,明白了
北京-Easy哥(-) 15:02:04
因?yàn)檫@樣的話, 他的jvm技術(shù)也一般, 就像說(shuō)一個(gè)人精通java, 他至少要精通幾門語(yǔ)言.
3. 這里介紹的狈蚤,秒殺流程. [成都-梅小西]
北京-喜<-> 20:10:10
那不大家看到頁(yè)面之后困肩,都可以點(diǎn)擊到“購(gòu)買”走2的流程呢, 扯淡
成都-梅小西(-) 20:13:00
庫(kù)存放緩存,用戶下單脆侮,創(chuàng)建初始訂單锌畸,發(fā)送修改庫(kù)存的消息,接收消息靖避,排隊(duì)更新緩存, 貌似這流程, 更新緩存成功潭枣,修改訂單狀態(tài)
北京-喜<-> 20:14:08
流量都打給購(gòu)買的服務(wù)了,然后只有一部分能秒殺成功比默。 前置沒(méi)流量攔截, 部分能秒殺成功的依據(jù)是庫(kù)存系統(tǒng)有沒(méi)有庫(kù)存。 也就是同樣的流量從訂單給了庫(kù)存一份.
深圳-Mt<-> 20:24:29
秒殺不就一個(gè)redis Incr命令搞定嗎, 限流, 保證應(yīng)用和redis不掛
成都-梅小西(-) 20:26:45
我有個(gè)問(wèn)題盆犁,壓測(cè)的環(huán)境是線上環(huán)境的真實(shí)copy么
北京-Easy哥(-) 20:26:58
是的 真實(shí)copy
成都-梅小西(-) 20:27:38
db的數(shù)據(jù)量呢命咐,難道一樣?
北京-Easy哥(-) 20:27:51
影子庫(kù)啊
北京-jax(-) 20:27:18
其實(shí)一直不明白壓測(cè)怎么測(cè)谐岁?不要嫌棄我
杭州-東子(-) 20:31:28
首先并不是所有功能都要壓測(cè), 一般是新上的功能, 或者是影響分析做完了決定要壓測(cè)的, 新系統(tǒng)來(lái)了或者新功能, 新系統(tǒng)就選擇登陸退出和主要關(guān)鍵交易.
2017-12-01
- 摘要: 令牌.
1. 問(wèn)一下醋奠,令牌,你們用什么來(lái)實(shí)現(xiàn)?[中山-劃船]
中山-劃船(-) 14:32:49
redis伊佃?
成都-梅小西(-) 14:33:11
token窜司? 不一定,數(shù)據(jù)庫(kù)也可以啊
珠海-可樂(lè)<-> 14:34:14
你不是該問(wèn)認(rèn)證和授權(quán)用什么實(shí)現(xiàn)的航揉?
中山-劃船(-) 14:35:48
是限制訪問(wèn)量的
珠海-可樂(lè)<-> 14:36:30
那不是限流嘛, ratelimiter用redis或者guava塞祈,單機(jī)用guava也行,集群用redis