HAproxy+keepalived+mysql構建高可用數(shù)據(jù)庫

HAproxy+keepalived+mysql構建高可用數(shù)據(jù)庫

1东涡、概況

1.1 應用場景

Nginx/LVS/HAProxy的基于Linux的開源免費的負載均衡軟件暴区。對于大型的,需要進行高并發(fā)的網(wǎng)站或者對網(wǎng)絡不太嚴格的場景,可以使用Nginx;對于大型的Web服務器的時候可以使用Haproxy癌瘾;對性能有嚴格要求的時候可以使用LVS,就單純從負載均衡的角度來說饵溅,LVS也許會成為主流妨退,更適合現(xiàn)在大型的互聯(lián)網(wǎng)公司。本文采用HAproxy+keepalived+mysql主從方案來解決業(yè)務架構高可用蜕企。

1.2 LVS/Nginx/HAProxy特點

LVS

1)抗負載能力強咬荷、是工作在網(wǎng)絡4層之上僅作分發(fā)之用,沒有流量的產(chǎn)生轻掩,這個特點也決定了它在負載均衡軟件里的性能最強的萍丐;

2)配置性比較低,這是一個缺點也是一個優(yōu)點放典,因為沒有可太多配置的東西逝变,所以并不需要太多接觸,大大減少了人為出錯的幾率奋构;

3)工作穩(wěn)定壳影,自身有完整的雙機熱備方案,如LVS+Keepalived和LVS+Heartbeat弥臼,不過我們在項目實施中用得最多的還是LVS/DR+Keepalived宴咧;

4)無流量,保證了均衡器IO的性能不會收到大流量的影響径缅;

5)應用范圍比較廣掺栅,可以對所有應用做負載均衡;

6)軟件本身不支持正則處理纳猪,不能做動靜分離氧卧,這個就比較遺憾了;其實現(xiàn)在許多網(wǎng)站在這方面都有較強的需求氏堤,這個是Nginx/HAProxy+Keepalived的優(yōu)勢所在沙绝。

7)如果是網(wǎng)站應用比較龐大的話,實施LVS/DR+Keepalived起來就比較復雜了鼠锈,特別后面有Windows Server應用的機器的話闪檬,如果實施及配置還有維護過程就比較復雜了。

Nginx

1)工作在網(wǎng)絡的7層之上购笆,可以針對http應用做一些分流的策略粗悯,比如針對域名、目錄結構同欠,它的正則規(guī)則比HAProxy更為強大和靈活样傍,這也是許多朋友喜歡它的原因之一横缔;

2)Nginx對網(wǎng)絡的依賴非常小,理論上能ping通就就能進行負載功能铭乾,這個也是它的優(yōu)勢所在剪廉;

3)Nginx安裝和配置比較簡單娃循,測試起來比較方便炕檩;

4)也可以承擔高的負載壓力且穩(wěn)定,一般能支撐超過幾萬次的并發(fā)量捌斧;

5)Nginx可以通過端口檢測到服務器內(nèi)部的故障笛质,比如根據(jù)服務器處理網(wǎng)頁返回的狀態(tài)碼、超時等等捞蚂,并且會把返回錯誤的請求重新提交到另一個節(jié)點妇押,不過其中缺點就是不支持url來檢測;

6)Nginx僅能支持http和Email姓迅,這樣就在適用范圍上面小很多敲霍,這個它的弱勢;

7)Nginx不僅僅是一款優(yōu)秀的負載均衡器/反向代理軟件丁存,它同時也是功能強大的Web應用服務器肩杈。LNMP現(xiàn)在也是非常流行的web架構,大有和以前最流行的LAMP架構分庭抗爭之勢解寝,在高流量的環(huán)境中也有很好的效果扩然。

8)Nginx現(xiàn)在作為Web反向加速緩存越來越成熟了,很多朋友都已在生產(chǎn)環(huán)境下投入生產(chǎn)了聋伦,而且反映效果不錯夫偶,速度比傳統(tǒng)的Squid服務器更快,有興趣的朋友可以考慮用其作為反向代理加速器觉增。

HAProxy

1)支持兩種代理模式:TCP(四層)和HTTP(七層)HAProxy是支持虛擬主機的兵拢。

