linux企业实战 --tomcat

文章目录

    • 1 Tomcat
    • 2 搭建tomcat
    • 3 nginx做tomcat的负载均衡
    • 4 保持会话连接
      • 4.1 引入session
      • 4.2 session

1 Tomcat

Tomcat服务器是一个免费的开发源代码的WEB应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。其主要的应用场景是解析动态程序代码( Java ) JSP程序可以处理Tomcat界面
换句话说:Tomcat 理解为 Java 容器,可以跑 JSP 代码!!!

2 搭建tomcat

  1. 准备三台虚拟机
  • server1—nginx
  • server2—tomcat
  • server3—tomcat

解压到指定目录下,并做软链接,写入环境变量

tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
tar zxf apache-tomcat-7.0.99.tar.gz  -C /usr/local/

cd /usr/local/
ln -s jdk1.7.0_79/ java
ln -s apache-tomcat-7.0.99/ tomcat

vim /etc/profile  # 写入jdk的环境变量
在最后加入

export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile  #编译

linux企业实战 --tomcat_第1张图片linux企业实战 --tomcat_第2张图片

测试
写一个java代码测试

vim ~/test.java  # 写一个java代码测试
public class test
{
	public static void main(String[] args)
	{
		System.out.println("Hello World!");
	}
}

javac test.java 		# 编译
java test				#执行java
Hello World!			#输出结果

linux企业实战 --tomcat_第3张图片
此时java环境已经OK了

启动tomcat

cd /usr/local/tomcat/
bin/startup.sh   # 启动tomat

linux企业实战 --tomcat_第4张图片
以上在server2 和 server3 上同时搭建。

查看tomcat的端口

netstat -antlpe|grep 8080 #查看端口

在这里插入图片描述
搜索 172.25.42.2:8080 和 172.25.42.3:8080
linux企业实战 --tomcat_第5张图片

测试:编写一个tomcat发布页面

cd /usr/local/tomcat/webapps/ROOT
vim test.jsp
cat test.jsp
server2-The time is :<%=new java.util.Date() %>

linux企业实战 --tomcat_第6张图片在这里插入图片描述

3 nginx做tomcat的负载均衡

vim /usr/local/nginx/conf/nginx.conf

