原创 nginx+redis+tomcat三級緩存架構講解

對於一個大型的數據緩存系統,會部署多層緩存服務來達到高併發、高可用的系統需求 nginx層 對於傳統的緩存系統,請求到達nginx,然後分發到對應的服務系統,然後查詢redis中是否有數據,然後將結果返回,這裏會花費很大的

原创 熱點數據降級詳解(storm+nginx+lua)

對於熱點數據,瞬間大量流量湧入,通過轉發層nginx可能會流向同一個應用層nginx,因此可能導致崩潰。需要對這些熱點數據進行降級處理,將流量負載均衡到所有的應用層nginx上 用storm實時統計處瞬間稱爲熱點的數據 基

原创 netty源碼分析之-SimpleChannelInboundHandler與ChannelInboundHandlerAdapter詳解(6)

每一個Handler都一定會處理出站或者入站(也可能兩者都處理)數據,例如對於入站的Handler可能會繼承SimpleChannelInboundHandler或者ChannelInboundHandlerAdapter,而S

原创 React相關Dom約束性和非約束性操作

約束性和非約束性組件 非約束性 針對<input>輸入框這種類型,你可以通過這種方式來實現(其中defaultValue就是原生DOM中的value屬性) <input type="text" defaultValue="a" r

原创 Storm並行度和流分組詳解

並行度 對於一個拓撲來說,並行度其實就是task,task是最小的計算單元,每個spout/bolt的相關代碼副本都會運行在一個task中。並不是executor,因爲默認情況下一個executor只有一個task,executo

原创 Hystrix實現原理分析

對Hystrix每個步驟的實現原理分析 1. 構建一個HystrixCommand或者HystrixObservableCommand 一個HystrixCommand或一個HystrixObservableCommand對象

原创 netty源碼分析之-ByteBuf詳解(8)

網絡數據的基本單位總是字節。Java NIO 提供了 ByteBuffer 作爲它 的字節容器,但是這個類使用起來過於複雜,而且也有些繁瑣。Netty 的 ByteBuffer 替代品是 ByteBuf,一個強大的實現,既解決了

原创 加載更多功能實現

實現點擊加載更多按鈕,以及上拉加載更多數據 import React from 'react' import PureRenderMixin from 'react-addons-pure-render-mixin' impo

原创 緩存數據預熱詳解

對於大型緩存系統,存在着以下兩種情況會是系統無法做到高可用。第一種情況,對於新系統上線,redis中可能沒有緩存數據,此時如果大量請求涌入,則會壓垮DB是系統無法正常使用;第二種情況,可能系統運行過程中redis的數據全部丟失了

原创 Hystrix高可用架構介紹

在複雜的分佈式系統架構中,每個服務都有很多的依賴服務,而每個依賴服務都可能會故障。如果服務沒有和自己的依賴服務進行隔離,那麼可能某一個依賴服務的故障就會拖垮當前這個服務 Hystrix設計原則: 阻止任何一個依賴服務耗盡所有

原创 javascript關於call與apply方法詳解

每一個函數都包含兩個非繼承而來的方法:call與apply。這兩個方法的用途都是在特定的作用域中調用函數,也就是動態改變函數體內this對象。換句話說,可以將函數對象繼承到當前上下文(this)中來使用。 官方示例1: fun

原创 javascript函數定義三種方式詳解

定義函數的三種方式 function語句式 function test1() { console.info("test1"); } 函數的直接變量 ECMAScript var test2 = function (

原创 netty源碼分析之-開發過程中重要事項分析(7)

netty日常開發中一些重要事項分析 Channel與ChannelHandler相同方法之間區別 在netty中有兩種發送消息的方式,可以直接寫到Channel中,也可以寫到與ChannelHandler所關聯的那個Chan

原创 netty源碼分析之-ReferenceCounted詳解(9)

被引用計數包含的對象,能夠顯示的被垃圾回收。當初始化的時候,計數爲1。retain()方法能夠增加計數,release() 方法能夠減少計數,如果計數被減少到0則對象會被顯示回收,再次訪問被回收的這些對象將會拋出異常。如果一個對

原创 javascript中this關鍵字詳解

this對象是在運行時基於函數的執行環境綁定的。在全局函數中,this等於window,而當函數被作爲某個對象的方法調用時,this等於那個對象。也就是說this關鍵字總是指代調用者。 var k = 10 ; functi