如何用Go快速實現規則引擎
一、出師之名 提到規則引擎,大部分人都會先想到DSL(Domain Specific Language),進而聯想令人生畏的編譯原理、遞歸下降、LL或LR。但規則引擎有大有小,它們在不同場景的存在不一樣,並不一定都要這麼複雜。 比如在一個小型支付系統的簡單風控場景裏,產品同學想設置一些規則避免用户的銀行卡被盜刷或者商户被薅羊毛: 24小時內支付總金額超10w的用户 1小時使用信用卡支付金額超
昵稱 Kyrie
貢獻者237
粉絲0
一、出師之名 提到規則引擎,大部分人都會先想到DSL(Domain Specific Language),進而聯想令人生畏的編譯原理、遞歸下降、LL或LR。但規則引擎有大有小,它們在不同場景的存在不一樣,並不一定都要這麼複雜。 比如在一個小型支付系統的簡單風控場景裏,產品同學想設置一些規則避免用户的銀行卡被盜刷或者商户被薅羊毛: 24小時內支付總金額超10w的用户 1小時使用信用卡支付金額超
昵稱 Kyrie
前言 上一篇咱們介紹了 Hibernate 以及寫了一個 Hibernate 的工具類,快速入門體驗了一波 Hibernate 的使用,我們只需通過 Session 對象就能實現數據庫的操作了。 現在,這篇介紹使用 Hibernate 進行基本的 CRUD、懶加載以及緩存的知識。 提示:如果你還沒看上一篇,那麼建議你看完上一篇再來看這篇。 上一篇:一文快速入門體驗 Hibernate 基本
昵稱 god23bin
Hibernate Hibernate是一個開源的對象關係映射框架(ORM),將Java應用程序中的對象與關係型數據庫之間的數據存儲和檢索進行映射。 Hibernate還提供了一種稱為Hibernate Query Language(HQL)的查詢語言,這提供了一定程度的數據庫獨立性。 以user表為例,通過ORM即可將類中的字段映射為數據庫中的表。 查詢 數據庫查詢分為三個步
昵稱 多走幾步
在現代軟件開發中,數據驗證是確保應用程序健壯性和可靠性的關鍵環節。Java Bean Validation (JSR 380) 作為一個功能強大的規範,為我們提供了一套全面的註解工具集,這些註解能夠幫助開發者在Java應用程序中以一種聲明式的方式執行數據驗證。從基本的非空驗證到複雜的正則表達式匹配,JSR 380規範及其實現,如Hibernate Validator,都為我們提供了豐富的選
昵稱 肖哥彈架構
Chapter 17. Building on the Basics (第 17 章 夯實基礎) The chapters in this book have covered the fundamental components of a Linux system, from low-level kernel and process organization, to networking, to
昵稱 阿東
在當前,API(應用程序接口)的使用變得越來越普遍。其中,HTTP/HTTPS API 是最常見的一種。無論是開發前端還是後端,測試 API 都是一個關鍵環節。Postman 是一種流行且強大的 API 測試工具,能夠幫助開發人員輕鬆地進行接口測試和調試。 一、什麼是 Postman? Postman 是一個專用於 API 開發的跨平台工具。它提供了簡潔易用的界面,幫助開發者和測試人員發送 HTT
昵稱 火爆的鍵盤
在 Web 開發領域,HTTP 方法在定義客户端如何與 Web 服務器交互以及對資源執行不同操作方面起着至關重要的作用。HTTP(Hypertext Transfer Protocol,超文本傳輸協議)是現代網絡應用的棟樑,它定義了客户端與服務器之間的通信方式。 什麼是 HTTP 請求方法 在 Web 通信中,HTTP 請求方法是客户端用來向服務器表達其意圖的一種方式。每次瀏覽網頁、提交表單或與
昵稱 火爆的鍵盤
gRPC是由谷歌開發的現代開源高性能RPC 遠程過程調用框架,由於採用了HTTP/2 作為底層傳輸協議,它特別適用於高性能應用場景。gRPC 在視頻流傳輸等大規模數據傳輸場景以及密集的服務間通訊的微服務架構中表現出色。 數據交換使用輕量級的 Protobuf 序列化協議,這不僅提高了數據處理速度,尤其是在資源有限的環境(如移動設備)中,而且還有助於減少數據傳輸量,節省網絡帶寬,從而降低能耗並延長電
昵稱 倔強的鉛筆
大家在工作中肯定遇到過接口被人狂刷的經歷,就算沒有經歷過,在接口開發的過程中,我們也需要對那些容易被刷的接口或者和會消耗公司金錢相關的接口增加防盜刷功能。例如,發送短信接口以及發送郵件等接口,我看了國內很多產品的短信登錄接口,基本上都是做了防盜刷,如果不做的話,一夜之間,也許公司都賠完了┭┮﹏┭┮。 假設我們正在開發一個發送短信(僅國內)的接口,過程如下 接口定義為/sendSms 請求參數
昵稱 xcye
聚水潭·奇門數據集成到MySQL:售後單數據的高效對接方案 在現代企業的數據管理中,如何高效、準確地將業務系統中的數據集成到分析平台是一個關鍵問題。本文將分享一個具體的技術案例,展示如何通過輕易雲數據集成平台,將聚水潭·奇門的售後單數據無縫對接到MySQL數據庫中,實現業務數據的實時監控與分析。 本次案例的集成方案命名為“聚水潭-售後單--BI崛起-售後表_原始查詢”,主要涉及以下幾個關鍵環節:
昵稱 大仲馬小茶花
數據集成是確保各系統高效協同運作的關鍵環節。本案例將重點介紹如何通過輕易雲數據集成平台,實現旺店通·旗艦奇門與金蝶雲星空之間的銷售出庫數據對接,具體方案為“銷售出庫對接,供應商發貨-new”。 在本次集成過程中,我們利用了旺店通·旗艦奇門提供的API接口wdt.wms.stockout.sales.querywithdetail來獲取銷售出庫數據,並通過金蝶雲星空的batchSave接口進行數據寫
昵稱 大仲馬小茶花
本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記九之方法與接口 本篇筆記介紹 Golang 裏方法和接口,以下是本篇筆記目錄: 方法 接口 用結構體實現類的功能 1、方法 首先介紹一下方法。 方法是與特定類型關聯的函數,我們在實現一個函數前,綁定一個類型,就實現了這個類型的方法。 比如我們想實現一個結構體的方法,可以如下操作: type Person struc
昵稱 Hunter
本文首發於公眾號:Hunter後端 原文鏈接:MySQL面試必備三之事務 這一篇筆記介紹一下 MySQL 的事務,面試中常被問到關於事務的幾個問題如下: 事務是什麼 為什麼需要事務,事務有什麼作用 事務的特點 事務可能帶來哪些問題 事務有哪些隔離級別,這些隔離級別都可以解決哪些問題 可重複讀隔離級別下能否解決幻讀問題 如何解決幻讀問題 以下是本篇筆記目錄: 什麼是事務
昵稱 Hunter
對事務工作接觸了不少,這裏完整的從基本概念,原理,分析,案列等等梳理下事務機制的底層邏輯; 事務機制的底層邏輯 事務的基本特性、機制及原理 百度百科定義 事務(Transaction),一般是指要做的或所做的事情。在計算機術語中是指訪問並可能更新數據庫中各種數據項的一個程序執行單元(unit)。事務通常由高級數據庫操縱語言或編程語言(如SQL,C++或Java)書寫的用户程序的執行所引起,並用形如
昵稱 edagarli
1、背景 在我們的日常開發中,經常會存在在一個Service層中調用另外一個Service層的方法。比如:我們有一個TaskService,裏面有一個execTask方法,且這個方法存在事務,這個方法在執行完之後,需要調用LogService的insertLog方法記錄一條日誌,這個方法上也有事務,不管日誌記錄成功還是失敗,都不能影響execTask方法的執行。因此我們很容易寫出如下代碼。 @Tr
昵稱 huan1993
引言 或許你曾寫過這樣的代碼: @Transaction // 開啓事務 public void craeteOrder(Order order) { saveOrder(order); sendMQ(order); // 或者是發送 rpc } 在一個事務內,向 MySQL 寫入數據,接下來發送 MQ 或 RPC 調用。在大部分情況下,這樣寫好像沒什麼問題 但如果此時我們下游執行
昵稱 牛肉燒烤屋
一、併發控制的本質與挑戰 在數據庫系統的核心地帶,併發控制始終是保障數據一致性的核心命題。當每秒百萬級的交易請求在金融系統中穿梭,當電商平台的庫存數字在促銷瞬間劇烈波動,當社交媒體的點贊計數以指數級增長時,數據庫工程師們必須直面併發控制的終極挑戰:如何在保證數據一致性的前提下,實現最大程度的併發性能。 這個問題的解決之道,本質上是對"時間"這個維度的不同處理策略。悲觀鎖(Pessimistic L
昵稱 DBLens
在數據庫中,事務是保證數據一致性和可靠性的基礎。當你在網上購物、轉賬或者執行任何需要多步操作的數據庫任務時,事務機制都在背後默默保障着數據的安全。那麼,MySQL 是如何實現這一看似簡單卻又複雜的機制呢?本文將帶你深入探索 MySQL 事務的實現原理,通過生動的案例和圖表,讓你輕鬆理解這個核心概念。 什麼是事務? 事務簡單來説就是一組操作的集合,要麼全部執行成功,要麼全部失敗回滾。想象你在 ATM
昵稱 異常君
本文首發於公眾號:Hunter後端 原文鏈接:MySQL面試必備一之索引 在面試過程中,會有一些關於 MySQL 索引相關的問題,以下總結了一些: MySQL 的數據存儲使用的是什麼索引結構 B+ 樹的結構是什麼樣子 什麼是複合索引、聚簇索引、覆蓋索引 什麼是最左匹配原則 數據 B+ 樹中是如何查詢的 回表是什麼操作 B+ 樹的查詢有什麼優勢 索引下推是什麼意思 對於上
昵稱 Hunter
大家好!今天我們來聊一個 MySQL 核心知識點:B+樹索引的查詢過程。可能你每天都在用SELECT語句查詢數據,但你想過這背後到底發生了什麼嗎?MySQL 是怎麼從成千上萬的數據中快速找到你要的那一條記錄的?帶着這個問題,我們一起揭開 MySQL B+樹索引的神秘面紗! 先説説為什麼 MySQL 選擇 B+樹? 在聊查詢過程前,我們得先明白 MySQL 為啥選 B+樹做索引結構。想象一下,如果數
昵稱 異常君
你是否曾經為 MySQL 查詢性能苦惱?或者聽説過"索引下推",但不太明白它是如何工作的?今天我就和大家聊聊 MySQL 中一個強大卻常被忽視的特性 - 索引下推(Index Condition Pushdown,簡稱 ICP)。這個特性從 MySQL 5.6 版本引入,能有效提升查詢性能,減少 IO 操作,但很多開發者對它的理解還不夠深入。 索引下推是什麼? 索引下推是由 MySQL 優化器決定
昵稱 異常君
在開發或生產環境中,我們有時候會上服務器器然後敲命令來部署項目。這種敲命令的方式不僅麻煩,有時候還容易出錯,此時使用一套自動化部署方案,不僅方便還不易出錯。最近發現了一款好用的自動化部署工具Jpom,體驗不輸Jenkins,分享給大家! Jpom簡介 Jpom是一款簡而輕的自動化部署工具,目前在Gitee上已有8.5k+star,它具有在線構建、自動部署、日常運維、項目監控等功能。 它能解決你日常
昵稱 macrozheng
有些程序員在項目上線時,會選擇手敲命令來部署項目,這種方式一旦敲錯命令就會導致項目部署失敗。今天給大家分享一套基於Jenkins+Docker的自動化部署方案,部署齊全,能讓你少走坑路! Jenkins簡介 Jenkins是一款領先的開源自動化工具,採用Java構建,提供超過1800個插件,支持自動化幾乎所有任務,目前在Github上已有23k+Star。其目標是通過自動化重複性的工作,減少人工干
昵稱 macrozheng
在之前的文章中介紹過《使用Jenkins一鍵打包部署SpringBoot項目》,其實Jenkins也可以用來打包部署前端項目。今天就以mall電商實戰項目的前端為例,來講解下如何使用Jenkins一鍵打包部署前端項目。 學習準備 學習本文需要有一定的Jenkins基礎,比如瞭解Jenkins的安裝和基本使用,這些內容可以參考這篇文章: 《Jenkins+Docker一鍵部署SpringBoot項目
昵稱 macrozheng