日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java之品优购部署_day01(8)

發(fā)布時(shí)間:2025/3/15 java 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java之品优购部署_day01(8) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • RedisCluster
    2.1 Redis-Cluster簡(jiǎn)介
    2.1.1 什么是 Redis-Cluster
    為何要搭建 Redis 集群。Redis 是在內(nèi)存中保存數(shù)據(jù)的,而我們的電腦一般內(nèi)存都不大, 這也就意味著 Redis 不適合存儲(chǔ)大數(shù)據(jù),適合存儲(chǔ)大數(shù)據(jù)的是 Hadoop 生態(tài)系統(tǒng)的 Hbase 或者是 MogoDB。Redis 更適合處理高并發(fā),一臺(tái)設(shè)備的存儲(chǔ)能力是很有限的,但是多臺(tái)設(shè)備協(xié)同合作,就可以讓內(nèi)存增大很多倍,這就需要用到集群。
  • Redis 集群搭建的方式有多種,例如使用客戶端分片、Twemproxy、Codis 等,但從redis 3.0 之后版本支持 redis-cluster 集群,它是 Redis 官方提出的解決方案, Redis-Cluster 采用無(wú)中心結(jié)構(gòu),每個(gè)節(jié)點(diǎn)保存數(shù)據(jù)和整個(gè)集群狀態(tài),每個(gè)節(jié)點(diǎn)都和其他所有節(jié)點(diǎn)連接。其 redis-cluster 架構(gòu)圖如下:

    客戶端與 redis 節(jié)點(diǎn)直連,不需要中間 proxy 層.客戶端不需要連接集群所有節(jié)點(diǎn)連接集群中任何一個(gè)可用節(jié)點(diǎn)即可。

    所有的 redis 節(jié)點(diǎn)彼此互聯(lián)(PING-PONG 機(jī)制),內(nèi)部使用二進(jìn)制協(xié)議優(yōu)化傳輸速度和帶
    寬.
    2.1.1 分布存儲(chǔ)機(jī)制-槽
    (1) redis-cluster 把所有的物理節(jié)點(diǎn)映射到[0-16383]slot 上,cluster 負(fù)責(zé)維護(hù)

    node<->slot<->value

    (2) Redis 集群中內(nèi)置了 16384 個(gè)哈希槽,當(dāng)需要在 Redis 集群中放置一個(gè) key-value 時(shí),redis 先對(duì) key 使用 crc16 算法算出一個(gè)結(jié)果,然后把結(jié)果對(duì) 16384 求余數(shù),這樣每個(gè) key 都會(huì)對(duì)應(yīng)一個(gè)編號(hào)在 0-16383 之間的哈希槽,redis 會(huì)根據(jù)節(jié)點(diǎn)數(shù)量大致均等的將哈希槽映射到不同的節(jié)點(diǎn)。
    例如三個(gè)節(jié)點(diǎn):槽分布的值如下:

    SERVER1:
    0-5460
    SERVER2:
    5461-10922
    SERVER3:
    10923-16383

    2.1.2 容錯(cuò)機(jī)制-投票
    (1)選舉過(guò)程是集群中所有 master 參與,如果半數(shù)以上 master 節(jié)點(diǎn)與故障節(jié)點(diǎn)通信超過(guò)(cluster-node-timeout),認(rèn)為該節(jié)點(diǎn)故障,自動(dòng)觸發(fā)故障轉(zhuǎn)移操作. 故障節(jié)點(diǎn)對(duì)應(yīng)的從節(jié)點(diǎn)自動(dòng)升級(jí)為主節(jié)點(diǎn)
    (2)什么時(shí)候整個(gè)集群不可用(cluster_state:fail)?

    如果集群任意 master 掛掉,且當(dāng)前 master 沒(méi)有 slave.集群進(jìn)入 fail 狀態(tài),也可以理解成集群的 slot 映射[0-16383]不完成時(shí)進(jìn)入 fail 狀態(tài).

    4.2 搭建 Redis-Cluster4.2.1 搭建要求
    需要 6 臺(tái) redis 服務(wù)器。搭建偽集群。需 要 6 個(gè) redis 實(shí) 例 。
    需要運(yùn)行在不同的端口 7001-7006

    4.2.2 準(zhǔn)備工作
    (1)安裝 gcc 【此步省略】
    Redis 是 c 語(yǔ)言開發(fā)的。安裝 redis 需要 c 語(yǔ)言的編譯環(huán)境。如果沒(méi)有 gcc 需要在線安裝。

    yum install gcc-c++
    (2)使用 yum 命令安裝 ruby (我們需要使用 ruby 腳本來(lái)實(shí)現(xiàn)集群搭建)【此步省略】

    yum install ruby
    yum install rubygems
    Ruby,一種簡(jiǎn)單快捷的面向?qū)ο?#xff08;面向?qū)ο蟪绦蛟O(shè)計(jì))腳本語(yǔ)言,在 20 世紀(jì) 90 年代由日本人松本行弘
    (Yukihiro Matsumoto)開發(fā),遵守 GPL協(xié)議和 Ruby License。它的靈感與特性來(lái)自于 Perl、Smalltalk、Eiffel
    Ada以及 Lisp語(yǔ)言。由 Ruby 語(yǔ)言本身還發(fā)展出了 JRuby(Java 平臺(tái))、IronRuby(.NET平臺(tái))等其
    他平臺(tái)的 Ruby 語(yǔ)言替代品。Ruby 的作者于 1993 年 2 月 24 日開始編寫 Ruby,直至 1995 年 12 月才正
    式公開發(fā)布于 f(j 新聞組)。因?yàn)?Perl 發(fā)音與 6 月誕生石 pear(l 珍珠)相同,因此 Ruby 以 7 月誕生石 ruby

    file:///C:\Users\user\AppData\Local\Temp\ksohtml\wps71AB.tmp.pngfile:///C:\Users\user\AppData\Local\Temp\ksohtml\wps71AC.tmp.pngfile:///C:\Users\user\AppData\Local\Temp\ksohtml\wps71AD.tmp.png
    Ruby,一種簡(jiǎn)單快捷的面向?qū)ο?#xff08;面向?qū)ο蟪绦蛟O(shè)計(jì))腳本語(yǔ)言,在 20 世紀(jì) 90 年代由日本人松本行弘
    (Yukihiro Matsumoto)開發(fā),遵守 GPL協(xié)議和 Ruby License。它的靈感與特性來(lái)自于 Perl、Smalltalk、Eiffel
    Ada以及 Lisp語(yǔ)言。由 Ruby 語(yǔ)言本身還發(fā)展出了 JRuby(Java 平臺(tái))、IronRuby(.NET平臺(tái))等其
    他平臺(tái)的 Ruby 語(yǔ)言替代品。Ruby 的作者于 1993 年 2 月 24 日開始編寫 Ruby,直至 1995 年 12 月才正
    式公開發(fā)布于 f(j 新聞組)。因?yàn)?Perl 發(fā)音與 6 月誕生石 pear(l 珍珠)相同,因此 Ruby 以 7 月誕生石 ruby

    file:///C:\Users\user\AppData\Local\Temp\ksohtml\wps71AE.tmp.pngfile:///C:\Users\user\AppData\Local\Temp\ksohtml\wps71BF.tmp.png(3)將 redis 源碼包上傳到 linux 系統(tǒng) ,解壓 redis 源碼包

    (4)編譯 redis 源碼 ,進(jìn)入 redis 源碼文件夾
    make

    看到以下輸出結(jié)果,表示編譯成功

    (5)創(chuàng)建目錄/usr/local/redis-cluster 目錄 安裝 6 個(gè) redis 實(shí)例,分別安裝在以下目錄

    /usr/local/redis-cluster/redis-1

    /usr/local/redis-cluster/redis-2

    /usr/local/redis-cluster/redis-3

    /usr/local/redis-cluster/redis-4

    /usr/local/redis-cluster/redis-5

    /usr/local/redis-cluster/redis-6

    以第一個(gè) redis 實(shí)例為例,命令如下
    make install PREFIX=/usr/local/redis-cluster/redis-1


    出現(xiàn)此提示表示成功,按此方法安裝其余 5 個(gè) redis 實(shí)例
    (6)復(fù)制配置文件 將 /redis-3.0.0/redis.conf 復(fù)制到 redis 下的 bin 目錄下
    [root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-1/bin [root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-2/bin [root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-3/bin [root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-4/bin [root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-5/bin
    [root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-6/bin

    轉(zhuǎn)載于:https://blog.51cto.com/13517854/2140237

    總結(jié)

    以上是生活随笔為你收集整理的Java之品优购部署_day01(8)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。