第二十二章:Tomcat

1.JVM介紹

JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫

Java虛擬機(jī)本質(zhì)是就是一個程序,當(dāng)它在命令行上啟動的時候奸鸯,就開始執(zhí)行保存在某字節(jié)碼文件中的指令。Java語言的可移植性正是建立在Java虛擬機(jī)的基礎(chǔ)上幻林。任何平臺只要裝有針對于該平臺的Java虛擬機(jī)愚墓,字節(jié)碼文件(.class)就可以在該平臺上運(yùn)行杠氢。這就是“一次編譯摘能,多次運(yùn)行”续崖。

2.Tomcat介紹

1.什么是Tomcat

Tomcat和我們此前學(xué)習(xí)的 Nginx 類似,也是一個Web服務(wù)器徊哑。

2.Tomcat與Nginx有什么區(qū)別袜刷?

Nginx僅支持靜態(tài)資源聪富,而Tomcat則支持Java開發(fā)的 jsp 動態(tài)資源和靜態(tài)資源莺丑。
Nginx適合做前端負(fù)載均衡,而Tomcat適合做后端應(yīng)用服務(wù)處理墩蔓。
通常情況下梢莽,企業(yè)會使用 Nginx+tomcat 結(jié)合使用,由Nginx處理靜態(tài)資源奸披,Tomcat處理動態(tài)資源昏名。

3.Tomcat快速安裝

方法1:

rpm -ivh jdk-8u102-linux-x64.rpm  -->使用rpm包去安裝jdk不需要添加環(huán)境變量
mkdir /app
tar xf apache-tomcat-8.0.27.tar.gz -C /app
/app/apache-tomcat-8.0.27/bin/startup.sh 

方法2:

mkdir /app/
tar xf jdk-8u60-linux-x64.tar.gz -C /app/
ln -s /app/jdk1.8.0_60 /app/jdk
sed -i.ori '$a export JAVA_HOME=/app/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile
source /etc/profile
tar xf apache-tomcat-8.0.27.tar.gz -C /app
/app/apache-tomcat-8.0.27/bin/startup.sh 

tomcat無法啟動的幾個原因
1.替換配置文件: pkill java 然后在啟動
2.配置文件寫錯
3.虛擬主機(jī)是添加,不要修改
4.context如果寫了,一定要有對應(yīng)的目錄,不然整體就報錯
/soft/tomcat/logs/catalina.out
作者:UncleZ_strive鏈接:http://www.reibang.com/p/2798f56eded0來源:簡書著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)阵面,非商業(yè)轉(zhuǎn)載請注明出處轻局。

4.Tomcat啟動慢解決方案

沒優(yōu)化之前啟動時間
[root@tomcat logs]# grep 'Server startup' catalina.out
03-Aug-2019 03:15:18.225 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 591050 ms

優(yōu)化之后啟動時間
[root@tomcat logs]# grep 'Server startup' catalina.out
03-Aug-2019 03:15:18.225 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 591050 ms
03-Aug-2019 03:22:14.112 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1326 ms

優(yōu)化方法:
vi /usr/java/jdk1.8.0_102/jre/lib/security/java.security
securerandom.source=file:/dev/urandom

5.tomcat目錄結(jié)構(gòu)介紹

[root@tomcat apache-tomcat-8.0.27]# ll
total 92
drwxr-xr-x 2 root root  4096 Aug  3 03:05 bin  #主要包含啟動洪鸭、關(guān)閉tomcat腳本和腳本依賴文件
drwxr-xr-x 3 root root   198 Aug  3 03:05 conf #tomcat配置文件目錄
drwxr-xr-x 2 root root  4096 Aug  3 03:05 lib  #tomcat運(yùn)行需要加載的jar包
-rw-r--r-- 1 root root 57011 Sep 28  2015 LICENSE #license文件,不重要
drwxr-xr-x 2 root root   197 Aug  3 03:15 logs  #在運(yùn)行過程中產(chǎn)生的日志文件
-rw-r--r-- 1 root root  1444 Sep 28  2015 NOTICE #不重要
-rw-r--r-- 1 root root  6741 Sep 28  2015 RELEASE-NOTES #版本特性仑扑,不重要
-rw-r--r-- 1 root root 16204 Sep 28  2015 RUNNING.txt   #幫助文件览爵,不重要
drwxr-xr-x 2 root root    30 Aug  3 03:05 temp    #存放臨時文件
drwxr-xr-x 7 root root    81 Sep 28  2015 webapps #站點(diǎn)目錄
drwxr-xr-x 3 root root    22 Aug  3 03:05 work    #tomcat運(yùn)行時產(chǎn)生的緩存文件

