原创 redis添加布隆過濾器插件

redis添加布隆過濾器插件 概念 布隆過濾器(Bloom Filter)是1970年由布隆提出的。它實際上是一個很長的二進制向量和一系列隨機映射函數。布隆過濾器可以用於檢索一個元素是否在一個集合中。它的優點是空間效率和查詢時間都

原创 ELK + Grafana分析nginx日誌

ELK + Grafana分析nginx日誌 一、採集nginx json格式日誌 1、配置nginx日誌輸出格式 log_format json '{"@timestamp":"$time_iso8601",'

原创 redis事務是否支持原子性

redis事務是否支持原子性 ACID 中關於原子性的定義: 原子性:一個事務(transaction)中的所有操作,或者全部完成,或者全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到

原创 Gradle自定義插件編寫

Gradle 簡介 Gradle是一個基於JVM的構建工具,它提供了: 像Ant一樣,通用靈活的構建工具 可以切換的,基於約定的構建框架 強大的多工程構建支持 基於Apache Ivy的強大的依賴管理 支持maven, Ivy倉

原创 kafka-manager安裝

kafka-manager安裝 1、創建相關目錄 mkdir -p /opt/server mkdir -p /data/logs/kafka-manager 2、下載安裝 鏈接: https://pan.baidu.com

原创 緩存穿透、緩存雪崩、緩存擊穿場景模擬、解決方案

cache-best-practice   一、緩存穿透、緩存雪崩、緩存擊穿場景模擬 查詢方法代碼 /** * 緩存穿透、緩存擊穿、緩存雪崩問題 * * @param id * @r

原创 SpringBoot中自定義consul的instance-id

SpringBoot中自定義consul的instance-id application.yml spring: cloud: consul: discovery: instance-id:

原创 Redis實現分佈式鎖進化

Redis實現分佈式鎖進化 1、SetNX tryLock(){ SETNX $key $value } release(){ DELETE $key } 如果業務執行因爲某些原因意外退出了,導致創建了鎖但是沒有刪除鎖,

原创 zipkin server部署

zipkin server部署 1 、創建相關目錄 mkdir -p /opt/server/zipkin mkdir -p /data/logs 2、安裝jdk1.8 https://www.oracle.com/techne

原创 通過聯合索引優化MYSQL慢查詢

通過聯合索引優化MYSQL慢查詢   一、慢SQL分析 慢SQL如下 SELECT SUM(t.amount) as amount FROM (SELECT game_id,room_id,is_robot,amount,reco

原创 consul通過DNS協議查找服務

consul通過DNS協議查找服務 1、centos默認沒有dig命令,dig命令屬於bind-utils工具包,安裝這個包之後就可以使用dig命令了。 yum -y install bind-utils 2、使用DNS API

原创 接口冪等性校驗

接口冪等性校驗   一、概念 冪等(idempotent、idempotence)是一個數學與計算機學概念,常見於抽象代數中。 在編程中.一個冪等操作的特點是其任意多次執行所產生的影響均與一次執行的影響相同。冪等函數,或冪等方法,

原创 Consul 刪除無效的服務

REST接口刪除 http://127.0.0.1:8500/v1/agent/service/deregister/service2-8080 命令刪除 consul services deregister -id=se

原创 consul DNS+ dnsmasq實現域名解析配置

consul DNS+ dnsmasq實現域名解析配置 dnsmasq簡介 Dnsmasq 提供 DNS 緩存和 DHCP 服務功能。作爲域名解析服務器(DNS),dnsmasq可以通過緩存 DNS 請求來提高對訪問過的網址的連接

原创 單例模式的幾種實現方式(JAVA)

單例模式的幾種實現方式(JAVA) 概括起來,要實現一個單例,我們需要關注的點無外乎下面幾個: 構造函數需要是 private 訪問權限的,這樣才能避免外部通過 new 創建實例; 考慮對象創建時的線程安全問題;考慮是否支持延遲