2)能夠補充Nginx的一些缺點比如Session的保持,Cookie的引導等工作

3)支持url檢測后端的服務器出問題的檢測會有很好的幫助逾礁。

4)它跟LVS一樣卵佛,本身僅僅就只是一款負載均衡軟件;單純從效率上來講HAProxy更會比Nginx有更出色的負載均衡速度敞斋,在并發(fā)處理上也是優(yōu)于Nginx的截汪。

5)HAProxy可以對Mysql讀進行負載均衡,對后端的MySQL節(jié)點進行檢測和負載均衡植捎,不過在后端的MySQL slaves數(shù)量超過10臺時性能不如LVS衙解。

6)HAProxy的算法現(xiàn)在也越來越多了,算法特別靈活

2焰枢、相關理論

2.1 Keepalived工作原理

keepalived:顧名思義是保持存活蚓峦,常用來搭建設備的高可用舌剂,防止業(yè)務核心設備出現(xiàn)單點故障。keepalived基于VRRP協(xié)議來實現(xiàn)高可用暑椰,主要用作realserver的健康檢查以及負載均衡主機和backup主機之間的故障漂移霍转。如果將TCP/IP劃分為5層,則Keepalived就是一個類似于3~5層交換機制的軟件一汽,具有3~5層交換功能避消,其主要作用是檢測web服務器的狀態(tài),如果某臺web服務器故障召夹,Keepalived將檢測到并將其從系統(tǒng)中剔除岩喷,當該web服務器工作正常后Keepalived自動將其加入到服務器群中,這些工作全部自動完成监憎,而不需要人工干預纱意,只需要人工修復故障的web服務器即可。

三層機理是發(fā)送ICMP數(shù)據(jù)包即PING給某臺服務器鲸阔,如果不通偷霉,則認為其故障,并從服務器群中剔除褐筛;四層機理是檢測TCP端口號狀態(tài)來判斷某臺服務器是否故障类少,如果檢測端口存在異常,則從服務器群中剔除死讹;五層機理是根據(jù)用戶的設定檢查某個服務器應用程序是否正常運行瞒滴,如果不正常,則從服務器群中剔除赞警。

2.2 HAproxy工作原理

Haproxy提供高可用性妓忍、負載均衡以及基于TCP和HTTP應用的代理,支持虛擬主機愧旦,它是免費世剖、快速并且可靠的一種解決方案,反向代理服務器,支持雙機熱備支持虛擬主機,但其配置簡單,擁有非常不錯的服務器健康檢查功能,當其代理的后端服務器出現(xiàn)故障, HAProxy會自動將該服務器摘除,故障恢復后再自動將該服務器加入笤虫。

3旁瘫、架構拓撲

4、資源規(guī)劃

主機名稱IP操作系統(tǒng)

haproxy1192.168.74.126Centos7 64位

haproxy2192.168.74.127Centos7 64位

mysql1192.168.74.128Centos7 64位

mysql2192.168.74.129Centos7 64位

VIP192.168.74.150\

軟/硬件選型

企業(yè)大數(shù)據(jù)系統(tǒng)在軟/硬件選型方面將遵循兩個原則:一是硬件上將遵循“同品牌琼蚯、同型號酬凳、同配置”的原則,不因應用系統(tǒng)或分布式系統(tǒng)的不同而不同遭庶;二是軟件上將遵偱“同操作系統(tǒng)宁仔、同JVM 虛擬機、同系統(tǒng)賬戶體系”的原則峦睡。

推薦硬件選型如表1-1 所示翎苫。

表1-1 推薦硬件選型列表

品牌:用戶自定

設備名:節(jié)點機

配置

CPU:2個4核权埠,主頻為2.4GHz以上

內(nèi)存:16G

硬盤:500G

網(wǎng)卡:千兆

備注:數(shù)據(jù)中心的所有節(jié)點機器配置基本相同

每個節(jié)點的基礎軟件選型如表1-2所示。

表1-2 節(jié)點基礎軟件選型列表

操作系統(tǒng):Centos7 64位

Mysql:mysql-5.7.X

HAproxy:haproxy-1.8.X

keepalived:keepalived-1.2.X

目錄配置:統(tǒng)一自定安裝目錄煎谍,統(tǒng)一環(huán)境配置

