久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Redis步驟解析之sentinel哨兵集群

      本篇文章主要介紹了Redis sentinel哨兵集群的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,下面一起來看一下,希望對大家有幫助。

      Redis步驟解析之sentinel哨兵集群

      推薦學習:Redis視頻教程

      一、Redis sentinel哨兵集群概述

      (1)Redis哨兵概述

      *Sentinel 哨兵:這是一個分布式系統(tǒng),該進程是用于監(jiān)控Redis集群中Master主服務器的工作狀態(tài),在Master主服務器發(fā)生故障時,可以實現(xiàn)Master和Slave服務器的秒級切換,保證系統(tǒng)有一個Master主服務器,提供了Redis集群的高可用,在Reids2.6.版本時被加入,到2.8版本之后得到了穩(wěn)定

      Redis哨兵和Redis主從的區(qū)別:

      Redis哨兵:主服務器出現(xiàn)故障后,會有一個從服務器代替主服務器

      Redis主從:主服務器出現(xiàn)故障后,從服務器不會做任何事

      Redis步驟解析之sentinel哨兵集群

      (2)Redis哨兵的工作機制

      哨兵只需要部署在master主服務器上即可

      工作進程:

      監(jiān)控(Monitoring):哨兵通過流言協(xié)議(gossip protocols)會不斷檢查集群中每一臺服務器是否運作正常

      提醒(Notification):當哨兵監(jiān)控的某個redis服務器出現(xiàn)問題時,哨兵可以通過API(應用程序接口)向管理員或者其他應用程序發(fā)送通知

      自動故障轉(zhuǎn)移(Automatic failover):在集群中如果有一個Master主服務器出現(xiàn)故障時,哨兵會通過投票協(xié)議(Agreement Protocols)開始一次自動故障遷移操作,他會選擇一臺數(shù)據(jù)較完整的Slave從服務器升級為主服務器,當客戶端試圖連接失效的Master主服務器時,集群也會向客戶端返回新的Master主服務器的地址,使得集群可以使用現(xiàn)在的Master替換掉失效的Master。

      Master和Slave切換后,Master的redis主配置文件、Slave的redis主配置文件和哨兵的配置文件的內(nèi)容都會發(fā)生相應的改變,即原來的Master的redis主配置文件會多一行Slave服務器的配置,之后哨兵的監(jiān)控目標就會改變到現(xiàn)在的Master主服務器上

      Redis步驟解析之sentinel哨兵集群

      (3)哨兵的三個定時監(jiān)控任務

      每隔10秒,每個Sentinel節(jié)點會向主節(jié)點和從節(jié)點發(fā)送info命令獲取Redis數(shù)據(jù)節(jié)點的信息

      作用:

      通過向主節(jié)點執(zhí)行info命令,獲取從節(jié)點的信息,這也是為什么Sentinel節(jié)點不需要顯式配置監(jiān)控從節(jié)點。當有新的從節(jié)點加入時都可以立刻感知出來,當節(jié)點不可達或者故障轉(zhuǎn)移后,可以通過info命令實時更新節(jié)點拓撲信息。

      每隔1秒,每個Sentinel節(jié)點會向主節(jié)點、從節(jié)點、發(fā)送一條ping命令做一次心跳檢測,來確認這些節(jié)點當前是否可達如果主節(jié)點掛掉,那么sentinel,就會從剩余的從節(jié)點選擇一個數(shù)據(jù)比較完整來做主節(jié)點

      二、部署Redis哨兵系統(tǒng)

      (1)實驗環(huán)境

      系統(tǒng) ip 主機名 Redis版本 端口 扮演角色
      Centos7.4 192.168.100.202 master Redis-5.0.4 Redis:6379 Sentinel:26379 Master
      Centos7.4 192.168.100.203 slave1 Redis-5.0.4 Redis:6379 Slave
      Centos7.4 192.168.100.204 slave2 Redis-5.0.4 Redis:6379 Slave

      (2)實驗步驟 -在每臺服務器上都安裝Redis

      安裝步驟相同,主機名、ip不同,下面只寫Master配置

      [root@Centos7 ~]# hostnamectl set-hostname master [root@Centos7 ~]# su [root@master ~]# systemctl stop firewalld [root@master ~]# setenforce 0 setenforce: SELinux is disabled [root@master ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 寫保護,將以只讀方式掛載 mount: /dev/sr0 已經(jīng)掛載或 /mnt 忙        /dev/sr0 已經(jīng)掛載到 /mnt 上 [root@master ~]# ll 總用量 1928 -rw-------. 1 root root    1264 1月  12 18:27 anaconda-ks.cfg -rw-r--r--  1 root root 1966337 6月   9 01:16 redis-5.0.4.tar.gz [root@master ~]# tar xf redis-5.0.4.tar.gz [root@master ~]# cd redis-5.0.4 [root@master redis-5.0.4]# make [root@master redis-5.0.4]# mkdir -p /usr/local/redis [root@master redis-5.0.4]# cp /root/redis-5.0.4/src/redis-server /usr/local/redis/ [root@master redis-5.0.4]# cp /root/redis-5.0.4/src/redis-cli /usr/local/redis/ [root@master redis-5.0.4]# cp /root/redis-5.0.4/redis.conf  /usr/local/redis/  [root@master redis-5.0.4]# vim /usr/local/redis/redis.conf   #修改 。。。。。。   68 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   69 bind 192.168.100.202  #修改為本機地址,如果為127.0.0.1就只能本機訪問   70  。。。。。。   87 # are explicitly listed using the "bind" directive.   88 protected-mode no  #關閉redis的保護模式,如果為yes的話其他客戶端就無法連接到此服務器   89  。。。。。。  135 # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.  136 daemonize yes  #開啟redis的后臺守護程序,即在redis開啟之后是放在后臺運行的  137  。。。。。。  262 # Note that you must specify a directory here, not a file name.  263 dir /usr/local/redis/rdb  264  。。。。。。  506 #  507 requirepass 123123  #去掉注釋,修改redis的密碼為123123  508  #保存退出 [root@slave2 redis-5.0.4]# mkdir /usr/local/redis/rdb [root@master redis-5.0.4]# vim /etc/init.d/redis #!/bin/sh # chkconfig: 2345 80 90 # description: Start and Stop redis #PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379 EXEC=/usr/local/redis/redis-server REDIS_CLI=/usr/local/redis/redis-cli PIDFILE=/var/run/redis_6379.pid CONF="/usr/local/redis/redis.conf" AUTH="123123" LISTEN_IP=$(netstat -utpln |grep redis-server |awk '{print $4}'|awk -F':' '{print $1}')  case "$1" in     start)         if [ -f $PIDFILE ]         then                 echo "$PIDFILE exists, process is already running or crashed"         else                 echo "Starting Redis server..."                 $EXEC $CONF         fi         if [ "$?"="0" ]         then               echo "Redis is running..."         fi         ;;     stop)         if [ ! -f $PIDFILE ]         then                 echo "$PIDFILE does not exist, process is not running"         else                 PID=$(cat $PIDFILE)                 echo "Stopping ..."                 $REDIS_CLI -h $LISTEN_IP -p $REDISPORT -a $AUTH SHUTDOWN                 while [ -x ${PIDFILE} ]                do                     echo "Waiting for Redis to shutdown ..."                     sleep 1                 done                 echo "Redis stopped"         fi         ;;    restart|force-reload)         ${0} stop         ${0} start         ;;   *)     echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2         exit 1 esac [root@master redis-5.0.4]# chkconfig --add redis [root@master redis-5.0.4]# chmod 755 /etc/init.d/redis [root@master redis-5.0.4]# ln -s /usr/local/redis/* /usr/local/bin/ [root@master redis-5.0.4]# /etc/init.d/redis start  Starting Redis server... 5233:C 09 Jun 2021 01:25:53.069 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 5233:C 09 Jun 2021 01:25:53.069 # Redis version=5.0.4, bits=64, commit=00000000, modified=0, pid=5233, just started 5233:C 09 Jun 2021 01:25:53.069 # Configuration loaded Redis is running... [root@master redis-5.0.4]# netstat -anpt | grep 6379 tcp        0      0 192.168.100.202:6379    0.0.0.0:*               LISTEN      5234/redis-server 1

      -做redis主從

      ******(1)Master配置 [root@master redis-5.0.4]# vim /usr/local/redis/redis.conf #修改 。。。。。。  292 #  293  masterauth 123123  #配置主服務器密碼,哨兵有一個問題,就是當主服務器壞掉,切換到從服務器時,原來的主服務器可以正常運行之后,再次加入集群是加不進去的,因為哨兵沒有配置主服務器的密碼,所以無法連接,所以在使用哨兵集群時,要把每臺的主服務器密碼都配置上,每臺redis的密碼最好都一樣  294  。。。。。。  456 #  457  min-replicas-to-write 1 #設置slave服務器的數(shù)量,當slave服務器少于這個數(shù)量時,Master主服務器會停止接收客戶端的一切寫請求  458  min-replicas-max-lag 10 #設置主服務器和從服務器之間同步數(shù)據(jù)的超時時間,當超過此時間時,master主服務器會停止客戶端的一切寫操作,單位為秒  459 # 。。。。。。 [root@master redis-5.0.4]# /etc/init.d/redis restart   #重啟redis Stopping ... Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. Redis stopped Starting Redis server... 5291:C 09 Jun 2021 02:04:39.132 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 5291:C 09 Jun 2021 02:04:39.132 # Redis version=5.0.4, bits=64, commit=00000000, modified=0, pid=5291, just started 5291:C 09 Jun 2021 02:04:39.132 # Configuration loaded Redis is running...  ******(2)Slave1配置 [root@slave1 redis-5.0.4]# vim /usr/local/redis/redis.conf  。。。。。。  285 #  286 replicaof 192.168.100.202 6379  #在從服務器上指定主服務器的ip和端口  287  。。。。。。  292 #  293 masterauth 123123  #指定主服務器上redis的密碼  294 。。。。。。 #保存退出 [root@slave redis-5.0.4]# /etc/init.d/redis restart  #重啟服務 Stopping ... Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. Redis stopped Starting Redis server... 5304:C 09 Jun 2021 02:11:32.241 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 5304:C 09 Jun 2021 02:11:32.241 # Redis version=5.0.4, bits=64, commit=00000000, modified=0, pid=5304, just started 5304:C 09 Jun 2021 02:11:32.241 # Configuration loaded Redis is running...  ******(3)Slave2配置 [root@slave2 redis-5.0.4]# vim /usr/local/redis/redis.conf  。。。。。。  286  replicaof 192.168.100.204 6379  287   288 # If the master is password protected (using the "requirepass" configuration  289 # directive below) it is possible to tell the replica to authenticate before  290 # starting the replication synchronization process, otherwise the master will  291 # refuse the replica request.  292 #  293  masterauth 123123  294  。。。。。。 #保存退出 [root@slave2 redis-5.0.4]# /etc/init.d/redis restart  Stopping ... Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. Redis stopped Starting Redis server... 5253:C 09 Jun 2021 17:50:25.680 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 5253:C 09 Jun 2021 17:50:25.680 # Redis version=5.0.4, bits=64, commit=00000000, modified=0, pid=5253, just started 5253:C 09 Jun 2021 17:50:25.680 # Configuration loaded Redis is running...  ******(3)驗證主從是否成功 [root@master ~]# redis-cli -h 192.168.100.202 -a 123123 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 192.168.100.202:6379> set aaa bbb OK 192.168.100.202:6379> set bbb ccc  OK 192.168.100.202:6379> keys * 1) "aaa" 2) "bbb"  [root@slave1 ~]# redis-cli -h 192.168.100.203 -a 123123 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 192.168.100.203:6379> keys * 1) "bbb" 2) "aaa" 192.168.100.203:6379> set ttt fff (error) READONLY You can't write against a read only replica.  #從服務器無法寫入數(shù)據(jù)  [root@slave2 redis-5.0.4]# redis-cli -h 192.168.100.204 -a 123123 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 192.168.100.204:6379> keys * 1) "aaa" 2) "bbb" 192.168.100.204:6379> set ggg aaa (error) READONLY You can't write against a read only replica.  #主從配置完成

      -配置哨兵

      ******(1)在master上配置sentinel哨兵 [root@master ~]# cp redis-5.0.4/src/redis-sentinel /usr/local/redis/  #復制哨兵啟動腳本 [root@master ~]# cp redis-5.0.4/sentinel.conf /usr/local/redis/  #復制哨兵配置文件 [root@master ~]# mkdir -p /var/redis/data  #創(chuàng)建日志文件存放位置	 [root@master ~]# vim /usr/local/redis/sentinel.conf   #修改哨兵配置文件 。。。。。。  21 port 26379  #指定端口默認為26379  22   23 # By default Redis Sentinel does not run as a daemon. Use 'yes' if you need it.  24 # Note that Redis will write a pid file in /var/run/redis-sentinel.pid when  25 # daemonized.  26 daemonize yes  #yes為放在后臺運行,使用no放在前臺運行可以看到主從切換時候的信息  27  。。。。。。  64 # unmounting filesystems.  65 dir /var/redis/data  #指定日志存放位置,就是剛才創(chuàng)建的路徑  66  。。。。。。  83 # The valid charset is A-z 0-9 and the three characters ".-_".  84 sentinel monitor mymaster 192.168.100.202  6379 1  #指定用戶為mymaster,ip為202,端口為6379,1表示當有一臺master出現(xiàn)故障時,就進行切換  85   86 # sentinel a 。。。。。。 112 # Default is 30 seconds. 113 sentinel down-after-milliseconds mymaster 3000  #指定master的失效時間,單位為毫秒3000為3秒,表示master超過3秒沒響應就判定為故障 114  。。。。。。 145 # Default is 3 minutes. 146 sentinel failover-timeout mymaster 180000  #切換操作完成的超時時間,單位為毫秒180000為180秒,在主從切換超過這個時間就判定為切換失敗 147  148 # SCRIPTS EXE 。。。。。。 102 # 103  sentinel auth-pass mymaster 123123  #連接master和slave的密碼 104 sentinel config-epoch mymaster  1  #切換后最多有多少節(jié)點可以于新的master進行同步數(shù)據(jù) 105  #保存退出 [root@master ~]# /usr/local/redis/redis-sentinel /usr/local/redis/sentinel.conf  #啟動哨兵 1118:X 09 Jun 2021 18:09:29.027 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 1118:X 09 Jun 2021 18:09:29.027 # Redis version=5.0.4, bits=64, commit=00000000, modified=0, pid=1118, just started 1118:X 09 Jun 2021 18:09:29.027 # Configuration loaded [root@master ~]# netstat -anpt | grep 26379 tcp        0      0 0.0.0.0:26379           0.0.0.0:*               LISTEN      1119/redis-sentinel  tcp6       0      0 :::26379                :::*                    LISTEN      1119/redis-sentinel  [root@master ~]# kill -9 1119  #先關閉哨兵 [root@master ~]# netstat -anpt | grep 26379 [root@master ~]# sed -i '26s/yes/no/g' /usr/local/redis/sentinel.conf  #修改為前臺啟動 [root@master ~]# /usr/local/redis/redis-sentinel /usr/local/redis/sentinel.conf  #再次開啟哨兵,稍等一段時間會有提示 1129:X 09 Jun 2021 18:11:02.585 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 1129:X 09 Jun 2021 18:11:02.585 # Redis version=5.0.4, bits=64, commit=00000000, modified=0, pid=1129, just started 1129:X 09 Jun 2021 18:11:02.585 # Configuration loaded 1129:X 09 Jun 2021 18:11:02.586 * Increased maximum number of open files to 10032 (it was originally set to 1024).                 _._                                                              _.-``__ ''-._                                                    _.-``    `.  `_.  ''-._           Redis 5.0.4 (00000000/0) 64 bit   .-`` .-".  "/    _.,_ ''-._                                     (    '      ,       .-`  | `,    )     Running in sentinel mode  |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379  |    `-._   `._    /     _.-'    |     PID: 1129   `-._    `-._  `-./  _.-'    _.-'                                     |`-._`-._    `-.__.-'    _.-'_.-'|                                    |    `-._`-._        _.-'_.-'    |           http://redis.io           `-._    `-._`-.__.-'_.-'    _.-'                                     |`-._`-._    `-.__.-'    _.-'_.-'|                                    |    `-._`-._        _.-'_.-'    |                                     `-._    `-._`-.__.-'_.-'    _.-'                                          `-._    `-.__.-'    _.-'                                                  `-._        _.-'                                                          `-.__.-'                                                 1129:X 09 Jun 2021 18:11:02.586 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 1129:X 09 Jun 2021 18:11:02.586 # Sentinel ID is fce7776020cf12792fd239f6f9d34f2d3fdef98c 1129:X 09 Jun 2021 18:11:02.586 # +monitor master mymaster 192.168.100.202 6379 quorum 1 1129:X 09 Jun 2021 18:18:04.434 * +reboot slave 192.168.100.204:6379 192.168.100.204 6379 @ mymaster 192.168.100.202 6379  #看到新增兩條消息,從服務器增加了203和204主服務器時202 1129:X 09 Jun 2021 18:18:14.478 * +reboot slave 192.168.100.203:6379 192.168.100.203 6379 @ mymaster 192.168.100.202 6379  #哨兵配置完成

      -測試哨兵的故障切換

      ******(1)把master服務器在開啟一個終端,在新開啟的終端中關閉redis,測試是否可以主從切換 [root@master ~]# /etc/init.d/redis stop  Stopping ... Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. Redis stopped  ******(2)切換到開啟哨兵的終端,查看新彈出的信息 1129:X 09 Jun 2021 18:20:36.588 # +failover-end master mymaster 192.168.100.202 6379 1129:X 09 Jun 2021 18:20:36.588 # +switch-master mymaster 192.168.100.202 6379 192.168.100.203 6379 1129:X 09 Jun 2021 18:20:36.588 * +slave slave 192.168.100.204:6379 192.168.100.204 6379 @ mymaster 192.168.100.203 6379  #發(fā)現(xiàn)主服務器變成了203 1129:X 09 Jun 2021 18:20:36.588 * +slave slave 192.168.100.202:6379 192.168.100.202 6379 @ mymaster 192.168.100.203 6379 1129:X 09 Jun 2021 18:20:39.607 # +sdown slave 192.168.100.202:6379 192.168.100.202 6379 @ mymaster 192.168.100.203 6379‘  ******(3)在203上測試主從復制是否可以正常同步 [root@slave1 ~]# redis-cli -h 192.168.100.203 -a 123123 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 192.168.100.203:6379> keys * 1) "aaa" 2) "bbb" 192.168.100.203:6379> set yyy aaa OK 192.168.100.203:6379> keys * 1) "yyy" 2) "aaa" 3) "bbb"  [root@slave2 redis-5.0.4]# redis-cli -h 192.168.100.204 -a 123123 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 192.168.100.204:6379> keys *  #發(fā)現(xiàn)同步成功 1) "yyy" 2) "bbb" 3) "aaa"  ******(4)此時重新開啟202的redis,并且查看哨兵的提示消息 [root@master ~]# /etc/init.d/redis start  Starting Redis server... 1167:C 09 Jun 2021 18:23:39.756 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 1167:C 09 Jun 2021 18:23:39.756 # Redis version=5.0.4, bits=64, commit=00000000, modified=0, pid=1167, just started 1167:C 09 Jun 2021 18:23:39.756 # Configuration loaded Redis is running...  1129:X 09 Jun 2021 18:23:50.324 * +convert-to-slave slave 192.168.100.202:6379 192.168.100.202 6379 @ mymaster 192.168.100.203 6379   #提示增加了一臺slave  ******(5)在202的新終端上查看redis的數(shù)據(jù)是否成功同步 [root@master ~]# redis-cli -h 192.168.100.202 -a 123123 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 192.168.100.202:6379> keys *  #發(fā)現(xiàn)已經(jīng)成功同步 1) "bbb" 2) "aaa" 3) "yyy"  #測試故障切換緩存,發(fā)現(xiàn)在master主機出現(xiàn)故障然后重新連接到集群后,master角色不會進行轉(zhuǎn)移

      -哨兵日志分析

      #把哨兵放在前臺運行時,日志信息會直接輸出到終端上,放到后臺運行時,日志會寫到指定的路徑中 +reset-master <instance details>   #當master被重置時. +slave <instance details>  #當檢測到一個slave并添加進slave列表時. +failover-state-reconf-slaves <instance details> #Failover狀態(tài)變?yōu)閞econf-slaves狀態(tài)時 +failover-detected <instance details> #當failover發(fā)生時 +slave-reconf-sent <instance details> #sentinel發(fā)送SLAVEOF命令把它重新配置時 +slave-reconf-inprog <instance details> #slave被重新配置為另外一個master的slave,但數(shù)據(jù)復制還未發(fā)生時。 +slave-reconf-done <instance details> #slave被重新配置為另外一個master的slave并且數(shù)據(jù)復制已經(jīng)與master同步時。 -dup-sentinel <instance details> #刪除指定master上的冗余sentinel時,當一個sentinel重新啟動時,可能會發(fā)生這個事件 +sentinel <instance details> #當master增加了一個sentinel時。 +sdown <instance details> #進入SDOWN狀態(tài)時; -sdown <instance details> #離開SDOWN狀態(tài)時。 +odown <instance details> #進入ODOWN狀態(tài)時。 -odown <instance details> #離開ODOWN狀態(tài)時。 +new-epoch <instance details>  #當前配置版本被更新時。 +try-failover <instance details> #達到failover條件,正等待其他sentinel的選舉。 +elected-leader <instance details> #被選舉為去執(zhí)行failover的時候。 +failover-state-select-slave <instance details> #開始要選擇一個slave當選新master時。 no-good-slave <instance details> #沒有合適的slave來擔當新master selected-slave <instance details> #找到了一個適合的slave來擔當新master failover-state-send-slaveof-noone <instance details> #當把選擇為新master的slave的身份進行切換的時候。 failover-end-for-timeout <instance details>   #failover由于超時而失敗時。 failover-end <instance details> #failover成功完成時。 switch-master <master name> <oldip> <oldport> <newip> <newport> #當master的地址發(fā)生變化時。通常這是客戶端最感興趣的消息了。 +tilt #進入Tilt模式。 -tilt #退出Tilt模式。

      推薦學習:Redis視頻教程

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號