主頁 > 軟體設計 > 【最硬核Redis集群搭建教程:收藏+實操】——Redis高可用哨兵集群搭建詳細教程

【最硬核Redis集群搭建教程:收藏+實操】——Redis高可用哨兵集群搭建詳細教程

2021-04-17 11:01:18 軟體設計

目錄

事情是這樣的

一、Redis下載及安裝

1、下載地址

2、解壓Redis安裝包

3、Redis編譯安裝

三、集群搭建配置

1、總體構造

2、偽集群

3、主節點redis服務6379配置

4、redis從節點服務 7001/7002配置

四、故障轉移/高可用配置(哨兵模式sentinel)

1、總體架構

2、主節點master配置哨兵sentinel

3、從節點slave配置哨兵sentinel

五、啟動集群

1、啟動所有redis服務節點

2、啟動所有哨兵sentinel服務

3、查看服務行程

六、測驗:資料同步+讀寫分離+故障轉移

1、資料同步測驗

2、master/slave節點查看

3、故障轉移(高可用)測驗

4、讀寫分離測驗

下期預告:下一期出Redis分布式搭建詳細教程~~~敬請期待,,,


事情是這樣的

今天內容干貨比較多,比較硬核,就不碼故事情節了,

建議:收藏+實操,一定要自己來一遍哦,

一、Redis下載及安裝

1、下載地址

http://distfiles.macports.org/redis/redis-5.0.7.tar.gz

2、解壓Redis安裝包

#解壓redis
[root@open-falcon mnt]# tar -zxvf redis-5.0.7.tar.gz

#解壓得到包如下
[root@open-falcon mnt]# cd redis-5.0.7

#包內檔案如下
[root@open-falcon redis-5.0.7]# ls
00-RELEASENOTES  CONTRIBUTING  deps     Makefile   README.md   runtest          runtest-moduleapi  sentinel.conf  tests
BUGS             COPYING       INSTALL  MANIFESTO  redis.conf  runtest-cluster  runtest-sentinel   src            utils
[root@open-falcon redis-5.0.7]# 

3、Redis編譯安裝

#進入解壓包
[root@open-falcon redis-5.0.7]# cd redis-5.0.7

#編譯&安裝
[root@open-falcon redis-5.0.7]# make && make install

三、集群搭建配置

1、總體構造

Redis高可用集群,一般選三臺服務器:這樣,我們在一臺主節點掛了之后,另外兩臺可以選舉其中一臺擔任主節點master的角色,

①slave節點配置從master節點同步資料

②哨兵sentinel故障轉移機制:每個redis節點搭建一個監控哨兵,當redis的master節點掛掉之后:三個哨兵選舉一個slave節點 成為master節點

#部署在同一臺服務器上,使用3個埠對外提供服務

主節點master    
1臺    
Redis服務    192.168.154.145 6379
sentinel哨兵 192.168.154.145 26379

從節點slave     
2臺    
Redis服務    192.168.154.145 27001
sentinel哨兵 192.168.154.145 27002

2、偽集群

由于現場沒有三臺服務器,我們就在一臺服務器上,使用3個埠,來給他搭一個"偽集群":

何為"偽集群"呢?

"偽集群" 架構與真正集群完全一樣,故障轉移、高可用都可以,

只是搭建在一臺服務器上,使用3個埠對外提供服務,

生產環境下,集群環境還是需要使用3臺不同的服務器,從而保證高可用,這里只是節約資源、方便搭建,

3、主節點redis服務6379配置

完整配置及步驟如下:

1、創建主節點作業目錄 redis-6379
mkdir -p /usr/local/redis-6379

2、將組態檔拷貝到作業目錄下
cp redis-5.0.7/redis.conf /usr/local/redis-6379
3、主節點 6379 埠配置
#打開主節點redis.conf
vim /usr/local/redis-6379/redis.conf

4、修改如下內容:左側為修改的行數,方便大家查找
69 bind 0.0.0.0
92 port 6379
136 daemonize yes
158 pidfile /var/run/redis_6379.pid
171 logfile "/usr/local/redis-6379/redis-6379.log"
#默認配置不用修改
218 save 900 1
219 save 300 10
220 save 60 10000
#全量備份檔案名
253 dbfilename redis-6379.rdb
#指定路徑名
263 dir /usr/local/redis-6379
#設定redis密碼
509  requirepass 123456
#開啟增量備份
701 appendonly yes
705 appendfilename "appendonly-6379.aof"

4、redis從節點服務 7001/7002配置