應用服務器對只讀的應用程序連接虛擬IP地址攘蔽,連接到haproxy,然后通過haproxy將TCP協(xié)議轉移到下面的2個MySQL主從數(shù)據(jù)庫服務器中呐粘。Haproxy在此做4層的TCP交換服務满俗。keepalived為了防止haproxy單點故障。這里可以使用兩個VIP(虛擬IP)實現(xiàn)haproxy代理服務器的高可用負載均衡事哭。

5漫雷、安裝介質(zhì)

CentOS操作系統(tǒng)版本:CentOS-7-x86_64-DVD-1511.iso

mysql版本:mysql-5.7.22-linux-glibc2.12-x86_64.tar?

HAproxy版本:haproxy-1.8.14.tar.gz

keepalived版本:keepalived-1.2.7.tar.gz

6瓜富、準備工作(每臺機器)

安裝之前鳍咱,如果之前安裝過mysql,那么需要刪除相應的各種mysql文件与柑,刪除之前請停止mysql服務谤辜。并且不要忘記刪除my.cnf這些配置文件。確保刪除干凈价捧。不然可能會和后面的安裝有沖突丑念。如果是實驗,關閉防火墻结蟋,實際中脯倚,防火墻打開對應端口(注意實際中需要使用的端口不只有3306端口,還有同步需要使用的6677端口)嵌屎。保證服務器之前能互相訪問推正,能ping通。保證固定的ip地址宝惰。保證沒有別的程序占用需要使用的端口植榕。如3306等。這些都確認完畢后再進行安裝尼夺。

6.1關閉防火墻

systemctl stopfirewalld.service

systemctl disablefirewalld.service

6.2掛載光盤(每臺機器)

mount /dev/cdrom /mnt

刪除原有的yum的源

cd /etc/yum.repos.d/

rm -rf *

創(chuàng)建自己的源vi my.repo

[centos-yum]

baseurl=file:///mnt

enabled=1

gpgcheck=0?????????? ??????

6.3NTP服務需要每臺機器進行安裝(時間同步)

yum install ntp

systemctl is-enabledntpd

systemctl enable ntpd

systemctl start ntpd

7尊残、安裝mysql

以下的所有操作需要在所有的集群節(jié)點(128/129)都要進行相同的操作

7.1新增用戶組mysql和用戶msyql

groupadd mysql

useradd -g mysql -s/bin/false mysql

新建文件夾并賦予權限

mkdir /var/lib/mysql

chown root:mysql/var/lib/mysql

7.2將下載后的包上傳至服務器/usr/local下

解壓

cd /usr/local

tar xvf mysql-5.7.22-linux-glibc2.12-x86_64.tar

7.3創(chuàng)建鏈接方便訪問

ln -s /usr/local/mysql-gpl-7.5.4-linux-glibc2.5-x86_64/usr/local/mysql

7.4初始化數(shù)據(jù)庫(這里要注意,如果安裝的版本不同淤堵,數(shù)據(jù)庫初始化的命令可能不同的寝衫,很多之前的版本會使用:scripts/mysql_install_db --user=mysql來初始化,這個已經(jīng)被mysql在新的版本中廢棄了拐邪,所以需要使用下面的命令安裝慰毅,如果需要安裝別的版本請參考mysql官網(wǎng)的對應版本的安裝命令。)

進入剛才創(chuàng)建的目錄的bin目錄下初始化庙睡,正常安裝mysql如何初始化就如何進行安裝就可以了事富,這里還可以設置安裝數(shù)據(jù)庫的data目錄等參數(shù)技俐。

cd /usr/local/mysql/bin

./mysqld --initialize--user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

如果初始化成功之后,系統(tǒng)會提示一個隨機生成的數(shù)據(jù)庫密碼统台,此時需要記住這個密碼雕擂,之后登錄數(shù)據(jù)庫需要使用這個密碼。

