原创 laravel 服務容器bind與上下文綁定的一個應用實例

laravel 服務容器是一個用於管理類的依賴和執行依賴注入的強大工具。其實就是一個超強IoC與DI工具。 下面是laravel服務容器的一個bind與上下文綁定的實現。 interface IUser { publi

原创 go語言對gorm不固定條件查詢封裝

主要對gorm不定條件查詢數據時的一個封裝【靈感來於laravel項目中對db的封裝laravel版本DB,EloquentORM不固定條件查詢封裝】 封裝方法在 app/models/entity/Gorm.go文件裏 條件

原创 golang nsq消費者時間過長,防止與nsqd服務斷開連接

在使用nsq消費時,發現如果HandleMessage方法執行時間超過2分鐘,在此方法運行完後,就會 拋出 IO error - EOF 錯誤。測試發現,當超過2分鐘時,nsqadmin 後臺顯示的節點未連接。在查看github

原创 golang寫的IM服務器(tcp,websocket,grpc)

本文轉載:https://github.com/alberliu/gim 簡要介紹 gim是一個即時通訊服務器,代碼全部使用golang完成。主要功能 1.支持tcp,websocket接入 2.離線消息同步 3.多業務接入

原创 logstash把mysql數據導入es所需配置

logstash conf的output內容 output { if [type]=="bbs" { elasticsearch { hosts => ["http://e

原创 docker+jenkins+github實現golang項目自動部署

本文jenkins部署golang項目流程 jenkins服務拉取github上的項目 構建golang項目並生成docker鏡像[jenkins調用的是宿主機上的docker環境,如何調用的,後面會說明] 啓動golang項目

原创 golang 用數組實現環形隊列的方法

什麼是隊列 隊列是一種常用的數據結構,這種結構保證了數據是按照“先進先出”的原則進行操作的,即最先進去的元素也是最先出來的元素.環形隊列是一種特殊的隊列結構,保證了元素也是先進先出的,但與一般隊列的區別是,他們是環形的,即隊列頭部

原创 Golang解決TCP粘包拆包問題

什麼是粘包問題 最近在使用Golang編寫Socket層,發現有時候接收端會一次讀到多個數據包的問題。於是通過查閱資料,發現這個就是傳說中的TCP粘包問題。下面通過編寫代碼來重現這個問題: 服務端代碼 server/main.go

原创 mysql事務隔離級別詳解

數據庫事務 數據庫事務(transaction)是訪問並可能操作各種數據項的一個數據庫操作序列,這些操作要麼全部執行,要麼全部不執行,是一個不可分割的工作單位。事務由事務開始與事務結束之間執行的全部數據庫操作組成。 性質 原子性

原创 基於rabbitmq實現的延時隊列(golang版)

雖然 rabbitmq 沒有延時隊列的功能,但是稍微變動一下也是可以實現的 實現延時隊列的基本要素 存在一個倒計時機制:Time To Live(TTL) 當到達時間點的時候會觸發一個發送消息的事件:Dead Letter Ex

原创 golang 如何通過unsafe.Pointer uintptr來實現string與byte互轉

主要是對unsafe.Pointer uintptr的一個應用實例,順便了解golang的string與slice底層是怎樣實現的 func Str2bytes(s string) []byte { x := (*[2]ui

原创 Go unsafe.Pointer uintptr原理和玩法

本文轉至:https://www.cnblogs.com/sunsky303/p/11820500.html unsafe.Pointer 這個類型比較重要,它是實現定位和讀寫的內存的基礎,Go runtime大量使用它。官

原创 golang通過結構體的繼承、重寫封裝的一個高複用的公用查詢

前言 在golang開發中會發現,沒有泛型會寫大量重複代碼,例如:對數據庫表分頁查詢時,大多情況是表名不同,查詢條件與查詢字段不同,正常情況下,就得寫多份重疊代碼。本文主要是對過結構體繼承(其實是組合),模擬泛型(用interf

原创 laravel Scout使用elasticsearch搜索引擎

Laravel Scout 是針對Eloquent 模型開發的一個簡單的,基於驅動的全文檢索系統。Scout 使用模型觀察者時會自動保持你的檢索索引與你的 Eloquent 記錄同步。 目前,Scout 帶着一個Algolia驅

原创 Laravel 創建自己的 Facade

博客原文:Laravel 創建自己的 Facade 前言 laravel 提供了一個靈活的模式,那就是 facade 。框架內部的 DB、Auth、File 等功能也有相關的 facade 實現。那麼,該如何寫自己的 faca