注意,從節點與主節點配置的區別主要在兩個地方

①配置主節點:replicaof 192.168.154.145 6379

②配置主節點的登錄密碼masterauth 123456

完整配置及步驟如下:

1、創建從節點作業目錄 redis-7001 和 redis-7002
mkdir -p /usr/local/redis-7001
mkdir -p /usr/local/redis-7002
2、將組態檔拷貝到作業目錄下
cp redis-5.0.7/redis.conf /usr/local/redis-7001
cp redis-5.0.7/redis.conf /usr/local/redis-7002
3、從節點 7001 / 7002 埠配置

#分別打開從節點redis.conf

vim /usr/local/redis-7001/redis.conf
vim /usr/local/redis-7002/redis.conf
4、7001 從節點配置,左側為修改的行數,方便大家查找

69 bind 0.0.0.0
92 port 7001
136 daemonize yes
158 pidfile /var/run/redis_7001.pid
171 logfile "/usr/local/redis-7001/redis-7001.log"
#默認配置不用修改
218 save 900 1
219 save 300 10
220 save 60 10000
#全量備份檔案名
253 dbfilename redis-7001.rdb
#指定路徑名
263 dir /usr/local/redis-7001
#設定主節點 地址埠+主節點連接密碼
286 replicaof 192.168.154.145 6379
293 masterauth 123456
#設定redis密碼
509  requirepass 123456
#開啟增量備份
701 appendonly yes
705 appendfilename "appendonly-7001.aof"
5、7002 從節點配置,左側為修改的行數,方便大家查找

69 bind 0.0.0.0
92 port 7002 
136 daemonize yes
158 pidfile /var/run/redis_7002.pid
171 logfile "/usr/local/redis-7002/redis-7002.log"
#默認配置不用修改
218 save 900 1
219 save 300 10
220 save 60 10000
#全量備份檔案名
253 dbfilename redis-7002.rdb
#指定路徑名
263 dir /usr/local/redis-7002
#設定主節點 地址埠+主節點連接密碼
286 replicaof 192.168.154.145 6379
293 masterauth 123456
#設定redis密碼
509  requirepass 123456
#開啟增量備份
701 appendonly yes
705 appendfilename "appendonly-7002.aof"

四、故障轉移/高可用配置(哨兵模式sentinel)

1、總體架構

主節點哨兵:

6379埠redis主服務,哨兵默認埠為26379

從節點哨兵:

7001埠redis服務,哨兵使用27001埠

7002埠redis服務,哨兵使用27002埠

2、主節點master配置哨兵sentinel

為了方便管理,我們把哨兵作業目錄分別建在對應的redis作業目錄下

注意:

①配置master的地址及命名(mymaster為集群名稱):sentinel monitor mymaster 192.168.154.145 6379 2

②配置連接redis主節點的密碼 sentinel auth-pass mymaster 123456

③日志目錄一定要創建,因為出問題,方便查找原因, logfile "/usr/local/redis-6379/sentinel/redis-sentinel.log"

1、創建主節點 sentinel作業目錄
mkdir -p /usr/local/redis-6379/sentinel/
2、將組態檔拷貝到sentinel作業目錄下
cp redis-5.0.7/sentinel.conf /usr/local/redis-6379/sentinel/
3、修改組態檔 左側為修改的行數,方便大家查找
vim /usr/local/redis-6379/sentinel/sentinel.conf 

#配置哨兵埠
21 port 26379
#配置行程id存盤地址
32 pidfile "/usr/local/redis-6379/redis-sentinel-26379.pid"
#配置log路徑    
37 logfile "/usr/local/redis-6379/sentinel/redis-sentinel.log"
#配置哨兵作業目錄
64 dir "/usr/local/redis-6379/sentinel"
#配置監控的redis主節點
112 sentinel monitor mymaster 192.168.154.145 6379 2
#配置主節點登錄密碼
120 sentinel auth-pass mymaster 123456

3、從節點slave配置哨兵sentinel

①從節點的配置,除了作業目錄不同及埠,其余與主節點完全一致

1、創建從節點 sentinel作業目錄
mkdir -p /usr/local/redis-7001/sentinel/
mkdir -p /usr/local/redis-7002/sentinel/
2、將組態檔拷貝到sentinel作業目錄下
cp redis-5.0.7/sentinel.conf /usr/local/redis-7001/sentinel/
cp redis-5.0.7/sentinel.conf /usr/local/redis-7002/sentinel/
3、分別修改slave節點 哨兵組態檔
vim /usr/local/redis-7001/sentinel/sentinel.conf 
vim /usr/local/redis-7002/sentinel/sentinel.conf 
4、27001節點哨兵的配置 左側為修改的行數,方便大家查找