192.168.74.128????? ???p.(V9O+2*etk ???????????????????? #記錄192.168.74.128的初始化密碼

192.168.74.129??? ????? vKeCI;+4Igl?? ???????????????????? #記錄192.168.74.129的初始化密碼

7.5修改權限

chown -R root .

chown -R mysql data

chgrp -R mysql .

cpsupport-files/mysql.server /etc/rc.d/init.d/

chmod +x/etc/rc.d/init.d/mysql.server

chkconfig --addmysql.server

7.6配置主節(jié)點

vi /etc/my.cnf

[client]

port = 3306

socket =/tmp/mysql.sock


[mysqld]

basedir=/usr/local/mysql/

datadir=/usr/local/mysql/data

user=root

port=3306

socket=/tmp/mysql.sock

server-id=1

log-bin=mysql-bin

skip-name-resolve

7.7配置從節(jié)點

vi /etc/my.cnf

[client]

port = 3306

socket =/tmp/mysql.sock


[mysqld]

basedir=/usr/local/mysql/

datadir=/usr/local/mysql/data

user=root

port=3306

socket=/tmp/mysql.sock

server-id=2

log-bin=mysql-bin

skip-name-resolve

其中slave的server-id要設置比master大

/etc/init.d/mysql.serverstart

./mysql -uroot -p??? ??????????????????????????? #登錄mysql贱勃,密碼粘貼上面記錄的初始密碼

setpassword=password('123456'); ?????? #修改密碼

./mysql -uroot -p123456??????? ????????????? #測試修改后的密碼是否能夠登錄


7.8在Master服務器上創(chuàng)建MySQL用戶(授權復制用戶)

GRANT ALL PRIVILEGES ON*.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

查看master狀態(tài)

show master status;

在slave添加master配置

命令:change master to

->master_host=' 192.168.74.128',

->master_user=' root',

->master_password='123456',

->master_log_file=' mysql-bin.000010', ???#show master status中File的值

->master_log_pos=154;

????????show master status中Position的值

7.9主從同步測試

命令:show slave status\G

當Slave_IO_Running和Slave_SQL_Running均為Yes時井赌,表示同步成功。

8贵扰、搭建haproxy

8.1上傳haproxy安裝包到/usr/local

在74.126和74.127解壓縮安裝

tar -zxvfhaproxy-1.8.14.tar.tar

cd haproxy-1.8.14

yum install -y gcc

make TARGET=linux310

ARCH=x86_64 # uname -a查看主機信息填寫

make installSBINDIR=/usr/sbin/ MANDIR=/usr/share/man/ DOCDIR=/usr/share/doc/

8.2提供啟動腳本

vim /etc/init.d/haproxy

?#

# haproxy

#

# chkconfig:?? - 85 15

# description:? HAProxy is a free, very fast and reliablesolution \

#?????????????? offering high availability, loadbalancing, and \

#?????????????? proxying for TCP and? HTTP-based applications

# processname: haproxy

# config:????? /etc/haproxy/haproxy.cfg

# pidfile:???? /var/run/haproxy.pid


#Sourcefunction library.

./etc/rc.d/init.d/functions


# Source networkingconfiguration.

. /etc/sysconfig/network


# Check that networkingis up.

["$NETWORKING" = "no" ] && exit 0


exec="/usr/sbin/haproxy"

prog=$(basename $exec)


[ -e/etc/sysconfig/$prog ] && . /etc/sysconfig/$prog


cfgfile=/etc/haproxy/haproxy.cfg

pidfile=/var/run/haproxy.pid

lockfile=/var/lock/subsys/haproxy


check() {

??? $exec -c -V -f $cfgfile $OPTIONS

}


start() {

??? $exec -c -q -f $cfgfile $OPTIONS

??? if [ $? -ne 0 ]; then

??????? echo "Errors in configurationfile, check with $prog check."

??????? return 1

??? fi


??? echo -n $"Starting $prog: "

??? # start it up here, usually something like"daemon $exec"

??? daemon $exec -D -f $cfgfile -p $pidfile$OPTIONS

??? retval=$?

??? echo

??? [ $retval -eq 0 ] && touch$lockfile

??? return $retval

}


stop() {

??? echo -n $"Stopping $prog: "

??? # stop it here, often "killproc$prog"

??? killproc $prog

??? retval=$?

??? echo

??? [ $retval -eq 0 ] && rm -f$lockfile

??? return $retval

}


restart() {

??? $exec -c -q -f $cfgfile $OPTIONS

??? if [ $? -ne 0 ]; then

???????echo "Errors in configuration file, check with $prog check."

??????? return 1

??? fi

??? stop

??? start

}


reload() {

??? $exec -c -q -f $cfgfile $OPTIONS

??? if [ $? -ne 0 ]; then

??????? echo "Errors in configurationfile, check with $prog check."

??????? return 1

??? fi

??? echo -n $"Reloading $prog: "

??? $exec -D -f $cfgfile -p $pidfile $OPTIONS-sf $(cat $pidfile)

??? retval=$?

??? echo

??? return $retval

}


force_reload() {

??? restart

}


fdr_status() {

??? status$prog

}


case "$1" in

??? start|stop|restart|reload)

