原创 聊聊我的近況

聊聊我的近況 2020年6月,北京又發疫情。希望所有人能夠健康幸福。 2020年真是讓我印象深刻的一年,我選擇結束了安穩的日子,在疫情形勢嚴峻的情況下,毅然選擇了離職。從實習開始選擇的公司,一起成長了將近五年,收穫很多。也許是呆膩

原创 基於Elasticsearch的企業信息查詢優化實踐

需求 基於elasticsearch基礎的相關度查詢,返回的結果往往不是我們想要的結果。精確率達不到要求。如何能做到讓搜索引擎返回的結果就是我想要搜的,這是一個僞命題。elasticsearch官方說明: 通常,經過對策略字段應用

原创 支付系統設計

通用的PHP支付系統設計 業務->功能->實現->演進過程 1.業務架構 業務架構的前提要搞清楚我們面臨的業務量有多大,增長走勢是什麼樣,而且解決的過程,一定是一個循序漸進逐步的過程。 預計兩年需要實現可以支撐月流水500萬筆交易

原创 go-micro項目實戰七 logging

logging 我們之前分別講了微服務架構下的tracing,metrics。這節我們來講一下logging 日誌作爲整個代碼行爲的記錄,是程序執行邏輯和異常最直接的反饋。對於整個系統來說,日誌是至關重要的組成部分。通過分析日誌我們不

原创 go-micro項目實戰六 go-config

go-config 你可能已經發現了,我們之前的項目裏的所有數據庫連接和一些其他需要配置的東西我們都硬編碼在代碼裏了。這並不合理。因此我們這一節來引入go-config,來解決這個問題。 go-config 官方文檔說這是一個動態的可

原创 go-micro項目實戰五 服務監控

服務監控 可能讀者會問,鏈路追蹤和服務監控不是一個東西麼?以下知識普及來源於網上。 我這裏從網上找到一張圖 很形象。 Logging - 用於記錄離散的事件。例如,應用程序的調試信息或錯誤信息。它是我們診斷問題的依據。 Metric

原创 go-micro項目實戰四 鏈路追蹤

鏈路追蹤 微服務架構下,所有的服務都分散在不同的地方,一旦某個服務出現問題,排查起來很費時費力。所以在微服務的演進下,需要一個全鏈路追蹤系統來分析服務的運行狀態。 go-micro的trace插件 Micro通過Wrapper實現了三

原创 go-micro項目實戰二 創建商品服務和訂單服務

商品服務 提供商品列表、詳情、庫存更新等服務 訂單服務 提供訂單提交、訂單查詢、狀態變更等服務 創建服務 創建服務的過程和創建用戶服務的過程一樣。這裏就不贅述了。如需查看源碼可以參考https://github.com/qin-jd/

原创 go-micro項目實戰一 創建用戶服務

用戶服務 用戶服務,提供登錄、註冊、修改密碼等功能。 新建服務 micro new shopping/user 整理結構 增加model目錄和repository目錄,刪掉proto裏默認的example文件夾,創建user文件夾。

原创 go-micro項目實戰三 消息訂閱

通知服務 提供發送通知服務 新建服務 micro new shopping/notification 該服務比較簡單,只實驗了消息發佈和訂閱的功能,未提供真正通知的邏輯。 實現的功能是:訂單提交成功後,通知用戶訂單已經提交。 消息代理

原创 go-micro電商項目實戰簡介

項目簡介 該項目是我自學go-micro的練手項目。作爲一個用來學習的小型的電商項目。該項目會包括以下微服務: user-srv 用戶服務,提供註冊、登錄、修改密碼等操作 product-srv 商品服務,提供商品搜索,商品詳情,減

原创 micro 使用grpc協議

gRPC grpc 是谷歌開源的rpc框架,基於http2實現,並支持跨語言。 高性能,跨語言。go-micro和grpc無縫集成。 go-micro裏默認使用的通訊協議是MUCP https://github.com/micro/

原创 go-micro入門

安裝go-micro 1.安裝服務發現能力,docker安裝consul docker run -d --net=host -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": tru

原创 micro api入門

上一節學習了go-micro的入門。 這一節我們來熟悉micro的工具集裏的api用法。 micro api網關 Micro的api就是api網關 API參考了API網關模式爲服務提供了一個單一的公共入口。基於服務發現,使得micro

原创 otter

otter https://github.com/alibaba/otter 同樣是阿里巴巴開源的數據同步工具 定位: 基於數據庫增量日誌解析,準實時同步到本機房或異地機房的mysql/oracle數據庫. 一個分佈式數據庫同步系統