原创 Go語言 gRPC 實踐(一)

介紹 RPC是遠程過程調用(Remote Procedure Call)的縮寫形式。SAP系統RPC調用的原理其實很簡單,有一些類似於三層構架的C/S系統,第三方的客戶程序通過接口調用SAP內部的標準或自定義函數,獲得函數返回的數據進行處

原创 Go語言 讀寫鎖&互斥鎖原理剖析(2)

互斥鎖(百科)定義:“在編程中,引入了對象互斥鎖的概念,來保證共享數據操作的完整性。每個對象都對應於一個可稱爲" 互斥鎖" 的標記,這個標記用來保證在任一時刻,只能有一個線程訪問該對象。”,顧名思義就是互相排斥的鎖了。 當程序中就一個協程

原创 Go語言 讀寫鎖原理剖析(一)

我們在多協程操作時,有種場景是讀操作次數遠遠大於寫操作,這個時候,我們就會考慮用到讀寫鎖。 讀寫鎖 讀寫鎖(百科)定義:是一種特殊的的自旋鎖,它把對共享資源的訪問者劃分成讀者和寫者,讀者只對共享資源進行讀訪問,寫者則需要對共享資源進行寫操

原创 Nginx反向代理+Go服務實踐

前言 在後端開發期間,會爲前端或者平臺上提供API服務接口,這時、我們看完今天的文章可以詳細瞭解到Nginx反向代理到後端服務上的過程。 Nginx: 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP

原创 Go語言中面向對象

面向對象: Go語言中沒有明確的OOP(Object Oriented Programming)概念。 Go語言只提供了兩個關鍵類型:struct,interface。 1、struct與C++語言中的普通struct相似,在Go語言中是

原创 Go語言講解深拷貝與淺拷貝

我們在開發中會經常的把一個變量複製給另一個變量,那麼這個過程,可能是深淺拷貝,那麼今天幫大家區分一下這兩個拷貝的區別和具體的區別。 一、概念 1、深拷貝(Deep Copy): 拷貝的是數據本身,創造一個樣的新對象,新創建的對象與原對象不

原创 Go語言 命令行解析(二)

今天我們繼續講解Go語言中命令行,當我們在解析命令行傳遞的參數時通常會想用最簡單的方法來解析自己行用到的命令行參數,那麼urfave/cli可以幫助我們快速的解析命令行參數,它是一個簡單快速的命令行包,用於在Go語言中構建命令行應用程序,

原创 Go語言 命令行解析(一)

命令行啓動服務的方式,在後端使用非常廣泛,如果有寫過C語言的同學相信不難理解這一點!在C語言中,我們可以根據argc和argv來獲取和解析命令行的參數,從而通過不同的參數調取不同的方法,同時也可以用Usage來打印幫助信息了。 那麼開始今

原创 Hive的列分隔符和行分隔符

在創建Hive表時,默認行分隔符"^A",列分隔符"\n",這兩項也是可以設置的。在實際開發中,一般默認使用默認的分隔符,當然有些場景下也會自定義分隔符。 創建表1: spark-hive use test_db; # 創建外部表 C

原创 實時OLAP分析利器Druid介紹

文章目錄 前言 Druid介紹 主要特性 基礎概念 數據格式 數據攝入 數據存儲 數據查詢 查詢類型 架構 運維 OLAP方案對比 使用場景 使用建議 參考 近期主題   前言 項目早期、數據(報表分析)的生產、存儲和獲取業務,MySQL

原创 Go語言 ProtoBuf 序列化和反序列化

前言 Protobuf 是Google開發的一個網絡通信協議,提供了高效率的序列化和反序列化機制,序列化就是把對象轉換成二進制數據發送給服務端,反序列化就是將收到的二進制數據轉換成對應的對象。官方版本支持Go,C++,Java,Pytho

原创 Go語言之中文分詞技術使用技巧

分詞技術就是搜索引擎針對用戶提交查詢的關鍵詞串進行的查詢處理後根據用戶的關鍵詞串用各種匹配方法進行分詞的一種技術。 中文分詞(Chinese Word Segmentation)指的是將一個漢字序列(句子)切分成一個一個的單獨的詞,分詞就

原创 clickhouse centos7 集羣部署

安裝依賴: yum install -y curl pygpgme yum-utils coreutils epel-release Yum安裝: yum install clickhouse-server clickhouse-cl

原创 【轉載】MySQL索引背後的數據結構及算法原理

本文轉載自http://blog.jobbole.com/24006/ 摘要 本文以MySQL數據庫爲研究對象,討論與數據庫索引相關的一些話題。特別需要說明的是,MySQL支持諸多存儲引擎,而各種存儲引擎對索引的支持也各不相同,因此M

原创 字典應用例子

#include <stdio.h> #include <ctype.h> #include <stdlib.h> #include <string