??????? $1

??????? ;;

??? force-reload)

??????? force_reload

??????? ;;

??? check)

??????? check

??????? ;;

??? status)

??????? fdr_status

??????? ;;

??? condrestart|try-restart)

??????? [ ! -f $lockfile ] || restart

??????? ;;

??? *)

??????? echo $"Usage: $0{start|stop|status|restart|try-restart|reload|force-reload}"

??????? exit2

esac

8.3提供配置文件

mkdir /etc/haproxy

mkdir /var/lib/haproxy

useradd -r haproxy

vim/etc/haproxy/haproxy.cfg

global


??? log????????127.0.0.1 local2


??? chroot?????/var/lib/haproxy

??? pidfile????/var/run/haproxy.pid

??? maxconn????4000

??? user???????haproxy

??? group??????haproxy

??? daemon


defaults

??? mode??????????????????? tcp

??? log???????????????????? global

??? option????????????????? dontlognull

??? option????????????????? redispatch

??? retries???????????????? 3

??? timeout http-request??? 10s

??? timeoutqueue?????????? 1m

??? timeout connect???????? 10s

??? timeout client????????? 1m

??? timeoutserver????????? 1m

??? timeout http-keep-alive 10s

??? timeout check?????????? 10s

??? maxconn???????????????? 600


listen stats

??? mode http

??? bind :6677

??? stats enable

??? stats hide-version?????????????

??? stats uri???? /haproxyadmin?stats

??? stats realm?? Haproxy\ Statistics

??? stats auth??? admin:admin

? ??statsadmin if TRUE


frontend? main

??? bind?*:3306

??? default_backend???????????? mysql


backend mysql

??? balance????leastconn

??? server m1 192.168.74.128:3306 check port3306 maxconn 300

??? server m2 192.168.74.129:3306 check port3306 maxconn 300

8.4修改日志系統(tǒng)

###Provides UDP syslog

reception //去掉下面兩行注釋仇穗,開啟UDP監(jiān)聽


$ModLoad imudp

$UDPServerRun 514


local2.*

/var/log/haproxy.log //添加此行

service rsyslog restart

8.5啟動測試haproxy

service haproxy start

chkconfig --add haproxy

chkconfig haproxy on

netstat -tnlp

mysql -P3306 -uroot

-p123456 -h192.168.74.129 # 查看

server_id,判斷是否成功

9戚绕、搭建keepalived

9.1上傳keepalived安裝包到/usr/local

在74.126和74.127解壓縮安裝

tar xfkeepalived-1.2.7.tar.gz

cd keepalived-1.2.7

./configure --prefix=/usr/local/keepalived--sbindir=/usr/sbin/ --sysconfdir=/etc/ --mandir=/usr/local/share/man/

make && makeinstall

chkconfig --addkeepalived

chkconfig keepalived on

可能會報錯1

!!! OpenSSL isnot properly installed on your system. !!!

!!! Can notinclude OpenSSL headers files.

解決方法:

yum -y installopenssl-devel

可能會報錯2

configure: error: Poptlibraries isrequired

解決方法:

yum?install

popt-devel

9.2提供配置文件

vim

/etc/keepalived/keepalived.conf # 兩個機器配置文件不同


! Configuration Filefor keepalived


global_defs {??????????

notification_email{????????? #忽略

???? acassen@firewall.loc

???? failover@firewall.loc

???? sysadmin@firewall.loc

?? }

?? notification_email_fromAlexandre.Cassen@firewall.loc

?? smtp_server 192.168.200.1

?? smtp_connect_timeout 30

?? router_id LVS_DEVEL

}


vrrp_script chk_haproxy{

??? script"/etc/keepalived/chk.sh"???? #檢查haproxy的腳本

??? interval 2????????????????????????? #每兩秒檢查一次

}


