原创 I/O模型之二:Linux IO模式及 select、poll、epoll詳解

同步IO和異步IO,阻塞IO和非阻塞IO分別是什麼,到底有什麼區別?不同的人在不同的上下文下給出的答案是不同的。所以先限定一下本文的上下文。 本文討論的背景是Linux環境下的network IO。 一、 概念說明 在進行解釋之

原创 如何徹底刪除git記錄(git push -f 的妙用)

查看歷史記錄: git log 找到head 記錄: aaaaaaa 本地分支: git reset -hard aaaaaaa 推送遠程分支: git push -f

原创 Ntrip 1.0 協議

1.介紹 Ntrip1.0 是基於http1.1 協議實現應用層協議,關於消息格式和狀態代碼,NtripClient NtripCaster通信是完全兼容的HTTP 1.1通信[1],其中Ntrip只使用無狀態的連接。 由Ntr

原创 Elasticsearch 雜項

1.elasticsearch 如何實現Master 選舉 elasticsearch 選主是zenDiscovery模塊負責,主要通過ping(節點之間的RPC來發現彼此)和Unicast(單播模塊包含一個主機列表來控制那些節點

原创 導入省市區數據到elasticsearch

1.創建索引PUT /province/_docPOST /province/_doc/mapping{ "province" : {

原创 Apache Kylin 優化指南

Apache Kylin 優化指南 一. 維度優化 爲什麼需要維度優化 如果不進行任何維度優化,直接將所有的維度放在一個聚集組裏,Kylin將會計算所有的維度組合(cuboid)。比如,有12個維度,Kylin 就計算2的12次方

原创 rabbitmq 3.6集羣搭建

0. 緒論 最近項目在做mq的技術選型,最終確定採用rabbitMq。需要對rabbitMq進行基準測試,所以在服務器上劃出3個虛擬機節點。用這三臺虛擬機做基準測試。(ps 以下命令都是用root 用戶執行,如果不是root 用戶

原创 zero-copy 原理

1. 傳統模型 要想了解zero-copy 我們需要知道該技術的應用場景,網絡傳輸中一個基本的場景是:通過網絡傳輸一個文件。代碼如下 read(file,tmp_buf,len); write(socket,tmp_buf,len

原创 I/O模型之一:Unix的五種I/O模型

Unix的五種I/O模型: 阻塞I/O:應用程序調用一個IO函數,導致應用程序阻塞,如果數據已經準備好,從內核拷貝到用戶空間,否則一直等待下去 非阻塞I/O: I/O複用(select和poll) 信號驅動I/O(SIGIO)

原创 {"number":"5000","price":4.25,"max":4.3,"min":4.1}

{“number”:“5000”,“price”:4.25,“max”:4.3,“min”:4.1}

原创 {"number":"5000","price":4.25,"max":4.3,"min":4.1}

1.自動進行內存和磁盤數據存儲切換 Spark 會優先把數據存儲到內存中,如果內存放不下會放到磁盤裏。不但內計算內存放下的數據,也能計算內存放不下的數據。 2.基於Lineage(血統)的高效容錯機制 Lineage 是基於Spa

原创 # Synchronized 原理和優化

synchronized 原理和優化 synchronized 是java 中解決併發問題最常用的方法,也是最簡單的一種方法。Synchronized 的主要作用是 確保線程互斥訪問同步代碼 保證共享變量的修改能及時可見 有效解

原创 Spark 算子調優

使用mapPartitions 或者 mapPartitionWithIndex 替換map 操作 在映射的過程中需要頻繁創建額外對象的時候(數據庫,網絡TCP等IO連接,文件流 等) mapPartitions 按照分區創建額

原创 # Scala 函數

原文鏈接:https://www.runoob.com/scala/currying-functions.html Scala 函數傳名調用(call-by-name) Scala的解釋