#配置哨兵埠
21 port 27001
#配置行程id存盤地址
32 pidfile "/usr/local/redis-7001/redis-sentinel-27001.pid"
#配置log路徑    
37 logfile "/usr/local/redis-7001/sentinel/redis-sentinel.log"
#配置哨兵作業目錄
64 dir "/usr/local/redis-7001/sentinel"
#配置監控的redis主節點
112 sentinel monitor mymaster 192.168.154.145 6379 2
#配置主節點登錄密碼
120 sentinel auth-pass mymaster 123456
5、27002哨兵節點的配置 左側為修改的行數,方便大家查找

#配置哨兵埠
21 port 27002
#配置行程id存盤地址
32 pidfile "/usr/local/redis-7002/redis-sentinel-27002.pid"
#配置log路徑    
37 logfile "/usr/local/redis-7002/sentinel/redis-sentinel.log"
#配置哨兵作業目錄
64 dir "/usr/local/redis-7002/sentinel"
#配置監控的redis主節點
112 sentinel monitor mymaster 192.168.154.145 6379 2
#配置主節點登錄密碼
120 sentinel auth-pass mymaster 123456

到此全部配置完成,

五、啟動集群

1、啟動所有redis服務節點

#分別啟動三個節點的redis服務
[root@mail ~]# redis-server /usr/local/redis-6379/redis.conf
[root@mail ~]# redis-server /usr/local/redis-7001/redis.conf 
[root@mail ~]# redis-server /usr/local/redis-7002/redis.conf 

2、啟動所有哨兵sentinel服務

#啟動時,根據組態檔啟動
[root@mail ~]# redis-sentinel /usr/local/redis-6379/sentinel/sentinel.conf 
[root@mail ~]# redis-sentinel /usr/local/redis-7001/sentinel/sentinel.conf 
[root@mail ~]# redis-sentinel /usr/local/redis-7002/sentinel/sentinel.conf 

3、查看服務行程

#如下圖:三個redis服務+三個哨兵監控 全部啟動成功
[root@mail ~]# ps aux|grep redis   
root      50845  0.0  0.1 158068  3904 ?        Ssl  07:50   0:42 redis-server 0.0.0.0:6379                               
root      50166  0.0  0.1 161652  3768 ?        Ssl  07:39   0:43 redis-server 0.0.0.0:7001                    
root      50173  0.1  0.2 161652  4884 ?        Ssl  07:40   0:53 redis-server 0.0.0.0:7002                    
root      50370  0.1  0.1 152436  3692 ?        Ssl  07:43   1:14 redis-sentinel *:26379 [sentinel]                          
root      50375  0.1  0.0 152436  1748 ?        Ssl  07:43   1:15 redis-sentinel *:27001 [sentinel]                          
root      50431  0.1  0.0 152436  1712 ?        Ssl  07:43   1:14 redis-sentinel *:27002 [sentinel]                          

六、測驗:資料同步+讀寫分離+故障轉移

1、資料同步測驗

測驗目標:master主節點 寫入/修改/洗掉資料,slave從節點會自動同步master的資料操作記錄,

① redis-cli鏈接master主節點,寫入age和name 兩個資料

#鏈接redis,設定兩個值,如下
[root@mail ~]# redis-cli -a 123456 -p 6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> set age 25
OK
127.0.0.1:6379> set name lex
OK

② 登錄slave從節點查看

#登錄slave從節點
[root@mail ~]# redis-cli -a 123456 -p 7001
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

#查看所有資料
127.0.0.1:7001> keys *
1) "age"
2) "name"

#查看age資料
127.0.0.1:7001> get age
"25"

#嘗試修改資料
127.0.0.1:7001> set age 30
(error) READONLY You can't write against a read only replica.
#修改失敗,slave從節點 資料只讀

2、master/slave節點查看

① 鏈接哨兵:查看master節點和slave節點的分配情況

② 鏈接命令:redis-cli -a 123456 -p 26379 ,同樣使用redis-cli,只是鏈接到sentinel的埠即可

查看master主節點地址:6379埠服務

#鏈接哨兵sentinel 同樣使用redis-cli
[root@mail ~]# redis-cli -a 123456 -p 26379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
#查看mymaster(我們配置的集群名)  集群的master 是哪個
127.0.0.1:26379> sentinel master mymaster
 1) "name"
 2) "mymaster"
 3) "ip"
 4) "192.168.154.145"
 5) "port"
 6) "6379"
 7) "runid"
 8) "105cc1c986fcda65ad4ddba69012e8e6e0073e1f"
 9) "flags"