6.tomcat配置文件

核心配置文件:


tomcat核心配置文件.png

一個tomcat實(shí)例一個server

一個server中包含多個Connector,Connector的主要功能是接受镇饮、響應(yīng)用戶請求蜓竹。

service的作用是:將connector關(guān)聯(lián)至engine(catalina引擎)

一個host就是一個站點(diǎn),類似于nginx的多站點(diǎn)

context類似于nginx中l(wèi)ocation的概念

Tomcat中的Connector配置講解
Tomcat配置文件解讀

7.Tomcat部署zrlog

1.Tomcat部署博客項目zrlog

域名: zrlog.hai.com:8080
站點(diǎn)目錄: /code/zrlog

1.配置server.xml文件 ,新增zrlog站點(diǎn)在 engline

[root@web01 ~]# vim /soft/tomcat/conf/server.xml
     <!--zrlog站點(diǎn)-->
    <Host name="zrlog.hai.com"  appBase="/code/zrlog"
          unpackWARs="true" autoDeploy="true">

      <Va0lve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
             prefix="zrlog_access_log" suffix=".txt"
             pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>

2.創(chuàng)建站點(diǎn)目錄,上傳zrlog的war包

[root@web01 ~]# mkdir /code/zrlog
[root@web01 ~]# cd /code/zrlog/
[root@web01 zrlog]# rz ROOT.war  

3.重啟Tomcat服務(wù)

[root@web01 zrlog]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh && tail -f /soft/tomcat/logs/catalina.out

4.域名劫持

5.在172.16.1.51的數(shù)據(jù)庫上,創(chuàng)建一個zrlog的庫,配置授權(quán)訪問用戶

[root@db01 ~]# mysql -uroot -poldxu.com
MariaDB [(none)]> create database zrlog charset utf8;
    <---此前配置過all用戶,可以復(fù)用
MariaDB [(none)]> grant all privileges on *.* to 'all'@'%' identified by 'oldboy.com';

2.如何開啟 Server Status Host Manager頁面

1.配置conf/tomcat-users.xml

<role rolename="manager-gui"/>
<user username="tomcat" password="123456" roles="manager-gui"/>

2.如果訪問還是403储藐,是因為tomcat默認(rèn)僅運(yùn)行本地訪問該管理頁面俱济,需要允許同網(wǎng)段主機(jī)訪問

[root@web01 ~]# ll /soft/tomcat/webapps/manager/
[root@web01 ~]# ll /soft/tomcat/webapps/host-manager/

[root@es-node1 tomcat]# vim 項目目錄下/META-INF/context.xml
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
#修改為
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|10\.0\.0\.\d+" />

8.配置tomcat basic認(rèn)證(可在nginx上進(jìn)行配置)

1.在tomcat-users.xml文件中進(jìn)行角色與用戶的綁定

#vim /app/tomcat/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="test100"/>  -->添加角色
<user username="tomcat" password="1" roles="manager-gui,test100"/> -->角色綁定用戶去認(rèn)證,需要使用用戶進(jìn)行basic認(rèn)證--username="tomcat" password="1"

2.在站點(diǎn)目錄下的WEB-INF的web.xml文件中添加如下內(nèi)容

