摘要:
目錄 場景假設 在介紹 Storm 的性能調優方法之前,假設一個場景:項目組部署了3臺機器,計劃運行且僅運行 Storm(1.0.1) + Kafka(0.9.0.1) + Redis(3.2.1) 的小規模實驗集群,集群的配置情況如下表: 現有一個任務,需要實時計算訂單的各項匯總統計信息。訂單數據
閱讀全文
posted @ 2017-05-19 15:49
_1900
閱讀(453)
推薦(0)
摘要:
在這個教程中,你將學會如何創建 Storm 的topology并將他們部署到 Storm 集群上, 主要的語言是 Java,但是少數幾個例子用 Python 編寫來說明 Storm 的多語言支持能力。 術語和名詞 MapReduce jobstopologies topology 由用戶編寫的Sto
閱讀全文
posted @ 2017-05-10 12:40
_1900
閱讀(1844)
推薦(0)
摘要:
一、隊列常用命令 #創建topics $ ./kafka-topics.sh --create --zookeeper chenx02:2181 --replication-factor 1 --partitions 1 --topic test#查看隊列列表$ ./kafka-topics.sh
閱讀全文
posted @ 2017-05-09 12:04
_1900
閱讀(332)
推薦(0)
摘要:
一、數據庫常用命令 # 切換/創建數據庫 PRIMARY> use yourDB; #當創建一個集合(table)的時候會自動創建當前數據庫# 查詢所有數據庫 PRIMARY> show dbs; # 刪除當前使用數據庫 PRIMARY> db.dropDatabase(); # 從指定主機上克隆數
閱讀全文
posted @ 2017-05-08 17:58
_1900
閱讀(309)
推薦(0)
摘要:
本節主要分析server的啟動過程。 Netty是基于Nio實現的,所以也離不開selector、serverSocketChannel、socketChannel和selectKey等,只不過Netty把這些實現都封裝在了底層。 從示例可以看出,一切從ServerBootstrap開始。 Serv
閱讀全文
posted @ 2017-05-03 15:31
_1900
閱讀(918)
推薦(0)
摘要:
前言 Netty是一個高性能、異步事件驅動的NIO框架,它提供了對TCP、UDP和文件傳輸的支持,作為一個異步NIO框架,Netty的所有IO操作都是異步非阻塞的,通過Future-Listener機制,用戶可以方便的主動獲取或者通過通知機制獲得IO操作結果。 作為當前最流行的NIO框架,Netty
閱讀全文
posted @ 2017-05-02 11:50
_1900
閱讀(1006)
推薦(0)
摘要:
前言 Java NIO 由以下幾個核心部分組成: Buffer Channel Selector 以前基于net包進行socket編程時,accept方法會一直阻塞,直到有客戶端請求的到來,并返回socket進行相應的處理。整個過程是流水線的,處理完一個請求,才能去獲取并處理后面的請求;當然我們可以
閱讀全文
posted @ 2017-04-24 15:07
_1900
閱讀(3418)
推薦(1)
摘要:
Java NIO 由以下幾個核心部分組成: 傳統的IO操作面向數據流,意味著每次從流中讀一個或多個字節,直至完成,數據沒有被緩存在任何地方。NIO操作面向緩沖區,數據從Channel讀取到Buffer緩沖區,隨后在Buffer中處理數據。本文著重介紹Channel和Buffer的概念以及在文件讀寫方
閱讀全文
posted @ 2017-04-21 10:39
_1900
閱讀(458)
推薦(0)
摘要:
深入淺出ConcurrentHashMap(1.8) 前言 HashMap是我們平時開發過程中用的比較多的集合,但它是非線程安全的,在涉及到多線程并發的情況,進行put操作有可能會引起死循環,導致CPU利用率接近100%。 解決方案有Hashtable和Collections.synchronize
閱讀全文
posted @ 2017-04-19 17:21
_1900
閱讀(1077)
推薦(0)
摘要:
CAS,Compare and Swap即比較并替換,設計并發算法時常用到的一種技術,Doug lea大神在java同步器中大量使用了CAS技術,鬼斧神工的實現了多線程執行的安全性。 目前的處理器基本都支持CAS,只不過不同的廠家的實現不一樣罷了。CAS有三個操作數:內存值V、舊的預期值A、要修改的
閱讀全文
posted @ 2017-04-19 17:18
_1900
閱讀(618)
推薦(0)
摘要:
ava并發采用的是共享內存模型,線程之間的通信對程序員來說是透明的,內存可見性問題很容易困擾著java程序員,今天我們就來揭開java內存模型的神秘面紗。 在揭開面紗之前,我們需要認識幾個基礎概念:內存屏障(memory Barriers),指令重排序,happens-before規則,as-if-
閱讀全文
posted @ 2017-04-19 17:16
_1900
閱讀(638)
推薦(0)
摘要:
一、概述 1. 什么是代理 我們大家都知道微商代理,簡單地說就是代替廠家賣商品,廠家“委托”代理為其銷售商品。關于微商代理,首先我們從他們那里買東西時通常不知道背后的廠家究竟是誰,也就是說,“委托者”對我們來說是不可見的;其次,微商代理主要以朋友圈的人為目標客戶,這就相當于為廠家做了一次對客戶群體的
閱讀全文
posted @ 2017-04-19 16:58
_1900
閱讀(546)
推薦(0)
摘要:
摘要: 在JAVA NIO相關的組件中,ByteBuffer是除了Selector、Channel之外的另一個很重要的組件,它是直接和Channel打交道的緩沖區,通常場景或是從ByteBuffer寫入Channel,或是從Channel讀入Buffer;而在Netty中,被精心設計的ByteBuf
閱讀全文
posted @ 2017-04-08 13:19
_1900
閱讀(6029)
推薦(0)
摘要:
摘要: 在Netty中,通常會有多個IO線程獨立工作,基于NioEventLoop的實現,每個IO線程負責輪詢單獨的Selector實例來檢索IO事件,當IO事件來臨的時候,IO線程開始處理IO事件。最常見的IO事件即讀寫事件,那么這個時候就會涉及到IO線程對數據的讀寫問題,具體到NIO方面即從內核
閱讀全文
posted @ 2017-04-08 13:18
_1900
閱讀(2896)
推薦(0)
摘要:
其實,雙親委派模型并不復雜。自定義類加載器也不難!隨便從網上搜一下就能搜出一大把結果,然后copy一下就能用。但是,如果每次想自定義類加載器就必須搜一遍別人的文章,然后復制,這樣顯然不行。可是自定義類加載器又不經常用,時間久了容易忘記。相信你經常會記不太清loadClass、findClass、de
閱讀全文
posted @ 2017-04-08 13:16
_1900
閱讀(43518)
推薦(23)
摘要:
Java中的阻塞隊列接口BlockingQueue繼承自Queue接口。 BlockingQueue接口提供了3個添加元素方法。 3個刪除方法。 常用的阻塞隊列具體類有ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue、Linke
閱讀全文
posted @ 2017-04-08 13:13
_1900
閱讀(2021)
推薦(0)
摘要:
引言 二叉查找樹是一種能將鏈表插入的靈活性和有序數組查找的高效性結合起來的一種重要的數據結構,它是我們后面學習紅黑樹和AVL樹的基礎,本文我們就先來看一下二叉查找樹的實現原理。 二叉查找樹的定義 二叉查找樹最重要的一個特征就是:每個結點都含有一個Comparable的鍵及其相關聯的值,該結點的鍵要大
閱讀全文
posted @ 2017-04-08 13:11
_1900
閱讀(1311)
推薦(1)
摘要:
本章我們將分析一下consumer向注冊中心注冊,并獲取服務端相應的信息,根據這些信息生產代理對象的過程和源碼。 1.類圖 上圖展示了部分消費者注冊及生成代理對象過程中需要使用到的類和接口,其中: spring適配涉及到的類:DubboNamespaceHandler、DubboBeanDefini
閱讀全文
posted @ 2017-03-29 10:54
_1900
閱讀(2845)
推薦(0)
摘要:
本文將深入分析dubbo的服務發布涉及到的流程及主要類的代碼。首先,我們先從類的關系圖來看一下dubbo發布服務涉及到的相關類。 1.類圖 上圖展示了部分服務發布過程中需要使用到的類和接口,其中: spring適配涉及到的類:DubboNamespaceHandler、DubboBeanDefini
閱讀全文
posted @ 2017-03-29 10:51
_1900
閱讀(566)
推薦(0)
摘要:
本文作為dubbo源碼分析的第一章,先從總體上來分析一下dubbo的代碼架構、功能及優缺點,注意,本文只分析說明開源版本提供的代碼及功能。 1.dubbo的代碼架構: spring適配層:常規的spring適配方法,內容包括使用dubbo.xsd文件來定義dubbo相關的元素及屬性;DubboNam
閱讀全文
posted @ 2017-03-29 10:47
_1900
閱讀(1004)
推薦(0)
摘要:
1. Kafka集群partition replication默認自動分配分析 下面以一個Kafka集群中4個Broker舉例,創建1個topic包含4個Partition,2 Replication;數據Producer流動如圖所示: (1) (2)當集群中新增2節點,Partition增加到6個
閱讀全文
posted @ 2017-03-08 16:19
_1900
閱讀(4267)
推薦(0)
摘要:
Kafka的通訊協議 標簽:kafka Kafka的Producer、Broker和Consumer之間采用的是一套自行設計的基于TCP層的協議。Kafka的這套協議完全是為了Kafka自身的業務需求而定制的,而非要實現一套類似于Protocol Buffer的通用協議。本文將介紹這套協議的相關內容
閱讀全文
posted @ 2017-03-08 15:20
_1900
閱讀(6617)
推薦(0)
摘要:
關于Kafka 根據Kafka官方的文檔,Kafka可以被認為一個高大上的集群消息中間件,但是讀了下以前一個朋友給的部署文檔和Kafka的官方的文檔。發現Kafka確實不錯,真的可以說是集群消息中間件。 用topic來進行消息管理,每個topic包含多個part,每個part對應一個邏輯log,有多
閱讀全文
posted @ 2017-03-08 12:05
_1900
閱讀(2133)
推薦(1)
摘要:
最近開研究kafka,下面分享一下kafka的設計原理。kafka的設計初衷是希望作為一個統一的信息收集平臺,能夠實時的收集反饋信息,并需要能夠支撐較大的數據量,且具備良好的容錯能力. 1、持久性 kafka使用文件存儲消息,這就直接決定kafka在性能上嚴重依賴文件系統的本身特性.且無論任何OS下
閱讀全文
posted @ 2017-03-08 12:04
_1900
閱讀(842)
推薦(0)
摘要:
引言 Kafka中的Message是以topic為基本單位組織的,不同的topic之間是相互獨立的。每個topic又可以分成幾個不同的partition(每個topic有幾個partition是在創建topic時指定的),每個partition存儲一部分Message。借用官方的一張圖,可以直觀地看
閱讀全文
posted @ 2017-03-08 12:00
_1900
閱讀(3349)
推薦(0)
摘要:
Netty 超時機制的介紹 Netty 的超時類型 IdleState 主要分為: ALL_IDLE : 一段時間內沒有數據接收或者發送 READER_IDLE : 一段時間內沒有數據接收 WRITER_IDLE : 一段時間內沒有數據發送 在 Netty 的 timeout 包下,主要類有: Id
閱讀全文
posted @ 2017-03-07 18:31
_1900
閱讀(15740)
推薦(1)
摘要:
準備 JDK 7+ Maven 3.2.x Netty 4.x Eclipse 4.x WebSocket WebSocket 通過“Upgrade handshake(升級握手)”從標準的 HTTP 或HTTPS 協議轉為 WebSocket。因此,使用 WebSocket 的應用程序將始終以 H
閱讀全文
posted @ 2017-03-07 18:29
_1900
閱讀(628)
推薦(0)
摘要:
Netty 是一個 Java NIO 客戶端服務器框架,使用它可以快速簡單地開發網絡應用程序,比如服務器和客戶端的協議。Netty 大大簡化了網絡程序的開發過程比如 TCP 和 UDP 的 socket 服務的開發。更多關于 Netty 的知識,可以參閱《Netty 4.x 用戶指南》(https:
閱讀全文
posted @ 2017-03-07 18:27
_1900
閱讀(7332)
推薦(0)
摘要:
怎么保證可靠性的? RabbitMQ提供了幾種特性,犧牲了一點性能代價,提供了可靠性的保證。 持久化當RabbitMQ退出時,默認會將消息和隊列都清除,所以需要在第一次聲明隊列和發送消息時指定其持久化屬性為true,這樣RabbitMQ會將隊列、消息和狀態存到RabbitMQ本地的數據庫,重啟后會恢
閱讀全文
posted @ 2017-03-07 15:23
_1900
閱讀(445)
推薦(0)
摘要:
Kafka是什么 Kafka是最初由Linkedin公司開發,是一個分布式、分區的、多副本的、多訂閱者,基于zookeeper協調的分布式日志系統(也可以當做MQ系統),常見可以用于web/nginx日志、訪問日志,消息服務等等,Linkedin于2010年貢獻給了Apache基金會并成為頂級開源項
閱讀全文
posted @ 2017-03-02 17:21
_1900
閱讀(220)
推薦(0)
摘要:
消息隊列已經逐漸成為企業IT系統內部通信的核心手段。它具有低耦合、可靠投遞、廣播、流量控制、最終一致性等一系列功能,成為異步RPC的主要手段之一。當今市面上有很多主流的消息中間件,如老牌的ActiveMQ、RabbitMQ,炙手可熱的Kafka,阿里巴巴自主開發的Notify、MetaQ、Rocke
閱讀全文
posted @ 2017-03-02 17:17
_1900
閱讀(458)
推薦(0)
摘要:
本文主要講述在使用ZooKeeper進行分布式鎖的實現過程中,如何有效的避免“羊群效應( herd effect)”的出現。 一般的分布式鎖實現 這里簡單的講下一般的分布式鎖如何實現。具體的代碼實現可以在這里看到: https://svn.apache.org/repos/asf/zookeeper
閱讀全文
posted @ 2017-03-01 11:40
_1900
閱讀(2088)
推薦(0)
摘要:
事務簡介 事務的核心是鎖和并發,采用同步控制的方式保證并發的情況下性能盡可能高,且容易理解。這種方式的優勢是方便理解;它的劣勢是性能比較低。計算機可以簡單的理解為一個標準的打字機,盡管看起來計算機可以并行處理很多事情,但實際上每個CPU單位時間內只能做一件事,要么讀取數據、要么計算數據、要么寫入數據
閱讀全文
posted @ 2017-03-01 10:31
_1900
閱讀(1885)
推薦(1)
摘要:
目錄 一、 kafka簡介二、 Kafka架構方案三、 Kafka安裝四、 Kafka Client API 4.1 Producers API 4.2 Consumers API 4.3 消息高可靠 At-Least-Once 4.4 消息高可靠Consumer 4.5 生產者、消費者總結五、 K
閱讀全文
posted @ 2017-02-27 16:47
_1900
閱讀(1463)
推薦(1)
摘要:
紅黑樹是平衡二叉查找樹的一種。為了深入理解紅黑樹,我們需要從二叉查找樹開始講起。 BST 二叉查找樹(Binary Search Tree,簡稱BST)是一棵二叉樹,它的左子節點的值比父節點的值要小,右節點的值要比父節點的值大。它的高度決定了它的查找效率。 在理想的情況下,二叉查找樹增刪查改的時間復
閱讀全文
posted @ 2017-02-20 18:22
_1900
閱讀(489)
推薦(0)
摘要:
微服務架構解決了很多問題,但是同時引入了很多問題。本文要探討的是如何解決下面這幾個問題。 有大量的同步 RPC 依賴,如何保證自身的可靠性? 依賴的微服務調用失敗了,我應該失敗,還是成功。依賴很多外部服務之后,自身如何保障穩定性。如果所有依賴的服務成功,我才算成功,自身的穩定性就堪憂了。 RPC 調
閱讀全文
posted @ 2017-02-20 18:14
_1900
閱讀(13696)
推薦(0)
摘要:
一些數據: 大家還記得2013年的小米秒殺嗎?三款小米手機各11萬臺開賣,走的都是大秒系統,3分鐘后成為雙十一第一家也是最快破億的旗艦店。經過日志統計,前端系統雙11峰值有效請求約60w以上的QPS ,而后端cache的集群峰值近2000w/s、單機也近30w/s,但到真正的寫時流量要小很多了,當時
閱讀全文
posted @ 2017-02-09 18:14
_1900
閱讀(3585)
推薦(1)
摘要:
HashMap 的實現原理 HashMap 概述 HashMap 是基于哈希表的 Map 接口的非同步實現。此實現提供所有可選的映射操作,并允許使用 null 值和 null 鍵。此類不保證映射的順序,特別是它不保證該順序恒久不變。 此實現假定哈希函數將元素適當地分布在各桶之間,可為基本操作(get
閱讀全文
posted @ 2017-02-09 15:00
_1900
閱讀(5922)
推薦(1)
摘要:
Java 代碼編譯和執行的整個過程 Java 代碼編譯是由 Java 源碼編譯器來完成,流程圖如下所示: Java 字節碼的執行是由 JVM 執行引擎來完成,流程圖如下所示: Java 代碼編譯和執行的整個過程包含了以下三個重要的機制: Java 源碼編譯機制 類加載機制 類執行機制 Java 源碼
閱讀全文
posted @ 2017-02-09 11:01
_1900
閱讀(779)
推薦(0)
摘要:
主要結論 Spring Cloud為微服務系統中相互依賴的服務提供了豐富的連接選項。 Spring Cloud Config為配置數據提供了通過Git管理的版本控制機制,并能在無需重啟動的情況下對此類數據進行動態刷新。 通過將Spring Cloud與Netflix Eureka以及Ribbon組件
閱讀全文
posted @ 2017-02-08 10:38
_1900
閱讀(901)
推薦(0)