原创 LVS三種工作模式

1. LVS模式之NAT NAT模式是指基於IP地址的轉換的一種工作模式,如下圖所示,用戶在瀏覽器端輸入域名,通過DNS域名解析出VIP(虛擬IP),然後通過虛擬IP找到LVS,此時LVS是處於公網的,用戶是可以ping通192

原创 Redis哨兵機制與實現

1. Redis哨兵機制 Redis的讀寫分離、主從複製架構師針對讀請求的一種橫向擴展,可以形成一主多從的架構,但是有一個非常致命的問題:master節點掛了怎麼辦?slave節點只會提供讀請求,用戶沒法執行寫請求了 爲了解決這

原创 Nginx的集羣負載均衡解析

1. Nginx的負載均衡概述 當我們使用集羣的時候,肯定會涉及到負載均衡,負載均衡可以提高吞吐量,提高併發性能,增強服務器的處理性能,當有大量的併發請求來到服務器的時候,可以把請求分發到不同的服務器,讓更多的服務器來響應,如此

原创 elasticsearch索引基本操作

elasticsearch提供了restful api接口供用戶調用,端口默認爲9200,比如:http://localhost:9200 查詢集羣狀態 創建demo索引,主分片1個,副本分片0份,同時創建映射,指明索引屬性

原创 Redis讀寫分離架構搭建及原理解析

1. Redis讀寫分離原理 爲了解決單實例Redis在高併發下的性能問題,所以需要對單實例Redis進行擴展,將其擴展爲一個(master)主節點負責寫入以及多個從節點(slave)負責讀取,所以讀寫分離架構是一種主從架構。

原创 行鎖:InnoDB替代MyISAM的重要原因

InnoDB能夠替代MyISAM的原因有二: InnoDB支持事務:適合在併發條件下要求數據一致的場景 InnoDB支持行鎖:有效降低由於刪除或者更新導致的鎖定 1. 兩階段鎖 傳統的關係型數據庫加鎖的一個原則是:兩階段鎖原則

原创 安裝配置FastDFS並與nginx整合

1. 配置FastDFS環境準備工作 我的環境是三個阿里雲節點,系統是CentOS7.7,在每個節點都要進行如下的操作: 安裝編譯環境: yum install -y gcc gcc-c++ yum install -y l

原创 Nginx構建Tomcat集羣

1. Nginx構建Tomcat集羣Demo 通過Nginx的upstream模塊構建三臺Tomcat組成的集羣,首先在nginx.conf文件中添加如下內容: upstream youpin-server { server 1

原创 LVS負載均衡入門

1. LVS簡介 Linux Virtual Server,指Linux系統上的虛擬服務; LVS的核心是ipvs,已經被集成到Linux內核中,可以理解成蘋果手機的IOS系統; 是一個基於四層的負載均衡調度器,即IP+Port

原创 負載均衡之ip_hash

1. 什麼是ip_hash? ip_hash是根據用戶請求過來的ip,然後映射成hash值,然後分配到一個特定的服務器裏面; 使用ip_hash這種負載均衡以後,可以保證用戶的每一次會話都只會發送到同一臺特定的Tomcat裏面,

原创 分佈式緩存方案與技術選型

1. Ehcache 優點: 基於Java開發 基於JVM緩存,在JVM中使用Ehcache,速度更快 缺點: 集羣不支持 分佈式不支持 適用場景: 適合單應用 2. Memcache 優點: 簡單的KV存儲,只支持

原创 Redis五大數據類型之zset

zset和set類似,都是存儲無序不重複的數據。但是zset會帶有一個分數score,然後可以根據score去排序。 往zset中加入數據並羅列出來 帶有分數的顯示出來 插入0分的e和6分的f,並顯示,可以看出e排

原创 全局鎖和表鎖什麼場景會用到

數據庫往往是多個用戶在連接使用的,那麼**如何保證數據併發訪問的一致性、有效性呢?**首先我們看一下MySQL的鎖機制。 根據加鎖的範圍,MySQL中的鎖可分爲三類: 全局鎖; 表級鎖; 行鎖; 1. 全局鎖 MySQL全局鎖

原创 Redis五大數據類型之string

string是Redis中最簡單的字符串類型,是用來存儲鍵值對的。如圖所示,set進name和age,再使用get key命令把對應的內容拉取出來。 使用keys * 命令把所有的key拉取出來。 keys * 是不推薦在生

原创 Nginx高可用HA

1. Nginx常規部署 如下圖所示,用戶在訪問網站的時候是直接訪問到Nginx,Nginx下掛了一個Tomcat集羣,在集羣環境下,Tomcat之間彼此協調,已達到負載均衡,如果有一臺Tomcat宕機了,其他Tomcat還可以提