原创 List框架

List集合代表一個有序集合,集合中每個元素都有其對應的順序索引。List集合允許使用重複元素,可以通過索引來訪問指定位置的集合元素。 List接口繼承於Collection接口,它可以定義一個允許重複的有序集合。因爲List中的

原创 那些年你不能錯過的之【Redis】

1) 什麼是 Redis Redis(Remote Dictionary Server)是一個使用C語言 編寫的,開源的(BSD許可)高性能非關係型(NoSQL) 的鍵值對數據庫 Redis可以存儲鍵和五種不同類型的值之間的映射。

原创 分佈式事務

分佈式事務產生的背景 在微服務環境下,因爲會根據不同的業務會拆分成不同的服務,比如會員服務、訂單服務、商品服務等,讓專業的人做專業的事情,每個服務都有自己獨立的數據庫,並且是獨立運行,互不影響。 服務與服務之間通訊採用RPC遠程調

原创 Java操作RabbitMQ

簡單隊列 功能:一個生產者P發送消息到隊列Q,一個消費者C接收 P表示爲生產者 、C表示爲消費者 紅色表示隊列。 Maven <dependencies> <dependency> <groupId>com.rabbitmq

原创 RabbitMQ解決分佈式事務問題

SpringBoot消息重試機制 消息重試機制冪等性 如何合適選擇重試機制 情況1: 消費者獲取到消息後,調用第三方接口,但接口暫時無法訪問,是否需要重試? 需要重試 情況2: 消費者獲取到消息後,拋出數據轉換異常,

原创 RabbitMQ消息確認機制

生產者發送消息出去之後,不知道到底有沒有發送到RabbitMQ服務器, 默認是不知道的。而且有的時候我們在發送消息之後,後面的邏輯出問題了,我們不想要發送之前的消息了,需要撤回該怎麼做。 解決方案: 1.AMQP 事務機制

原创 Dubbo

Dubbo產生的背景 什麼是Dubbo 一款分佈式服務框架 高性能和透明化的RPC遠程服務調用方案 SOA服務治理方案 每天爲2千多個服務提供大於30億次訪問量支持,並被廣泛應用於阿里巴巴集團的各成員站點以及別的公司的業務中。 D

原创 RabbitMQ發佈/訂閱模式

發佈訂閱 生產者 public class ProducerFanout { private static final String EXCHANGE_NAME = "fanout_exchange"; public st

原创 分佈式鎖解決方案

分佈式鎖一般有三種實現方式: 數據庫樂觀鎖; 基於Redis的分佈式鎖; 基於ZooKeeper的分佈式鎖 基於zookeeper瞬時有序節點實現的分佈式鎖,其主要邏輯如下。大致思想即爲:每個客戶端對某個功能加鎖時,在zook

原创 Zookeeper

什麼是Zookeeper Zookeeper是一個分佈式開源框架,提供了協調分佈式應用的基本服務,它向外部應用暴露一組通用服務——分佈式同步(Distributed Synchronization)、命名服務(Naming Ser

原创 高併發服務降級

背景 在今天,基於SOA的架構已經大行其道。伴隨着架構的SOA化,相關聯的服務熔斷、降級、限流等思想,也在各種技術講座中頻繁出現。本文將結合Netflix開源的Hystrix框架,對這些思想做一個梳理。 伴隨着業務複雜性的提高,系

原创 常見Web安全漏洞

XSS攻擊 什麼是XSS攻擊手段 XSS攻擊使用Javascript腳本注入進行攻擊 例如在提交表單後,展示到另一個頁面,可能會受到XSS腳本注入,讀取本地cookie遠程發送給黑客服務器端。 對應html源代碼: <script

原创 Zookeeper實現哨兵機制

master選舉使用場景及結構  現在很多時候我們的服務需要7*24小時工作,假如一臺機器掛了,我們希望能有其它機器頂替它繼續工作。此類問題現在多采用master-salve模式,也就是常說的主從模式,正常情況下主機提供服務,備機

原创 Web前端優化

使用網站動靜分離架構 減少Http請求的傳輸,CSS/JS合併傳輸,壓縮JS、CSS技術 使用瀏覽器緩存靜態資源,減少服務器端壓力 使用CDN內容分發,減少寬帶傳輸,獲取用戶Ip,分配到最近的服務器訪問 實戰CDN內容分發 D

原创 高性能Nginx服務器

高併發與高可用實戰 補充基礎知識 DNS域名解析 整個過程大體描述如下,其中前兩個步驟是在本機完成的,後8個步驟涉及到真正的域名解析服務器:1、瀏覽器會檢查緩存中有沒有這個域名對應的解析過的IP地址,如果緩存中有,這個解析過程就結