http {
    include       mime.types;
    default_type  application/octet-stream;
    upstream tomcat{
                server 172.25.60.2:8080;
                server 172.25.60.3:8080;
        }
 location / {
            root   /usr/local/tomcat/webapps/ROOT;
            index  index.html index.htm;
        }
 location ~ \.jsp$ {
           proxy_pass   http://tomcat;
       }
nginx -t
nginx -s reload

linux企业实战 --tomcat_第7张图片linux企业实战 --tomcat_第8张图片linux企业实战 --tomcat_第9张图片linux企业实战 --tomcat_第10张图片

测试:负载均衡实现!!!
linux企业实战 --tomcat_第11张图片linux企业实战 --tomcat_第12张图片

4 保持会话连接

4.1 引入session

在server2和server3中 更改之前tomcat的发布页面

cd /usr/local/tomcat/webapps/ROOT
vim test1.jsp

<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="java.util.*" %>
Cluster App Test<<span class="token operator">/</span>title><<span class="token operator">/</span>head>
<body>
Server Info:
<<span class="token operator">%</span>
out<span class="token punctuation">.</span>println<span class="token punctuation">(</span>request<span class="token punctuation">.</span>getLocalAddr<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token string">":"</span> <span class="token operator">+</span> request<span class="token punctuation">.</span>getLocalPort<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"<br>"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token operator">%</span>>
<<span class="token operator">%</span>
out<span class="token punctuation">.</span>println<span class="token punctuation">(</span><span class="token string">"<br> session "</span> <span class="token operator">+</span> session<span class="token punctuation">.</span>getId<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"<br>"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
String dataName= request<span class="token punctuation">.</span>getParameter<span class="token punctuation">(</span><span class="token string">"dataName"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>dataName <span class="token operator">!</span>= null && dataName<span class="token punctuation">.</span>length<span class="token punctuation">(</span><span class="token punctuation">)</span>>0<span class="token punctuation">)</span><span class="token punctuation">{</span>
String dataValue=request<span class="token punctuation">.</span>getParameter<span class="token punctuation">(</span><span class="token string">"dataValue"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
session<span class="token punctuation">.</span>setAttribute<span class="token punctuation">(</span>dataName<span class="token punctuation">,</span>dataValue<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">%</span>>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/e7a9a243b4894782a06a9e6971024964.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e7a9a243b4894782a06a9e6971024964.jpg" alt="linux企业实战 --tomcat_第13张图片" width="650" height="290" style="border:1px solid black;"></a><a href="http://img.e-com-net.com/image/info8/8103f0ddf3584064b528ed3ca6472be7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/8103f0ddf3584064b528ed3ca6472be7.jpg" alt="linux企业实战 --tomcat_第14张图片" width="650" height="371" style="border:1px solid black;"></a></p> 
  <p><mark>测试</mark></p> 
  <p><a href="http://img.e-com-net.com/image/info8/52e32e3d7dea43b496b05c7d648c601e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/52e32e3d7dea43b496b05c7d648c601e.jpg" alt="linux企业实战 --tomcat_第15张图片" width="632" height="235" style="border:1px solid black;"></a><a href="http://img.e-com-net.com/image/info8/affe929d028c4b58aa6a423766fac19b.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/affe929d028c4b58aa6a423766fac19b.jpg" alt="linux企业实战 --tomcat_第16张图片" width="633" height="259" style="border:1px solid black;"></a></p> 
  <h4>4.2 session</h4> 
  <ol> 
   <li><strong>什么是session</strong></li> 
  </ol> 
  <p>应用服务器的高可用架构设计主要基于服务无状态这一特性,但是事实.上,业务总是有状态的,在交易类的电子商务网站,需要有购物车记录用户的购买信息,用户购买请求都是向购物车中增加商品;在社交类的网站中,需要记录用户的当前登陆状态,最新发布的消息及好友状态等,用户每次刷新页面都需要更新这些信息。</p> 
  <ol start="2"> 
   <li><strong>cookie</strong></li> 
  </ol> 
  <p>在网站中,<mark>http请求是无状态的</mark>。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据( cookie )给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了。<mark>cookie存储的数据量有限</mark>,不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用<mark>cookie只能存储一些小量的数据</mark>。</p> 
  <ol start="3"> 
   <li><strong>session</strong></li> 
  </ol> 
  <p>session和cookie的作用有点类似,都是为了存储用户相关的信息。不同的是,<mark>cookie是存储在本地浏览器,而session存储在服务器</mark>。存储在服务器的数据会更加的安全,不容易被窃取。但存储在服务器也有一定的弊端,就是会占用服务器的资源,但现在服务器已经发展至今,一些session信息还是绰绰有余的。</p> 
  <p><a href="http://img.e-com-net.com/image/info8/a21d3e615daf459d913c23c0689dbbed.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/a21d3e615daf459d913c23c0689dbbed.png" alt="linux企业实战 --tomcat_第17张图片" width="546" height="182" style="border:1px solid black;"></a><br> <strong>做轮询时,每次刷新其session值都会改变。</strong></p> 
  <p><strong>现在需要偏向一台服务器:</strong><br> <a href="http://img.e-com-net.com/image/info8/060897b17b6a478ea0065e2f52d25d80.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/060897b17b6a478ea0065e2f52d25d80.jpg" alt="linux企业实战 --tomcat_第18张图片" width="650" height="102" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/fc027268c0974acdbb66378a6059bba3.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/fc027268c0974acdbb66378a6059bba3.jpg" alt="linux企业实战 --tomcat_第19张图片" width="650" height="449" style="border:1px solid black;"></a><a href="http://img.e-com-net.com/image/info8/90fc07b3c7934ae3b8087a0a8bf63672.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/90fc07b3c7934ae3b8087a0a8bf63672.jpg" alt="linux企业实战 --tomcat_第20张图片" width="633" height="233" style="border:1px solid black;"></a></p> 
  <p><mark>如果一方挂掉,另一方想读取到挂掉的信息</mark></p> 
  <pre><code class="prism language-powershell">cd <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>tomcat<span class="token operator">/</span>
bin<span class="token operator">/</span>shutdown<span class="token punctuation">.</span>sh
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/db8a847334d9466a9833b8202106455d.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/db8a847334d9466a9833b8202106455d.jpg" alt="linux企业实战 --tomcat_第21张图片" width="650" height="222" style="border:1px solid black;"></a><a href="http://img.e-com-net.com/image/info8/e87800b5c3bc4e9c96a97c3415d31c10.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e87800b5c3bc4e9c96a97c3415d31c10.jpg" alt="linux企业实战 --tomcat_第22张图片" width="631" height="207" style="border:1px solid black;"></a><br> <strong>但是此时server2的页面仍旧丢失了。</strong></p> 
  <p>现在要使得一方宕机了,另一方仍旧可以读到宕机方的信息。</p> 
  <p><a href="http://img.e-com-net.com/image/info8/d06278942d644899ad9ffe68d9492068.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d06278942d644899ad9ffe68d9492068.jpg" alt="linux企业实战 --tomcat_第23张图片" width="650" height="161" style="border:1px solid black;"></a><br> <mark>解决方案</mark><br> <strong>server 2 同 server 3</strong></p> 
  <pre><code class="prism language-powershell"><span class="token function">cp</span> <span class="token operator">/</span>root<span class="token operator">/</span>lnmp<span class="token operator">/</span>jar/<span class="token operator">*</span> <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>tomcat<span class="token operator">/</span>lib<span class="token operator">/</span>
cd lib<span class="token operator">/</span>
<span class="token function">rm</span> <span class="token operator">-</span>fr memcached<span class="token operator">-</span>session<span class="token operator">-</span>manager<span class="token operator">-</span>tc6<span class="token operator">-</span>1<span class="token punctuation">.</span>6<span class="token punctuation">.</span>3<span class="token punctuation">.</span>jar 
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/cee4704eba674433a8a603b9aa2266d0.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/cee4704eba674433a8a603b9aa2266d0.jpg" alt="在这里插入图片描述" width="650" height="98"></a><a href="http://img.e-com-net.com/image/info8/2b18f162376745cba69bc9b52be9e5b6.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/2b18f162376745cba69bc9b52be9e5b6.jpg" alt="linux企业实战 --tomcat_第24张图片" width="650" height="197" style="border:1px solid black;"></a></p> 
  <p><mark>更改content扩展标记语言</mark></p> 
  <pre><code class="prism language-powershell">vim <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>tomcat<span class="token operator">/</span>conf<span class="token operator">/</span>context<span class="token punctuation">.</span>xml

<Manager className=<span class="token string">"de.javakaffee.web.msm.MemcachedBackupSessionManager"</span>
memcachedNodes=<span class="token string">"n1:172.25.42.2:11211,n2:172.25.42.3:11211"</span>
failoverNodes=<span class="token string">"n1"</span>
requestUriIgnorePattern=<span class="token string">".*\.(ico|png|gif|jpg|css|js)$"</span>
transcodeFactoryClass=<span class="token string">"de.javakaffee.web.msm.serializer.kryo.KryoTransoderFactory"</span>
<span class="token operator">/</span>>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/cf8a3e3543e749b5bdbf3ab322038f77.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/cf8a3e3543e749b5bdbf3ab322038f77.jpg" alt="在这里插入图片描述" width="650" height="69"></a><br> <a href="http://img.e-com-net.com/image/info8/b894b7e6783e4e80a140ad5f0b20f4c6.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b894b7e6783e4e80a140ad5f0b20f4c6.jpg" alt="linux企业实战 --tomcat_第25张图片" width="650" height="336" style="border:1px solid black;"></a></p> 
  <pre><code class="prism language-powershell">yum install memcached <span class="token operator">-</span>y
systemctl <span class="token function">start</span> memcached
netstat <span class="token operator">-</span>antlpe  <span class="token comment"># 查看11211端口是否开启</span>

bin<span class="token operator">/</span>shutdown<span class="token punctuation">.</span>sh 
bin<span class="token operator">/</span>startup<span class="token punctuation">.</span>sh  <span class="token comment">#重启tomcat</span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/8628466fdc8a495589bdcdd9c3643e4c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/8628466fdc8a495589bdcdd9c3643e4c.jpg" alt="linux企业实战 --tomcat_第26张图片" width="650" height="331" style="border:1px solid black;"></a><a href="http://img.e-com-net.com/image/info8/045504f50d2a4a08a9c03c12b89f73dc.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/045504f50d2a4a08a9c03c12b89f73dc.jpg" alt="linux企业实战 --tomcat_第27张图片" width="650" height="200" style="border:1px solid black;"></a></p> 
  <p><mark>测试</mark></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1745843366458834944"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Linux企业实战)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1745844005058396160.htm"
                           title="linux企业实战----tomcat" target="_blank">linux企业实战----tomcat</a>
                        <span class="text-muted">weixin_43384009</span>
<a class="tag" taget="_blank" href="/search/linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">linux企业实战</a>
                        <div>目录标题1.搭建tomcat2.nginx做tomcat的负载均衡3.tomcat-session1.搭建tomcat准备server1—nginx;server2—tomcat;server3—tomcat。server2和server3上同时安装jdk和tomcat1.tarzxfjdk-7u79-linux-x64.tar.gz-C/usr/local/2.tarzxfapache-tomc</div>
                    </li>
                    <li><a href="/article/1745843366458834944.htm"
                           title="linux企业实战 --tomcat" target="_blank">linux企业实战 --tomcat</a>
                        <span class="text-muted">一坨小红花</span>
<a class="tag" taget="_blank" href="/search/Linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">Linux企业实战</a>
                        <div>文章目录1Tomcat2搭建tomcat3nginx做tomcat的负载均衡4保持会话连接4.1引入session4.2session1TomcatTomcat服务器是一个免费的开发源代码的WEB应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。其主要的应用场景是解析动态程序代码(Java)JSP程序可以处理Tomcat界面换句话</div>
                    </li>
                    <li><a href="/article/1738487558221914112.htm"
                           title="Linux企业实战---Zabbix基于Proxy的分布式部署" target="_blank">Linux企业实战---Zabbix基于Proxy的分布式部署</a>
                        <span class="text-muted">皮皮彭</span>
<a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">企业实战</a>
                        <div>一、实验环境(rhel7.5版本)1.selinux和firewalld状态为disabled2.各主机信息如下:server1(zabbix-server,zabbix-agent)172.25.1.1server2(zabbix-agent)172.25.1.2server3(proxy)172.25.1.3二、Zabbix-proxy的配置配置代理主机server3日志在:/var/log/</div>
                    </li>
                    <li><a href="/article/1732148628878864384.htm"
                           title="Linux企业实战之容器(二十三)——Kubernetes(12)" target="_blank">Linux企业实战之容器(二十三)——Kubernetes(12)</a>
                        <span class="text-muted">bdkl9998</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a>
                        <div>kubernetes资源监控Metrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster。容器相关的Metrics主要来自于kubelet内置的cAdvisor服务,有了Metrics-Server之后,用户就可以通过标准的KubernetesAPI来访问到这些监控数据。MetricsAPI只可以查询当前的度量数据,并不保存历史数据。MetricsAPIURI为/apis</div>
                    </li>
                    <li><a href="/article/1710128045974695936.htm"
                           title="Linux企业实战-----docker网络(原生网络、自定义网络、容器间的通信、跨主机通信)" target="_blank">Linux企业实战-----docker网络(原生网络、自定义网络、容器间的通信、跨主机通信)</a>
                        <span class="text-muted">eternals fiere</span>
<a class="tag" taget="_blank" href="/search/Linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">Linux企业实战</a>
                        <div>目录一、docker网络概述二.docker的三种原生网络1.bridge模式2.host模式3.none模式三.docker自定义网络bridgeMacvlan四、docker容器间的通信1.使用名称2.container模式3.link模式4.docker容器访问外部网络5.外部网络访问容器五、跨主机的容器网络macvlan网络方案的实现一、docker网络概述Docker作为目前最火的轻量级</div>
                    </li>
                    <li><a href="/article/1305808942491799552.htm"
                           title="Linux企业实战-ansible(46)loop代替with" target="_blank">Linux企业实战-ansible(46)loop代替with</a>
                        <span class="text-muted">silence-1</span>
<a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">企业实战</a><a class="tag" taget="_blank" href="/search/ansible/1.htm">ansible</a><a class="tag" taget="_blank" href="/search/loop/1.htm">loop</a>
                        <div>利用loop关键字代替with利用loop和dict代替我们的with_dict也可以使用loop和filter代替loop和lookup上述列表输出不会被拉平我们可以使用flatten进行操作当由多层嵌套的时候我们只想拉平一个我们可以使用levels=1我们也可以试着循环暂停的时间loop结合dict代替with_dict但是这样显示的结果太全面了,我们可能只需要一部分这里我们使用loop_co</div>
                    </li>
                    <li><a href="/article/1305024099919106048.htm"
                           title="linux企业实战----大型网站架构概述" target="_blank">linux企业实战----大型网站架构概述</a>
                        <span class="text-muted">weixin_43384009</span>
<a class="tag" taget="_blank" href="/search/linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">linux企业实战</a>
                        <div>目录标题1.网站架构演化发展历程2.使用缓存服务器改善网站性能3.使用应用服务器集群改善并发处理能力4.数据库读写分离5.使用反响代理和cdn加速网站响应6.使用分布式文件系统和分布式数据库系统7.使用nosql和搜索引擎8.业务拆分9.分布式服务1.网站架构演化发展历程2.使用缓存服务器改善网站性能  网站访问的特点和二八定律一样:80%的业务访问及中在20%的数据上。所以如果把这一部分数据缓存</div>
                    </li>
                    <li><a href="/article/1305007523329249280.htm"
                           title="linux企业实战-网络架构" target="_blank">linux企业实战-网络架构</a>
                        <span class="text-muted">silence-1</span>
<a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">企业实战</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%9E%B6%E6%9E%84/1.htm">网络架构</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>网络架构演化发展历史初始阶段的网站(特点:没人)应用程序、数据库、文件都在一个服务器应用程序,文件,数据库都部署在一台服务器上,通常是使用LAMP(LinuxApacheMYSQLPHP)应用服务和数据服务分离随着网站业务的发展,一台服务器逐渐不能满足需求:性能越来越差,存储空间不足。这就需要应用和数据分离使用缓存改善网站性能网站访问的特点遵循经典的二八定律:80%的业务访问集中在20%的数据上所</div>
                    </li>
                    <li><a href="/article/1304980243215323136.htm"
                           title="Linux企业实战 --网络架构" target="_blank">Linux企业实战 --网络架构</a>
                        <span class="text-muted">一坨小红花</span>
<a class="tag" taget="_blank" href="/search/Linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">Linux企业实战</a>
                        <div>1.网站架构演化发展历程初始阶段的网站(特点:无人)应用数据、数据库、文件都在一个服务器。缺点:网站业务的迅猛发展,一台服务器已不能满足需求。则需要应用和数据分离应用服务器处理大量的业务需要更快更强的CPU数据库服务器需要快速磁盘检索和数据缓存需要更快的硬盘和更大的内存文件服务器需要存大量的用户上传的文件需要更大的硬盘2.使用缓存服务器改善网站性能网站访问的特点和二八定律一样:80%的业务访问及中</div>
                    </li>
                    <li><a href="/article/1304503021698322432.htm"
                           title="Linux企业实战-lnmp架构总结(CGI)" target="_blank">Linux企业实战-lnmp架构总结(CGI)</a>
                        <span class="text-muted">silence-1</span>
<a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">企业实战</a><a class="tag" taget="_blank" href="/search/FastCGI/1.htm">FastCGI</a><a class="tag" taget="_blank" href="/search/lnmp/1.htm">lnmp</a>
                        <div>lnmp架构总结1.用户通过http协议发起请求,请求会先抵达LNMP架构中的nginx2.nginx会根据用户的请求进行判断,这个判断是由Location元成的3.判断用户请求的是静态页面,nginx直接进行处理4.判断用户的请求是动态页面,nginx会将该请求交给fastcgi协议下发5.fastcgi会将请求交给php-fpm管理进程,php-fpm管理进程接收到后会调用具体的工作进程wra</div>
                    </li>
                    <li><a href="/article/1304440875044081664.htm"
                           title="Linux企业实战-----fence实现虚拟机断电自动重启" target="_blank">Linux企业实战-----fence实现虚拟机断电自动重启</a>
                        <span class="text-muted">eternals fiere</span>
<a class="tag" taget="_blank" href="/search/Linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">Linux企业实战</a>
                        <div>server1、server2:systemctlstartpcsdsystemctlenablepcsdpcsclusterstart--allyuminstallfence-virt.x86_64-ypcsstonithdescribefence_virtpcsstonithlistmkdir/etc/clusterhome:yuminstall-yfence-virtd.x86_64fenc</div>
                    </li>
                    <li><a href="/article/1296449569776803840.htm"
                           title="Linux企业实战-----nginx重定向+盗链与防盗链" target="_blank">Linux企业实战-----nginx重定向+盗链与防盗链</a>
                        <span class="text-muted">eternals fiere</span>
<a class="tag" taget="_blank" href="/search/Linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">Linux企业实战</a>
                        <div>目录nginx重定向的实现1.简单重定向2.80重定向4433.重定向的升级版nginx盗链与防盗链1.盗链的操作:使用server3来盗链2.防盗链的操作nginx重定向的实现1.简单重定向我们平常访问淘宝的时候都会使用taobao.com,而不是http://www.taobao.com,这就是重定向,当以taobao.com访问的时候定向到http://www.taobao.com。接下来,</div>
                    </li>
                    <li><a href="/article/1295842425708814336.htm"
                           title="Linux企业实战----mysql的半同步复制(稍后完善)" target="_blank">Linux企业实战----mysql的半同步复制(稍后完善)</a>
                        <span class="text-muted">eternals fiere</span>
<a class="tag" taget="_blank" href="/search/Linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">Linux企业实战</a>
                        <div>mysql的gtid的开启server2.3:vim/etc/my.cnfgtid_mode=ONenforce-gtid-consistency=ON/etc/init.d/mysqldrestartserver3:mysql-pZxn@@0823stopslave;mysql>changemasterto->master_host='172.25.11.2',->master_user='re</div>
                    </li>
                    <li><a href="/article/1295842424379219968.htm"
                           title="Linux企业实战-----mysql的源码编译与使用+密码重置" target="_blank">Linux企业实战-----mysql的源码编译与使用+密码重置</a>
                        <span class="text-muted">eternals fiere</span>
<a class="tag" taget="_blank" href="/search/Linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">Linux企业实战</a>
                        <div>目录mysql的源码编译mysql的启动mysql密码重置mysql的源码编译1.mysql的安装虚拟机设置:推荐使用20G硬盘,4096Mb内存,2核CPU1.1安装编译工具及依赖性在真机上(给虚拟机开启网络):dnfinstalliptables-service-ysystemctlstopfirewalldsystemctldisablefirewalldsystemctlenable--n</div>
                    </li>
                    <li><a href="/article/1295842424890925056.htm"
                           title="Linux企业实战-----mysql共享+主从复制" target="_blank">Linux企业实战-----mysql共享+主从复制</a>
                        <span class="text-muted">eternals fiere</span>
<a class="tag" taget="_blank" href="/search/Linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">Linux企业实战</a>
                        <div>TableofContents不同设备间的mysql共享nginx+php+phpMyadmin管理mysql用phpmyadmin管理其他主机的数据库mysql的主从复制不同设备间的mysql共享将server2中的mysql共享至server3,并在server3启动mysqlserver2:[root@server2local]#rsync-amysqlserver3:/usr/local/</div>
                    </li>
                    <li><a href="/article/1290320466124283904.htm"
                           title="linux企业实战 --lnmp架构中部署wordpress博客" target="_blank">linux企业实战 --lnmp架构中部署wordpress博客</a>
                        <span class="text-muted">一坨小红花</span>
<a class="tag" taget="_blank" href="/search/Linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">Linux企业实战</a>
                        <div>步骤一:解压tarzxfwordpress-5.3.2-zh_CN.tar.gz-C/usr/local/lnmp/nginx/html/cd/usr/local/lnmp/nginx/html/ls步骤二:浏览器访问172.25.60.253/wordpress步骤三:点击现在就开始,并登陆问题1:登陆进去,会报错能够链接进去,但是无此数据库步骤四:建立数据库mysql-uroot-predha</div>
                    </li>
                    <li><a href="/article/1457853181097717760.htm"
                           title="Linux企业实战之自动化运维工具(六)——SaltStack(6)" target="_blank">Linux企业实战之自动化运维工具(六)——SaltStack(6)</a>
                        <span class="text-muted">bdkl9998</span>
<a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E5%B7%A5%E5%85%B7/1.htm">自动化运维工具</a>
                        <div>salt-sshsalt-ssh简介salt-ssh可以独立运行的,不需要minion端。salt-ssh用的是sshpass进行密码交互的。以串行模式工作,性能下降。部署salt-ssh实验环境server1安装了salt-masterserver2安装了minion,我们提前停止salt-minionsystemctlstopsalt-minionyuminstall-ysalt-sshvim</div>
                    </li>
                    <li><a href="/article/1287935363137974272.htm"
                           title="linux企业实战 --SaltStack(一) 安装部署 && 远程连接" target="_blank">linux企业实战 --SaltStack(一) 安装部署 && 远程连接</a>
                        <span class="text-muted">一坨小红花</span>
<a class="tag" taget="_blank" href="/search/Linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">Linux企业实战</a>
                        <div>文章目录一SaltStack简介1.SaltStack是什么??2.Salt的核心功能3.SaltStack通信机制二SaltStack安装部署1.实验准备2.安装部署三远程连接1.远程执行Shell命令2.编写远程执行模块3.YAML语言4.配置管理一SaltStack简介1.SaltStack是什么??SaltStack是一个配置管理系统,能够维护预定义状态的远程节点。SaltStack是一个</div>
                    </li>
                    <li><a href="/article/1287935224948240384.htm"
                           title="linux企业实战 --Docker之harbor的安装部署" target="_blank">linux企业实战 --Docker之harbor的安装部署</a>
                        <span class="text-muted">一坨小红花</span>
<a class="tag" taget="_blank" href="/search/Linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">Linux企业实战</a>
                        <div>文章目录一、Harbor二、部署Harbor1.安装Docker2.安装harbor2.安装docker-compose三、GUI界面一、HarborHarbor是VMware公司开源了企业级Registry项目,它是DockerRegistry的更高级封装。其的目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。二、部署Harbor1.安装Docker此部分可以参考博客:http</div>
                    </li>
                    <li><a href="/article/1287935223673171968.htm"
                           title="linux企业实战 --Docker之部署docker & 镜像加速器" target="_blank">linux企业实战 --Docker之部署docker & 镜像加速器</a>
                        <span class="text-muted">一坨小红花</span>
<a class="tag" taget="_blank" href="/search/Linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">Linux企业实战</a>
                        <div>文章目录一、部署docker1.部署过程2.docker的常用命令二、镜像加速器一、部署docker1.部署过程步骤一:在developer.aliyun.com/mirrors/下找到docker-ce的下载地址步骤二:使用wget下载docker注:在yum目录下下载docker步骤三:下载后生成的docker-ce文件进行编辑步骤四:yumrepolist步骤五:查看当前系统步骤六:此时下载</div>
                    </li>
                    <li><a href="/article/1287935224516227072.htm"
                           title="linux企业实战 --Docker镜像构建" target="_blank">linux企业实战 --Docker镜像构建</a>
                        <span class="text-muted">一坨小红花</span>
<a class="tag" taget="_blank" href="/search/Linux%E4%BC%81%E4%B8%9A%E5%AE%9E%E6%88%98/1.htm">Linux企业实战</a>
                        <div>文章目录一、镜像的分层结构二、镜像的构建1.从容器构建镜像(简:容器镜像)--commit命令1.1commit详述1.2构建方式2.Dockerfile构建镜像2.1Dockerfile参数2.2构建方式一、镜像的分层结构如上图所示:共享宿主机的kernelbase镜像提供的是最小的Liunx发行版同一docker主机支持运行多种Liunx发行版采用分层结构的最大好处是:共享资源如上图所示:Co</div>
                    </li>
                    <li><a href="/article/1457853439517175808.htm"
                           title="Linux企业实战之自动化运维工具(一)——SaltStack(1)" target="_blank">Linux企业实战之自动化运维工具(一)——SaltStack(1)</a>
                        <span class="text-muted">bdkl9998</span>
<a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E5%B7%A5%E5%85%B7/1.htm">自动化运维工具</a>
                        <div>SaltStack1简介SaltStack是一个配置管理系统,能够维护预定义状态的远程节点。SaltStack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据。SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。SaltStack的核心功能:使命令发送到远程系统是并行的而不是串行的;使用安全加密的协议;使用最小最快的网络载荷;提供简单的编程接口。SaltStack同样引</div>
                    </li>
                    <li><a href="/article/1274999954930155520.htm"
                           title="Linux企业实战之容器(十二)——Kubernetes(7)" target="_blank">Linux企业实战之容器(十二)——Kubernetes(7)</a>
                        <span class="text-muted">bdkl9998</span>

                        <div>Kubernetes存储1ConfigMap的配置管理Configmap用于保存配置数据,以键值对形式存储。configMap资源提供了向Pod注入配置数据的方法。旨在让镜像和配置文件解耦,以便实现镜像的可移植性和可复用性。典型的使用场景:填充环境变量的值设置容器内的命令行参数填充卷的配置文件(1)创建ConfigMap的方式四种创建方式:使用字面值创建使用文件创建使用目录创建编写configma</div>
                    </li>
                    <li><a href="/article/1274999809832402944.htm"
                           title="Linux企业实战之容器(十三)——Kubernetes(8)" target="_blank">Linux企业实战之容器(十三)——Kubernetes(8)</a>
                        <span class="text-muted">bdkl9998</span>

                        <div>Kubernetes存储(1)PV和PVCPersistentVolume(持久卷,简称PV)是集群内,由管理员提供的网络存储的一部分。就像集群中的节点一样,PV也是集群中的一种资源。它也像Volume一样,是一种volume插件,但是它的生命周期却是和使用它的Pod相互独立的。PV这个API对象,捕获了诸如NFS、ISCSI、或其他云存储系统的实现细节。PersistentVolumeClaim</div>
                    </li>
                    <li><a href="/article/1274999811166191616.htm"
                           title="Linux企业实战之容器(七)——Docker(7)" target="_blank">Linux企业实战之容器(七)——Docker(7)</a>
                        <span class="text-muted">bdkl9998</span>

                        <div>1Docker数据卷为什么要用数据卷?Docker分层文件系统性能差生命周期与容器相同(即我们删除容器时,对应的volume也会被自动删除)Docker数据卷mount到主机中,绕开分层文件系统;和主机磁盘性能相同,容器删除后依然保留;仅限本地磁盘,不能随容器迁移。Docker提供了两种卷:bindmountdockermanagedvolume(1)bindmount是将主机上的目录或文件mou</div>
                    </li>
                    <li><a href="/article/1274999810704818176.htm"
                           title="Linux企业实战之容器(六)——Docker(6)" target="_blank">Linux企业实战之容器(六)——Docker(6)</a>
                        <span class="text-muted">bdkl9998</span>

                        <div>1Docker原生网络Docker的镜像是最令人称道的地方,但是网络功能还是相对比较薄弱。Docker安装后会自动创建三种网络:bridge、host、nonedockernetworkls#查看docker网络(1)Bridge模式bridge网络模式的示例:docker在安装时会创建一个docker0的LinuxBridge,新建的容器会自动交接到这个接口brctlshow#查看当前主机上的网</div>
                    </li>
                    <li><a href="/article/1274999810205696000.htm"
                           title="Linux企业实战之容器(十四)——Kubernetes(9)" target="_blank">Linux企业实战之容器(十四)——Kubernetes(9)</a>
                        <span class="text-muted">bdkl9998</span>

                        <div>kubernetes调度调度器通过kubernetes的watch机制来发现集群中新创建且尚未被调度到Node上的Pod。调度器会将发现的每一个未调度的Pod调度到一个合适的Node上来运行。kube-scheduler是Kubernetes集群的默认调度器,并且是集群控制面的一部分。如果你真的希望或者有这方面的需求,kube-scheduler在设计上是允许你自己写一个调度组件并替换原有的kub</div>
                    </li>
                    <li><a href="/article/1274999676042493952.htm"
                           title="Linux企业实战之容器(九)——Kubernetes(4)" target="_blank">Linux企业实战之容器(九)——Kubernetes(4)</a>
                        <span class="text-muted">bdkl9998</span>

                        <div>1控制器Pod的分类:自主式Pod:Pod退出后不会被创建控制器管理的Pod:在控制器的生命周期里,始终要维持Pod的副本数目控制器类型:ReplicationController和ReplicaSetDeploymentDaemonSetStatefulSetJobCronJobHPA全称HorizontalPodAutoscalerReplicationController和ReplicaSe</div>
                    </li>
                    <li><a href="/article/1274999675602092032.htm"
                           title="Linux企业实战之容器(八)——Kubernetes(3)" target="_blank">Linux企业实战之容器(八)——Kubernetes(3)</a>
                        <span class="text-muted">bdkl9998</span>

                        <div>1Init容器Pod可以包含多个容器,应用运行在这些容器里面,同时Pod也可以有一个或多个先于应用容器启动的Init容器。Init容器与普通的容器非常像,除了如下三点点:它们总是运行到完成;Init容器不支持Readiness,因为它们必须在Pod就绪之前运行完成;每个Init容器必须运行完成,下一个容器才能够运行。如果Pod的Init容器失败,Kubernetes会不断地重启该Pod,直到Ini</div>
                    </li>
                    <li><a href="/article/1274999674800979968.htm"
                           title="Linux企业实战之容器(六)——Kubernetes(1)" target="_blank">Linux企业实战之容器(六)——Kubernetes(1)</a>
                        <span class="text-muted">bdkl9998</span>

                        <div>1Kubernetes简介在Docker作为高级容器引擎快速发展的同时,在Google内部,容器技术已经应用了很多年,Brog系统运行管理着成千上万的容器应用;kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes</div>
                    </li>
                                <li><a href="/article/68.htm"
                                       title="mongodb3.03开启认证" target="_blank">mongodb3.03开启认证</a>
                                    <span class="text-muted">21jhf</span>
<a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a>
                                    <div>下载了最新mongodb3.03版本,当使用--auth 参数命令行开启mongodb用户认证时遇到很多问题,现总结如下: 
(百度上搜到的基本都是老版本的,看到db.addUser的就是,请忽略) 
Windows下我做了一个bat文件,用来启动mongodb,命令行如下: 
mongod --dbpath db\data --port 27017 --directoryperdb --logp</div>
                                </li>
                                <li><a href="/article/195.htm"
                                       title="【Spark103】Task not serializable" target="_blank">【Spark103】Task not serializable</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/Serializable/1.htm">Serializable</a>
                                    <div>Task not serializable是Spark开发过程最令人头疼的问题之一,这里记录下出现这个问题的两个实例,一个是自己遇到的,另一个是stackoverflow上看到。等有时间了再仔细探究出现Task not serialiazable的各种原因以及出现问题后如何快速定位问题的所在,至少目前阶段碰到此类问题,没有什么章法 
1. 
  
package spark.exampl</div>
                                </li>
                                <li><a href="/article/322.htm"
                                       title="你所熟知的 LRU(最近最少使用)" target="_blank">你所熟知的 LRU(最近最少使用)</a>
                                    <span class="text-muted">dalan_123</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>关于LRU这个名词在很多地方或听说,或使用,接下来看下lru缓存回收的实现 
1、大体的想法 
    a、查询出最近最晚使用的项 
    b、给最近的使用的项做标记 
通过使用链表就可以完成这两个操作,关于最近最少使用的项只需要返回链表的尾部;标记最近使用的项,只需要将该项移除并放置到头部,那么难点就出现 你如何能够快速在链表定位对应的该项? 
这时候多</div>
                                </li>
                                <li><a href="/article/449.htm"
                                       title="Javascript 跨域" target="_blank">Javascript 跨域</a>
                                    <span class="text-muted">周凡杨</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a><a class="tag" taget="_blank" href="/search/%E8%B7%A8%E5%9F%9F/1.htm">跨域</a><a class="tag" taget="_blank" href="/search/cross-domain/1.htm">cross-domain</a>
                                    <div>  
                                 </div>
                                </li>
                                <li><a href="/article/576.htm"
                                       title="linux下安装apache服务器" target="_blank">linux下安装apache服务器</a>
                                    <span class="text-muted">g21121</span>
<a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a>
                                    <div>安装apache  
下载windows版本apache,下载地址:http://httpd.apache.org/download.cgi 
   1.windows下安装apache   
Windows下安装apache比较简单,注意选择路径和端口即可,这里就不再赘述了。  2.linux下安装apache:  
下载之后上传到linux的相关目录,这里指定为/home/apach</div>
                                </li>
                                <li><a href="/article/703.htm"
                                       title="FineReport的JS编辑框和URL地址栏语法简介" target="_blank">FineReport的JS编辑框和URL地址栏语法简介</a>
                                    <span class="text-muted">老A不折腾</span>
<a class="tag" taget="_blank" href="/search/finereport/1.htm">finereport</a><a class="tag" taget="_blank" href="/search/web%E6%8A%A5%E8%A1%A8/1.htm">web报表</a><a class="tag" taget="_blank" href="/search/%E6%8A%A5%E8%A1%A8%E8%BD%AF%E4%BB%B6/1.htm">报表软件</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93/1.htm">语法总结</a>
                                    <div>  JS编辑框: 
1.FineReport的js。 
作为一款BS产品,browser端的JavaScript是必不可少的。 
FineReport中的js是已经调用了finereport.js的。 
大家知道,预览报表时,报表servlet会将cpt模板转为html,在这个html的head头部中会引入FineReport的js,这个finereport.js中包含了许多内置的fun</div>
                                </li>
                                <li><a href="/article/830.htm"
                                       title="根据STATUS信息对MySQL进行优化" target="_blank">根据STATUS信息对MySQL进行优化</a>
                                    <span class="text-muted">墙头上一根草</span>
<a class="tag" taget="_blank" href="/search/status/1.htm">status</a>
                                    <div>mysql  查看当前正在执行的操作,即正在执行的sql语句的方法为: 
     show processlist 命令 
  
mysql> show global status;可以列出MySQL服务器运行各种状态值,我个人较喜欢的用法是show status like '查询值%';一、慢查询mysql> show variab</div>
                                </li>
                                <li><a href="/article/957.htm"
                                       title="我的spring学习笔记7-Spring的Bean配置文件给Bean定义别名" target="_blank">我的spring学习笔记7-Spring的Bean配置文件给Bean定义别名</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/Spring+3/1.htm">Spring 3</a>
                                    <div>本文介绍如何给Spring的Bean配置文件的Bean定义别名? 
 
原始的 
 
 
<bean id="business" class="onlyfun.caterpillar.device.Business">
    <property name="writer">
        <ref b</div>
                                </li>
                                <li><a href="/article/1084.htm"
                                       title="高性能mysql 之 性能剖析" target="_blank">高性能mysql 之 性能剖析</a>
                                    <span class="text-muted">annan211</span>
<a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD/1.htm">性能</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/mysql+%E6%80%A7%E8%83%BD%E5%89%96%E6%9E%90/1.htm">mysql 性能剖析</a><a class="tag" taget="_blank" href="/search/%E5%89%96%E6%9E%90/1.htm">剖析</a>
                                    <div>

1 定义性能优化
  mysql服务器性能,此处定义为 响应时间。
  在解释性能优化之前,先来消除一个误解,很多人认为,性能优化就是降低cpu的利用率或者减少对资源的使用。
  这是一个陷阱。
  资源时用来消耗并用来工作的,所以有时候消耗更多的资源能够加快查询速度,保持cpu忙绿,这是必要的。很多时候发现
  编译进了新版本的InnoDB之后,cpu利用率上升的很厉害,这并不</div>
                                </li>
                                <li><a href="/article/1211.htm"
                                       title="主外键和索引唯一性约束" target="_blank">主外键和索引唯一性约束</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/%E7%B4%A2%E5%BC%95/1.htm">索引</a><a class="tag" taget="_blank" href="/search/%E5%94%AF%E4%B8%80%E6%80%A7%E7%BA%A6%E6%9D%9F/1.htm">唯一性约束</a><a class="tag" taget="_blank" href="/search/%E4%B8%BB%E5%A4%96%E9%94%AE%E7%BA%A6%E6%9D%9F/1.htm">主外键约束</a><a class="tag" taget="_blank" href="/search/%E8%81%94%E6%9C%BA%E5%88%A0%E9%99%A4/1.htm">联机删除</a>
                                    <div>目标;第一步;创建两张表 用户表和文章表 
        第二步;发表文章 
  
  
  1,建表; 
    ---用户表 BlogUsers
    --userID唯一的
    --userName
    --pwd
    --sex
        

    create </div>
                                </li>
                                <li><a href="/article/1338.htm"
                                       title="线程的调度" target="_blank">线程的调度</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B%E7%9A%84%E8%B0%83%E5%BA%A6/1.htm">线程的调度</a><a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a>
                                    <div>1.       Java提供一个线程调度程序来监控程序中启动后进入可运行状态的所有线程。线程调度程序按照线程的优先级决定应调度哪些线程来执行。 
  
2.       多数线程的调度是抢占式的(即我想中断程序运行就中断,不需要和将被中断的程序协商) 
a) </div>
                                </li>
                                <li><a href="/article/1465.htm"
                                       title="查看日志常用命令" target="_blank">查看日志常用命令</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%91%BD%E4%BB%A4/1.htm">命令</a><a class="tag" taget="_blank" href="/search/unix/1.htm">unix</a>
                                    <div>一.日志查找方法,可以用通配符查某台主机上的所有服务器grep "关键字" /wls/applogs/custom-*/error.log 
  
二.查看日志常用命令1.grep '关键字' error.log:在error.log中搜索'关键字'2.grep -C10 '关键字' error.log:显示关键字前后10行记录3.grep '关键字' error.l</div>
                                </li>
                                <li><a href="/article/1592.htm"
                                       title="【持久化框架MyBatis3一】MyBatis版HelloWorld" target="_blank">【持久化框架MyBatis3一】MyBatis版HelloWorld</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/helloworld/1.htm">helloworld</a>
                                    <div>MyBatis这个系列的文章,主要参考《Java Persistence with MyBatis 3》。 
  样例数据 
本文以MySQL数据库为例,建立一个STUDENTS表,插入两条数据,然后进行单表的增删改查 
  
  
CREATE TABLE STUDENTS
(
stud_id int(11) NOT NULL AUTO_INCREMENT,
</div>
                                </li>
                                <li><a href="/article/1719.htm"
                                       title="【Hadoop十五】Hadoop Counter" target="_blank">【Hadoop十五】Hadoop Counter</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a>
                                    <div>  
 1. 只有Map任务的Map Reduce Job  
	File System Counters
		FILE: Number of bytes read=3629530
		FILE: Number of bytes written=98312
		FILE: Number of read operations=0
		FILE: Number of lar</div>
                                </li>
                                <li><a href="/article/1846.htm"
                                       title="解决Tomcat数据连接池无法释放" target="_blank">解决Tomcat数据连接池无法释放</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/tomcat+%E8%BF%9E%E6%8E%A5%E6%B1%A0%E3%80%80%E4%BC%98%E5%8C%96/1.htm">tomcat 连接池 优化</a>
                                    <div> 
 近段时间,公司的检测中心报表系统(SMC)的开发人员时不时找到我,说用户老是出现无法登录的情况。前些日子因为手头上 有Jboss集群的测试工作,发现用户不能登录时,都是在Tomcat中将这个项目Reload一下就好了,不过只是治标而已,因为大概几个小时之后又会 再次出现无法登录的情况。 
  
今天上午,开发人员小毛又找到我,要我协助将这个问题根治一下,拖太久用户难保不投诉。 
简单分析了一</div>
                                </li>
                                <li><a href="/article/1973.htm"
                                       title="java-75-二叉树两结点的最低共同父结点" target="_blank">java-75-二叉树两结点的最低共同父结点</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>
import java.util.LinkedList;
import java.util.List;

import ljn.help.*;
public class BTreeLowestParentOfTwoNodes {

	public static void main(String[] args) {
		/*
		 * node data is stored in</div>
                                </li>
                                <li><a href="/article/2100.htm"
                                       title="行业垂直搜索引擎网页抓取项目" target="_blank">行业垂直搜索引擎网页抓取项目</a>
                                    <span class="text-muted">carlwu</span>
<a class="tag" taget="_blank" href="/search/Lucene/1.htm">Lucene</a><a class="tag" taget="_blank" href="/search/Nutch/1.htm">Nutch</a><a class="tag" taget="_blank" href="/search/Heritrix/1.htm">Heritrix</a><a class="tag" taget="_blank" href="/search/Solr/1.htm">Solr</a>
                                    <div>公司有一个搜索引擎项目,希望各路高人有空来帮忙指导,谢谢! 
这是详细需求: 
(1) 通过提供的网站地址(大概100-200个网站),网页抓取程序能不断抓取网页和其它类型的文件(如Excel、PDF、Word、ppt及zip类型),并且程序能够根据事先提供的规则,过滤掉不相干的下载内容。 
(2) 程序能够搜索这些抓取的内容,并能对这些抓取文件按照油田名进行分类,然后放到服务器不同的目录中。 
</div>
                                </li>
                                <li><a href="/article/2227.htm"
                                       title="[通讯与服务]在总带宽资源没有大幅增加之前,不适宜大幅度降低资费" target="_blank">[通讯与服务]在总带宽资源没有大幅增加之前,不适宜大幅度降低资费</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E8%B5%84%E6%BA%90/1.htm">资源</a>
                                    <div> 
 
      降低通讯服务资费,就意味着有更多的用户进入,就意味着通讯服务提供商要接待和服务更多的用户,在总体运维成本没有由于技术升级而大幅下降的情况下,这种降低资费的行为将导致每个用户的平均带宽不断下降,而享受到的服务质量也在下降,这对用户和服务商都是不利的。。。。。。。。 
 
 
    &nbs</div>
                                </li>
                                <li><a href="/article/2354.htm"
                                       title="Java时区转换及时间格式" target="_blank">Java时区转换及时间格式</a>
                                    <span class="text-muted">Cwind</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>本文介绍Java API 中 Date, Calendar, TimeZone和DateFormat的使用,以及不同时区时间相互转化的方法和原理。 
  
问题描述: 
向处于不同时区的服务器发请求时需要考虑时区转换的问题。譬如,服务器位于东八区(北京时间,GMT+8:00),而身处东四区的用户想要查询当天的销售记录。则需把东四区的“今天”这个时间范围转换为服务器所在时区的时间范围。 
</div>
                                </li>
                                <li><a href="/article/2481.htm"
                                       title="readonly,只读,不可用" target="_blank">readonly,只读,不可用</a>
                                    <span class="text-muted">dashuaifu</span>
<a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/disable/1.htm">disable</a><a class="tag" taget="_blank" href="/search/readOnly/1.htm">readOnly</a><a class="tag" taget="_blank" href="/search/readOnly/1.htm">readOnly</a>
                                    <div>readOnly 和 readonly 不同,在做js开发时一定要注意函数大小写和jsp黄线的警告!!!我就经历过这么一件事: 
使用readOnly在某些浏览器或同一浏览器不同版本有的可以实现“只读”功能,有的就不行,而且函数readOnly有黄线警告!!!就这样被折磨了不短时间!!!(期间使用过disable函数,但是发现disable函数之后后台接收不到前台的的数据!!!) 
  </div>
                                </li>
                                <li><a href="/article/2608.htm"
                                       title="LABjs、RequireJS、SeaJS 介绍" target="_blank">LABjs、RequireJS、SeaJS 介绍</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a>
                                    <div>LABjs 的核心是 LAB(Loading and Blocking):Loading 指异步并行加载,Blocking 是指同步等待执行。LABjs 通过优雅的语法(script 和 wait)实现了这两大特性,核心价值是性能优化。LABjs 是一个文件加载器。RequireJS 和 SeaJS 则是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更</div>
                                </li>
                                <li><a href="/article/2735.htm"
                                       title="[应用结构]入口脚本" target="_blank">[应用结构]入口脚本</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/yii2/1.htm">yii2</a>
                                    <div>入口脚本 
入口脚本是应用启动流程中的第一环,一个应用(不管是网页应用还是控制台应用)只有一个入口脚本。终端用户的请求通过入口脚本实例化应用并将将请求转发到应用。 
Web 应用的入口脚本必须放在终端用户能够访问的目录下,通常命名为 index.php,也可以使用 Web 服务器能定位到的其他名称。 
控制台应用的入口脚本一般在应用根目录下命名为 yii(后缀为.php),该文</div>
                                </li>
                                <li><a href="/article/2862.htm"
                                       title="haoop shell命令" target="_blank">haoop shell命令</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/hadoop+shell/1.htm">hadoop shell</a>
                                    <div> 
 cat 
 chgrp 
 chmod 
 chown 
 copyFromLocal 
 copyToLocal 
 cp 
 du 
 dus 
 expunge 
 get 
 getmerge 
 ls 
 lsr 
 mkdir 
 movefromLocal 
 mv 
 put 
 rm 
 rmr 
 setrep 
 stat 
 tail 
 test 
 text 
 </div>
                                </li>
                                <li><a href="/article/2989.htm"
                                       title="MultiStateView不同的状态下显示不同的界面" target="_blank">MultiStateView不同的状态下显示不同的界面</a>
                                    <span class="text-muted">gundumw100</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>只要将指定的view放在该控件里面,可以该view在不同的状态下显示不同的界面,这对ListView很有用,比如加载界面,空白界面,错误界面。而且这些见面由你指定布局,非常灵活。 
 
PS:ListView虽然可以设置一个EmptyView,但使用起来不方便,不灵活,有点累赘。 
 
 

<com.kennyc.view.MultiStateView xmlns:android=&qu</div>
                                </li>
                                <li><a href="/article/3116.htm"
                                       title="jQuery实现页面内锚点平滑跳转" target="_blank">jQuery实现页面内锚点平滑跳转</a>
                                    <span class="text-muted">ini</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a>
                                    <div>平时我们做导航滚动到内容都是通过锚点来做,刷的一下就直接跳到内容了,没有一丝的滚动效果,而且 url 链接最后会有“小尾巴”,就像#keleyi,今天我就介绍一款 jquery 做的滚动的特效,既可以设置滚动速度,又可以在 url 链接上没有“小尾巴”。 
  
效果体验:http://keleyi.com/keleyi/phtml/jqtexiao/37.htmHTML文件代码: 
&</div>
                                </li>
                                <li><a href="/article/3243.htm"
                                       title="kafka offset迁移" target="_blank">kafka offset迁移</a>
                                    <span class="text-muted">kane_xie</span>
<a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a>
                                    <div>在早前的kafka版本中(0.8.0),offset是被存储在zookeeper中的。 
  
到当前版本(0.8.2)为止,kafka同时支持offset存储在zookeeper和offset manager(broker)中。 
  
从官方的说明来看,未来offset的zookeeper存储将会被弃用。因此现有的基于kafka的项目如果今后计划保持更新的话,可以考虑在合适</div>
                                </li>
                                <li><a href="/article/3370.htm"
                                       title="android > 搭建 cordova 环境" target="_blank">android > 搭建 cordova 环境</a>
                                    <span class="text-muted">mft8899</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>  
1 , 安装 node.js   
     http://nodejs.org 
     
node -v   查看版本 
  
2, 安装 npm 
  
可以先从  https://github.com/isaacs/npm/tags  下载 源码 解压到</div>
                                </li>
                                <li><a href="/article/3497.htm"
                                       title="java封装的比较器,比较是否全相同,获取不同字段名字" target="_blank">java封装的比较器,比较是否全相同,获取不同字段名字</a>
                                    <span class="text-muted">qifeifei</span>

                                    <div> 非常实用的java比较器,贴上代码: 
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;

i</div>
                                </li>
                                <li><a href="/article/3624.htm"
                                       title="记录一些函数用法" target="_blank">记录一些函数用法</a>
                                    <span class="text-muted">.Aky.</span>
<a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0/1.htm">函数</a><a class="tag" taget="_blank" href="/search/IP/1.htm">IP</a>
                                    <div>高手们照旧忽略。 
想弄个全天朝IP段数据库,找了个今天最新更新的国内所有运营商IP段,copy到文件,用文件函数,字符串函数把玩下。分割出startIp和endIp这样格式写入.txt文件,直接用phpmyadmin导入.csv文件的形式导入。(生命在于折腾,也许你们觉得我傻X,直接下载人家弄好的导入不就可以,做自己的菜鸟,让别人去说吧) 
 
当然用到了ip2long()函数把字符串转为整型数</div>
                                </li>
                                <li><a href="/article/3751.htm"
                                       title="sublime text 3 rust" target="_blank">sublime text 3 rust</a>
                                    <span class="text-muted">wudixiaotie</span>
<a class="tag" taget="_blank" href="/search/Sublime+Text/1.htm">Sublime Text</a>
                                    <div>1.sublime text 3 => install package => Rust 
2.cd ~/.config/sublime-text-3/Packages 
3.mkdir rust 
4.git clone https://github.com/sp0/rust-style 
5.cd rust-style 
6.cargo build --release 
7.ctrl</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>