vrrp_instance VI_1 {

??? stateBACKUP??????????????????????? #定義為BACKUP節(jié)點

??? nopreempt?????????????????????????? #開啟不搶占纹坐,另一個不寫

??? interface ens33

??? virtual_router_id 51

??? priority 100??????????????????????? #開啟了不搶占,所以此處優(yōu)先級必須高于另一臺舞丛,另一個寫99

??? advert_int 1

??? authentication {

??????? auth_type PASS

??????? auth_pass abcd

??? }

??? virtual_ipaddress {

??????? 192.168.74.150??? ??????????????#配置VIP

??? }

??? track_script {

??????? chk_haproxy???????????????????? #調(diào)用檢查腳本

??? }


??? notify_backup "/etc/init.d/haproxyrestart"

??? notify_fault "/etc/init.d/haproxystop"

}

9.3創(chuàng)建check文件

vim/etc/keepalived/chk.sh

#!/bin/bash


if [ $(ps -C haproxy--no-header | wc -l) -eq 0 ]; then

?????? /etc/init.d/keepalived stop

fi

chmod +x/etc/keepalived/chk.sh

service keepalivedstart

10耘子、測試

ip addr # 查看是否綁定了虛ip

tcpdump-nn -i ens33 vrrp #抓包查看

http://192.168.74.128:6677/haproxyadmin?stats

# 通過haproxy查看狀態(tài)

10.1測試無誤后,重啟MySQL球切、Haproxy谷誓、Keepalived,順序依次為MySQL吨凑、Haproxy捍歪、Keepalived

/etc/init.d/mysql.serverstart

service haproxy start

service keepalivedstart

10.2測試mysql數(shù)據(jù)同步

通過對數(shù)據(jù)庫進行增刪改查操作,這里就不演示了

10.3測試mysql高可用

/etc/init.d/mysql.serverstop?? 停止服務測試效果鸵钝,VIP是否還能夠連上數(shù)據(jù)庫

mysql -uroot -p123456-h192.168.74.150

10.4測試haproxyl高可用

service haproxy stop????? 停止服務測試效果

http://192.168.74.126:6677/haproxyadmin?stats是否還能夠訪問

mysql -uroot -p123456-h192.168.74.150

10.5測試mysql高可用

service keepalived stop 停止服務測試效果

ip addr??? 查看VIP

mysql -uroot -p123456

-h192.168.74.150 連接數(shù)據(jù)庫

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末糙臼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蒋伦,更是在濱河造成了極大的恐慌弓摘,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痕届,死亡現(xiàn)場離奇詭異韧献,居然都是意外死亡,警方通過查閱死者的電腦和手機研叫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門锤窑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嚷炉,你說我怎么就攤上這事渊啰。” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵绘证,是天一觀的道長隧膏。 經(jīng)常有香客問我,道長嚷那,這世上最難降的妖魔是什么胞枕? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮魏宽,結果婚禮上腐泻,老公的妹妹穿的比我還像新娘。我一直安慰自己队询,他們只是感情好派桩,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蚌斩,像睡著了一般铆惑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凳寺,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天鸭津,我揣著相機與錄音彤侍,去河邊找鬼肠缨。 笑死,一個胖子當著我的面吹牛盏阶,可吹牛的內(nèi)容都是我干的晒奕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼名斟,長吁一口氣:“原來是場噩夢啊……” “哼脑慧!你這毒婦竟也來了?” 一聲冷哼從身側響起砰盐,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤闷袒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后岩梳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體囊骤,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年冀值,在試婚紗的時候發(fā)現(xiàn)自己被綠了也物。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡列疗,死狀恐怖滑蚯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤告材,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布坤次,位于F島的核電站,受9級特大地震影響斥赋,放射性物質(zhì)發(fā)生泄漏浙踢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一灿渴、第九天 我趴在偏房一處隱蔽的房頂上張望洛波。 院中可真熱鬧,春花似錦骚露、人聲如沸蹬挤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽焰扳。三九已至,卻和暖如春误续,著一層夾襖步出監(jiān)牢的瞬間吨悍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工蹋嵌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留育瓜,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓栽烂,卻偏偏與公主長得像躏仇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子腺办,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容