10) "master"
...

③ 查看slave節點地址:兩個slave節點分別是7001和7002服務,可以看到兩個slave節點指向的master節點為6379

#命令如下:
127.0.0.1:26379> sentinel slaves mymaster
1)  1) "name"
    2) "192.168.154.145:7001"
    3) "ip"
    4) "192.168.154.145"
    5) "port"
    6) "7001"
    9) "flags"
   10) "slave"
   31) "master-link-status"
   32) "ok"
   33) "master-host"
   34) "192.168.154.145"
   35) "master-port"
   36) "6379"
...

2)  1) "name"
    2) "192.168.154.145:7002"
    3) "ip"
    4) "192.168.154.145"
    5) "port"
    6) "7002"
    9) "flags"
   10) "slave"
   31) "master-link-status"
   32) "ok"
   33) "master-host"
   34) "192.168.154.145"
   35) "master-port"
   36) "6379"
...

3、故障轉移(高可用)測驗

測驗目的:master主節點掛掉之后,我們的sentinel集群可以通過選舉機制,重新在slave節點中選舉一個作為新的master節點,

① 關閉主節點6379

#鏈接主節點,shutdown關閉主節點
[root@mail ~]# redis-cli -a 123456 -p 6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> shutdown
not connected> 

② 查看此時的master節點

鏈接到哨兵,查看主節點:此時,經過三個哨兵的選舉,主節點變為 7002

#鏈接到哨兵,查看主節點:主節點變為 7002
[root@mail ~]# redis-cli -a 123456 -p 26379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:26379> sentinel master mymaster
 1) "name"
 2) "mymaster"
 3) "ip"
 4) "192.168.154.145"
 5) "port"
 6) "7002"
 7) "runid"
 8) "105cc1c986fcda65ad4ddba69012e8e6e0073e1f"
 9) "flags"
10) "master"
...
127.0.0.1:26379> 

③此時,再查看slave節點的情況

發現slave節點變為:6379和7001兩個,而且6379的狀態為 "s_down,slave,disconnected",因為我們關閉了6379

[root@mail ~]# redis-cli -a 123456 -p 26379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:26379> sentinel slaves mymaster
1)  1) "name"
    2) "192.168.154.145:6379"
    3) "ip"
    4) "192.168.154.145"
    5) "port"
    6) "6379"
    7) "runid"
    8) "e740b7285067b2dbb8c2640745196099460f4bb3"
    9) "flags"
   10) "s_down,slave,disconnected"

...
2)  1) "name"
    2) "192.168.154.145:7001"
    3) "ip"
    4) "192.168.154.145"
    5) "port"
    6) "7001"
    7) "runid"
    8) "19a7647509ba020adfd06b1eb40f1f35d06c549d"
    9) "flags"
   10) "slave"
...
127.0.0.1:26379> 

④ 所以,故障轉移就成功了,

4、讀寫分離測驗

① redis集群開啟之后,slave從節點的權限 默認是只讀的;當然我們也可以開啟slave節點的寫入權限,

所以,寫資料:鏈接master主節點;讀資料:鏈接slave從節點,

如下圖:slave從節點,沒有寫入權限

#登錄slave從節點
[root@mail ~]# redis-cli -a 123456 -p 7001
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

#查看所有資料
127.0.0.1:7001> keys *
1) "age"
2) "name"

#查看age資料
127.0.0.1:7001> get age
"25"

#嘗試修改資料
127.0.0.1:7001> set age 30
(error) READONLY You can't write against a read only replica.
#修改失敗,slave從節點 資料只讀

下期預告:下一期出Redis分布式搭建詳細教程~~~敬請期待,,,

推薦閱讀

叫你別隨便重啟Redis!!!怎么樣,資料全丟了吧~~~

python你TM太皮了——區區30行代碼就能記錄鍵盤的一舉一動

白帽SQL注入實戰程序記錄(2)——根據information_schema組裝SQL注入陳述句

女神相冊密碼忘記了,我只用Python寫了20行代碼~~~

歡迎關注微信公眾號:hacklex 讓安全技術不再神秘,讓編程更加有趣~~~

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/277015.html

標籤:其他

上一篇:MySQL提升筆記(3)日志檔案詳解

下一篇:如何吃透一個java專案

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more