# vim /app/tomcat/webapps/ROOT/WEB-INF/web.xml
<web-app>
......    
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>test</web-resource-name>
            <url-pattern>/*</url-pattern>  -->想要配置認(rèn)證的目錄
        </web-resource-collection>
        
        <auth-constraint>
            <role-name>test100</role-name> -->認(rèn)證的角色钙勃,需要綁定用戶蛛碌,進(jìn)行認(rèn)證
        </auth-constraint>
    </security-constraint> 
    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>Default</realm-name>
    </login-config>
</web-app>

9.Nginx+Tomcat集群架構(gòu)實(shí)戰(zhàn)

1.lb服務(wù)器nginx配置文件

upstream  test {
     server 172.16.1.7;
     server 172.16.1.8;
    }
    server {
        listen       80;
        server_name  blog.oldqiang.com;
        location / {
            proxy_pass http://test;  #nginx七層負(fù)載到后端的nginx服務(wù)器
            proxy_set_header Host $host;
        }
}

2.web服務(wù)器nginx配置

server {
    listen 80;
    server_name blog.oldqiang.com;

    location / {
        proxy_pass    http://127.0.0.1:8080;  #將負(fù)載轉(zhuǎn)發(fā)過來的動態(tài)處理請求交給后端的tomcat處理
        proxy_set_header Host            $http_host;
        proxy_set_header X-Real-IP       $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_connect_timeout 30;
        proxy_send_timeout    60;
        proxy_read_timeout    60;

        proxy_buffering      on;
        proxy_buffer_size    32k;
        proxy_buffers        4 128k;
    }
}

10.Nginx+Tomcat集群實(shí)現(xiàn)全棧Https

1.lb配置文件(在負(fù)載均衡上進(jìn)行ssl證書的配置,進(jìn)行加密與解密)

upstream  test {
     server 172.16.1.7;
     server 172.16.1.8;
    }
    server {
        listen       80;
        server_name  blog.oldqiang.com;
        location / {
    rewrite ^(.*) https://$server_name$1 redirect;
        }
}

server {
    listen 443 ssl;
    server_name blog.oldqiang.com;
    client_max_body_size 100m;
    ssl_certificate /opt/nginx/1_blog.oldqiang.com_bundle.crt;
        ssl_certificate_key /opt/nginx/2_blog.oldqiang.com.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
        proxy_pass http://test;
        proxy_set_header Host $host;
        }
}

11.Nginx+tomcat動靜分離

server {
    listen 80;
    server_name blog.oldqiang.com;

    location / {
        proxy_pass       http://127.0.0.1:8080;
        proxy_set_header Host            $http_host;
        proxy_set_header X-Real-IP       $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_connect_timeout 30;
        proxy_send_timeout    60;
        proxy_read_timeout    60;

        proxy_buffering      on;
        proxy_buffer_size    32k;
        proxy_buffers        4 128k;
    }
    location ~* \.(gif|jpg|jpeg)$ {   
        root  /app/tomcat/webapps/ROOT ;  #靜態(tài)請求直接用nginx處理
    }
}

12.tomcat配置多站點(diǎn)

1.在server.xml配置文件中添加一個Host

# vim /app/tomcat/conf/server.xml
 <Host name="www.mysun.com"  appBase="webapps" -->配置域名和根目錄辖源,重啟tomcat會生成aooBase目錄
       unpackWARs="true" autoDeploy="true">    -->開啟自動解壓左医,自動部署
       #日志的文件的配置
   <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
          prefix="localhost_access_log" suffix=".txt"  -->日志名稱
          pattern="%h %l %u %t &quot;%r&quot; %s %b" />  -->日志的格式吧~~
 </Host>
 <Host name="www.myqu.com"  appBase="webapps2"
       unpackWARs="true" autoDeploy="true">
   <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
          prefix="tomcat_access_log" suffix=".txt"
          pattern="%h %l %u %t &quot;%r&quot; %s %b" />
 </Host>

13.Tomcat監(jiān)控

zabbix監(jiān)控tomcat

1.在tomcat實(shí)例的配置文件中配置讓自己能遠(yuǎn)程被監(jiān)控(重啟tomcat之后會啟動一個端口12345)
vim /application/apache-tomcat-8.0.27/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=10.0.0.72
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

1:安裝zabbix-java-gateway,10052(在tomcat上安裝zabbix-java-gateway)
 Zabbix本身不支持直接監(jiān)控Java同木,在zabbix 1.8以前浮梢,只能使用Zapcat來做代理監(jiān)控,而且要修改源代碼彤路,非常麻煩秕硝。所有后來為了解決這個監(jiān)控問題,Zabbix和Java雙方應(yīng)運(yùn)生成了各自的代理監(jiān)控程序:zabbix 2.0以后添加了服務(wù)進(jìn)程zabbix-java-gateway洲尊;Java有了JMX,全稱是Java Management Extensions,即Java管理擴(kuò)展远豺。

2:配置重啟zabbix-java-gateway
START_POLLERS=5   #預(yù)啟動的輪詢器,默認(rèn)5-->如tomcat的實(shí)例多坞嘀,可以根據(jù)需求去增加
3:配置重啟zabbix-server
vim /etc/zabbix/zabbix_server.conf (增加如下參數(shù))
JavaGateway=127.0.0.1       -->zabbix-java-gateway組件安裝的IP地址
JavaGatewayPort=10052       -->zabbix-java-gateway組件的端口
StartJavaPollers=5          -->Java 輪詢器
4:zabbix-web添加jmx監(jiān)控
添加tomcat實(shí)例主機(jī)躯护,添加模塊Template App Generic Java JMX
可根據(jù)需求來刪除不支持的監(jiān)控項
5.自定義監(jiān)控項
(借助jdk-windows組件來獲取tomcat數(shù)據(jù)然后再zabbix中添加相應(yīng)想要的監(jiān)控項)
可以在windows上安裝jdk,連接上tomcat實(shí)例的遠(yuǎn)程端口12345

image.png
image.png

根據(jù)這里的取值設(shè)置自定義監(jiān)控項
隨便找一個模板監(jiān)控克隆


image.png

14.Tomcat性能優(yōu)化

1.關(guān)于tomcat的內(nèi)存回收gc

年輕代: 年輕代內(nèi)存滿了丽涩,就會觸發(fā)年輕代 內(nèi)存回收棺滞,局部,存活下的對象存到年老代
年老代: 年老代內(nèi)存滿了矢渊,就會觸發(fā)全局 內(nèi)存回收继准,全部
jvm 內(nèi)存垃圾回收,是不可避免矮男!

垃圾回收的次數(shù)盡可能少:增加內(nèi)存的容量
垃圾回收的時間盡可能短:減少內(nèi)存的容量

年輕代最小內(nèi)存==年輕代最大內(nèi)存
年老代最小內(nèi)存==年老代最大內(nèi)存
堆內(nèi)存==1年輕代64M+3年老代192M   256M
非堆內(nèi)存== 持久代

JAVA_OPTS="$JAVA_OPTS -server -Xms3G -Xmx3G -Xss256k -XX:PermSize=128m -XX:MaxPermSize=128m -XX:+UseParallelOldGC   -XX:NewSize=1G -XX:MaxNewSize=1G"

xms:最小堆內(nèi)存
Xmx:最大堆內(nèi)存
-Xss 線程棧的大小
-XX:NewSize    年輕代的最小內(nèi)存
-XX:MaxNewSize 年輕代的最大內(nèi)存
-XX:PermSize: 持久代最小內(nèi)存
-XX:MaxPermSize: 持久代最大內(nèi)存

詳細(xì)優(yōu)化參數(shù):
JAVA_OPTS="$JAVA_OPTS -server -Xms256m -Xmx256m -Xss256k -XX:+UseParallelOldGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heap_dump -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/tmp/heap_trace.txt -XX:NewSize=128m -XX:MaxNewSize=128m"

tomcat優(yōu)化參考

2.關(guān)于java的三個代

年輕代:
所有新生成的對象首先都是放在年輕代的移必。年輕代的目標(biāo)就是盡可能快速的收集掉那些生
命周期短的對象。年輕代分三個區(qū)毡鉴。一個Eden區(qū)崔泵,兩個 Survivor區(qū)(一般而言)秒赤。大部分對象在
Eden區(qū)中生成。當(dāng)Eden區(qū)滿時憎瘸,還存活的對象將被復(fù)制到Survivor區(qū)(兩個中的一個)倒脓,當(dāng)這
個 Survivor區(qū)滿時,此區(qū)的存活對象將被復(fù)制到另外一個Survivor區(qū)含思,當(dāng)這個Survivor去也滿了
的時候崎弃,從第一個Survivor區(qū)復(fù)制過來的并且此時還存活的對象,將被復(fù)制“年老區(qū)
(Tenured)”含潘。需要注意饲做,Survivor的兩個區(qū)是對稱的,沒先后關(guān)系遏弱,所以同一個區(qū)中可能同時
存在從Eden復(fù)制過來對象盆均,和從前一個Survivor復(fù)制過來的對象,而復(fù)制到年老區(qū)的只有從第
一個Survivor去過來的對象漱逸。而且泪姨,Survivor區(qū)總有一個是空的。同時饰抒,根據(jù)程序需要肮砾,
Survivor區(qū)是可以配置為多個的(多于兩個),這樣可以增加對象在年輕代中的存在時間袋坑,減
少被放到年老代的可能仗处。
年老代:
在年輕代中經(jīng)歷了N次垃圾回收后仍然存活的對象,就會被放到年老代中枣宫。因此婆誓,可以認(rèn)
為年老代中存放的都是一些生命周期較長的對象。
持久代:
用于存放靜態(tài)文件也颤,如今Java類洋幻、方法等。持久代對垃圾回收沒有顯著影響翅娶,但是有些應(yīng)
用可能動態(tài)生成或者調(diào)用一些class文留,例如Hibernate 等,在這種時候需要設(shè)置一個比較大的持
久代空間來存放這些運(yùn)行過程中新增的類故觅。持久代大小通過-XX:MaxPermSize=進(jìn)行設(shè)置厂庇。
持久代補(bǔ)充:持久帶也稱為方法區(qū)
方法區(qū):方法區(qū)存儲每一個java類的結(jié)構(gòu)信息:比如運(yùn)行時常量池,字段和方法數(shù)據(jù)输吏,構(gòu)造函數(shù)和普通方法的字節(jié)碼內(nèi)容以及類、實(shí)例替蛉、接口初始化時需要使用到的特殊方法等數(shù)據(jù)贯溅。
方法區(qū)也被稱為永久代拄氯,如果不顯示指定的話,GC回收的目標(biāo)僅針對方法區(qū)的常量池和類型卸載
JDK8中已經(jīng)把持久代(PermGen Space) 干掉了它浅,取而代之的元空間(Metaspace)译柏。Metaspace占用的是本地內(nèi)存,不再占用虛擬機(jī)內(nèi)存姐霍。

————————————————
版權(quán)聲明:本文為CSDN博主「孟令杰」的原創(chuàng)文章鄙麦,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明镊折。
原文鏈接:https://blog.csdn.net/jenny8080/article/details/79019538

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胯府,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子恨胚,更是在濱河造成了極大的恐慌骂因,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赃泡,死亡現(xiàn)場離奇詭異寒波,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)升熊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門俄烁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人级野,你說我怎么就攤上這事猴娩。” “怎么了勺阐?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵卷中,是天一觀的道長。 經(jīng)常有香客問我渊抽,道長蟆豫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任懒闷,我火速辦了婚禮十减,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘愤估。我一直安慰自己绘梦,他們只是感情好躯嫉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般拧略。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天,我揣著相機(jī)與錄音并炮,去河邊找鬼。 笑死甥郑,一個胖子當(dāng)著我的面吹牛逃魄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播澜搅,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼伍俘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了勉躺?” 一聲冷哼從身側(cè)響起癌瘾,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赂蕴,沒想到半個月后柳弄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡概说,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年碧注,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糖赔。...
    茶點(diǎn)故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡萍丐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出放典,到底是詐尸還是另有隱情逝变,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布奋构,位于F島的核電站壳影,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏弥臼。R本人自食惡果不足惜宴咧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望径缅。 院中可真熱鬧掺栅,春花似錦、人聲如沸纳猪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽氏堤。三九已至沙绝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宿饱。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工熏瞄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脚祟,地道東北人谬以。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像由桌,于是被迫代替她去往敵國和親为黎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評論 2 355