原创 Oracle發佈開源的輕量級 Java 微服務框架 Helidon

近日,Oracle推出了一個新的開源框架Helidon,該項目是一個用於創建基於微服務的應用程序的Java庫集合。和Payara Micro、Thorntail(之前的WildFly Swarm)、OpenLiberty、TomEE等

原创 還沒用上 JDK 11吧,JDK 12 早期訪問構建版使用

JDK 更新速度快的飛起,JDK 12 早期訪問構建版已發佈,你現在用到了第幾版本? 本週Java的最大新聞可能是JDK 11的正式發佈。不過在 6 月底,JDK 11 就已經進入了 Rampdown Phase One 階段,這意味

原创 給網站配置免費的HTTS證書

最近看到網上說 https 的網站 Google 會優先收錄,所以就抽時間記錄下配置博客的過程。 ACME 使用 LetEncrypt 證書作爲博客的 https 實現方式。 acme.sh 實現了 acme 協議, 可以從 letse

原创 手把手教你 MongoDB 的安裝與詳細使用(一)

一、什麼是MongoDB ? MongoDB 是由C++語言編寫的,是一個基於分佈式文件存儲的開源數據庫系統。 在高負載的情況下,添加更多的節點,可以保證服務器性能。 MongoDB 旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。

原创 保證分佈式系統數據一致性的6種方案

在電商等業務中,系統一般由多個獨立的服務組成,如何解決分佈式調用時候數據的一致性? 具體業務場景如下,比如一個業務操作,如果同時調用服務 A、B、C,需要滿足要麼同時成功;要麼同時失敗。A、B、C 可能是多個不同部門開發、部署在不同服務

原创 Java併發:分佈式應用限流 Redis + Lua 實踐

任何限流都不是漫無目的的,也不是一個開關就可以解決的問題,常用的限流算法有:令牌桶,漏桶。在之前的文章中,也講到過,但是那是基於單機場景來寫。 之前文章:接口限流算法:漏桶算法&令牌桶算法 然而再牛逼的機器,再優化的設計,對於特殊場景我們

原创 常用的分佈式事務解決方案介紹有多少種?

關於分佈式事務,工程領域主要討論的是強一致性和最終一致性的解決方案。典型方案包括: 兩階段提交(2PC, Two-phase Commit)方案 eBay 事件隊列方案 TCC 補償模式 緩存數據最終一致性 一、一致性理論 分

原创 ZooKeeper和CAP理論及一致性原則

ZooKeeper和CAP理論及一致性原則 一、CAP理論概述 CAP理論告訴我們,一個分佈式系統不可能同時滿足以下三種 一致性(C:Consistency) 可用性(A:Available) 分區容錯性(P:Partition Tol

原创 Spring Boot 中使用 MongoDB 增刪改查

本文快速入門,MongoDB 結合SpringBoot starter-data-mongodb 進行增刪改查 1、什麼是MongoDB ? MongoDB 是由C++語言編寫的,是一個基於分佈式文件存儲的開源數據庫系統。 在高負載的情況

原创 Dubbo 整合 Pinpoint 做分佈式服務請求跟蹤

在使用Dubbo進行服務化或者整合應用後,假設某個服務後臺日誌顯示有異常,這個服務又被多個應用調用的情況下,我們通常很難判斷是哪個應用調用的,問題的起因是什麼,因此我們需要一套分佈式跟蹤系統來快速定位問題,Pinpoint可以幫助我們快速

原创 想進大廠?50個多線程面試題,你會多少?(一)

最近看到網上流傳着,各種面試經驗及面試題,往往都是一大堆技術題目貼上去,而沒有答案。 不管你是新程序員還是老手,你一定在面試中遇到過有關線程的問題。Java語言一個重要的特點就是內置了對併發的支持,讓Java大受企業和程序員的歡迎。大多數

原创 Dubbo中暴露服務的過程解析

dubbo 服務暴露過程 作者:大程熙 地址:http://cxis.me/2017/02/19/Dubbo中暴露服務的過程解析 示例項目:https://github.com/souyunku/spring-boot-example

原创 Mysql InnoDB B+樹索引和哈希索引的區別? MongoDB 爲什麼使用B-樹?

B-樹和B+樹最重要的一個區別就是B+樹只有葉節點存放數據,其餘節點用來索引,而B-樹是每個索引節點都會有Data域。 B+樹 B+樹是爲磁盤及其他存儲輔助設備而設計一種平衡查找樹(不是二叉樹)。B+樹中,所有記錄的節點按大小順序存放在同

原创 Twitter的分佈式雪花算法 SnowFlake 每秒自增生成26個萬個可排序的ID (Java版)

分佈式系統中,有一些需要使用全局唯一ID的場景,這種時候爲了防止ID衝突可以使用36位的UUID,但是UUID有一些缺點,首先他相對比較長,另外UUID一般是無序的。 有些時候我們希望能使用一種簡單一些的ID,並且希望ID能夠按照時間有序

原创 MySQL/InnoDB中,樂觀鎖、悲觀鎖、共享鎖、排它鎖、行鎖、表鎖、死鎖概念的理解

MySQL/InnoDB的加鎖,一直是一個面試中常問的話題。例如,數據庫如果有高併發請求,如何保證數據完整性?產生死鎖問題如何排查並解決?我在工作過程中,也會經常用到,樂觀鎖,排它鎖,等。於是今天就對這幾個概念進行學習,屢屢思路,記錄一下