Tomcat支持三种接收请求的处理方式:BIO、NIO、APR
1>、BIO模式:阻塞式I/O操作,表示Tomcat使用的是传统JavaI/O操作(即Java.io包及其子包)。Tomcat7以下版本默认情况下是以bio模式运行的,由于每个请求都要创建一个线程来处理,线程开销较大,不能处理高并发的场景,在三种模式中性能也最低。启动tomcat看到如下日志,表示使用的是BIO模式:

2>、NIO模式:是Java SE
1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。是一个基于缓冲区、并能提供非阻塞I/O操作的Java
API,它拥有比传统I/O操作(bio)更好的并发运行性能。要让Tomcat以nio模式来运行比较简单,只需要在Tomcat安装目录/conf/server.xml文件中将如下配置:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

修改成:

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />

注意:Tomcat8以上版本,默认使用的就是NIO模式,不需要额外修改

3>、apr模式:简单理解,就是从操作系统级别解决异步IO问题,大幅度的提高服务器的处理和响应性能, 也是Tomcat运行高并发应用的首选模式。
启用这种模式稍微麻烦一些,需要安装一些依赖库,下面以在CentOS6.5版环境下Tomcat-7.0.11为例,介绍安装步聚:

前提需要配置JDK   JAVA_HOME

阿里云  格式化和挂载数据盘  https://help.aliyun.com/document_detail/25426.html?spm=5176.doc25446.2.4.Hlmy9O

tar -zxvf apache-tomcat-7.0.11.tar.gz

环境   CentOS 6.5 64位   yum install -y gcc gcc-c++ 如安装则不用执行

安装apr    官网http://apr.apache.org/download.cgi

1、安装版本

Linux系统:选用Redhat的开源版本CentOS操作系统(这里用CentOS 6.5版本)
JDK:选用版本为jdk1.7.0_45,安装包jdk-7u67-linux-x64.tar.gz
Apache:选用版本2.4.7,安装包httpd-2.4.7.tar.gz
Tomcat:选用版本7.0.47,安装包apache-tomcat-7.0.11.tar.gz
JK:选用版本1.2.37,安装包:tomcat-connectors-1.2.37-src.tar.gz

2、Apache安装:
 (1)、安装apr
  在/usr/local目录下安装apr:
  #tar -zxvf apr-1.5.0.tar.gz  -C /mnt/soft
  #cd apr-1.5.0
  #./configure --prefix=/mnt/soft/apr
  # make
  # make install
 (2)、安装apr-util
  在/usr/local目录下安装apr-util:
  #tar -zxvf apr-util-1.5.3.tar.gz  -C /mnt/soft
  #cd apr-util-1.5.3
  #./configure --prefix=/mnt/soft/apr-util --with-apr=/mnt/soft/apr
  # make
  # make install
 (3)、安装pcre
  在/usr/local目录下安装pcre:
  # tar -zxvf pcre-8.32.tar.gz  -C /mnt/soft
  # cd pcre-8.32
  #./configure --prefix=/mnt/soft/pcre
  # make
  # make install

(4)、 安装APR tomcat-native

//tomcat-native-1.1.27-src.tar.gz  这个我装的tomcat里边就自己带了,在bin目录下,如果你们没有找到,去网上下一个就行了

#cd apache-tomcat-6.0.20/bin

#tar zxvf tomcat-native.tar.gz

#cd tomcat-native/jni/native

#./configure --with-apr=/mnt/soft/apr

#make

#make install

设置 Tomcat 整合 APR 修改 tomcat 的启动 shell (catalina.sh),在该文件中加入启动参数: CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib" 。

(5)、安装httpd
  #tar -zxvf httpd-2.4.7.tar.gz   -C /mnt/soft
  定位到文件夹/usr/local /httpd-2.4.7。
  #cd httpd-2.4.7
  设置安装路径和需要编译的模块。
  # ./configure --prefix=/usr/local/apache --enable-so -enable-proxy -enable-proxy_http=shared--enable-module=so --enable-mods-shared=all --enable-proxy-ajp=shared  --enable-proxy-balancer--with-mpm=worker --with-apr=/usr/local/apr/   --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
  //备注:prefix定义apache的安装路径
  编译通过,继续安装apache。
  # make

# make install

3、Apache配置及测试
   安装完毕后,在测试启动apache之前先修改/apache/conf /httpd.conf。
  (1)查找ServerName,打开注释,将ServerName值改为对应的IP地址。
 
  (3)以下2个注释去掉:
       #Include conf/extra/httpd-mpm.conf
       #Include conf/extra/httpd-default.conf

(4):保存httpd.conf文件的修改,启动apache服务。
   # /usr/local/apache/bin/apachectl start
   浏览器访问http://127.0.0.1,提示无法连接。说明apache没有成功启动。查看错误日志(/apache/logs/error_log),发现如图错误信息。原因是httpd.conf里面的mod_slotmem_shm.so没有加载。将httpd.conf 文件中的“#LoadModule    slotmem_shm_module modules/mod_slotmem_shm.so”前的“#”去掉即可。

(5)重新启动apache并查看httpd是否运行。
     # /mnt/soft/apache/bin/apachectl start
     # ps -ef | grep httpd
  (6)浏览器测试apache。在浏览器中访问http://127.0.0.1 。页面出现“It's Works!”字样即为成功。
   Apache的启动和关闭:
   在/usr/local/apache/bin下有可执行程序。
  (1)启动apache服务:# /usr/local/apache/bin/apachectl start
  (2)关闭apache服务:#  /usr/local/apache/bin/apachectlstop
  (3)重启apache服务:#  /usr/local/apache/bin/apachectl restart

一、设置Tomcat    server.xml

替换以下内容:

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="100" maxIdleTime="60000" />

<Connector port="8080"
        protocol="org.apache.coyote.http11.Http11AprProtocol"
        executor="tomcatThreadPool"
        compression="on"
        compressionMinSize="2048"
        maxThreads="30000"
        minSpareThreads="512"
        maxSpareThreads="2048"
        enableLookups="false"
        redirectPort="8443"
        acceptCount="35000"
        debug="0"
        connectionTimeout="40000"
        disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true" />

<Connector port="8009" protocol="AJP/1.3" maxThreads="500" minSpareThreads="100"  acceptCount="1000"
        connectionTimeout="20000" redirectPort="8443" />

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

<value>下

<Context reloadable="false" path="" >   
                 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"  
                    memcachedNodes="n1:121.42.39.69:11211,n2:118.190.116.115:11211"
                    sticky="false"  
                    sessionBackupAsync="false"  
                    lockingMode="auto"  
                    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"  
                    transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"  
                    />  
            </Context>

//集群  放到 <Engine> 里</Engine>
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
       <Manager className="org.apache.catalina.ha.session.BackupManager"
          expireSessionsOnShutdown="false"
          notifyListenersOnReplication="true"
          mapSendOptions="6"/>
   
    <Channel className="org.apache.catalina.tribes.group.GroupChannel">
        <Membership className="org.apache.catalina.tribes.membership.McastService"
            address="224.0.0.1"
            port="45564"
            frequency="500"
            dropTime="3000"/>
        <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
            address="121.42.39.69"
            port="4000"
            autoBind="100"
            selectorTimeout="5000"
            maxThreads="500"/>
        <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
            <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
        </Sender>
        <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
        <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
    </Channel>
    <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
    <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
    <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
         tempDir="/tmp/war-temp/"
         deployDir="/tmp/war-deploy/"
         watchDir="/tmp/war-listen/"
         watchEnabled="false"/>
    <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
       <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
    </Cluster>

二、Linux下修改JVM内存大小及优化

要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前 。注意引号要带上,添加

#JAVA_OPTS="-Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=768m -XX:MaxPermSize=1024m"
JAVA_OPTS="
-Xms1024M
-Xmx1024M
-Xss512k
-XX:+AggressiveOpts
-XX:+UseBiasedLocking
-XX:PermSize=256M
-XX:MaxPermSize=512M
-XX:+DisableExplicitGC
-XX:MaxTenuringThreshold=31
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC  
-XX:+CMSParallelRemarkEnabled
-XX:+UseCMSCompactAtFullCollection
-XX:LargePageSizeInBytes=128m  
-XX:+UseFastAccessorMethods
-XX:+UseCMSInitiatingOccupancyOnly
-Djava.awt.headless=true"

三、查看当前系统open files的默认值:

ulimit -a

没改过是1024

搜了一下,据说tomcat有默认的日志分割功能,能每天自动生成类似catalina.2010-10-08.log的文件,但是默认catalina.out文件却一直增长.据说到一定大小时占磁盘空间(废话),影响性能,且会报错,这点暂时没发现.其他的查了一下logs文件确实如此. 
解决方法,使用cronolog进行日志切割,据说cronolog是个切割日志的小工具,可以切割很多种日志文件,有空得试试.具体做法如下: 
1、下载(最新版本) 
# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz 
2、解压缩 
# tar zxvf cronolog-1.6.2.tar.gz 
3、进入cronolog安装文件所在目录 
# cd cronolog-1.6.2 
4、运行安装 (如没有安装gcc,则先安装gcc)

安装gcc    
yum install gcc

--------------------------------
# ./configure 
# make 
# make install 
5、查看cronolog安装后所在目录(验证安装是否成功) 
# which cronolog 
一般情况下显示为:/usr/local/sbin/cronolog

6.进入Tomcat的bin目录,打开catalina.sh文件,找到tomcat启动的相关行,或者你直接查找catalina.out,一般我们修改下面行中的内容,

在else-412行左右里修改 
org.apache.catalina.startup.Bootstrap “$@” start  \ 
>> “$CATALINA_BASE”/logs/catalina.out 2>&1 & 
为 
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
      | /usr/local/sbin/cronolog  "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

注释掉         #touch "$CATALINA_OUT"

完成之后重起Tomcat就可以了,在logs目录下可以看到catalina.年-月-日.out的日志,是按日生成的。

-------------------------------------------------------------apache + tomcat 集群

Linux系统:阿里云CentOS 6.5版本
JDK:选用版本为jdk1.7.0_45,安装包jdk-7u67-linux-x64.tar.gz
Apache:选用版本2.4.7,安装包httpd-2.4.7.tar.gz
Tomcat:选用版本7.0.47,安装包apache-tomcat-7.0.11.tar.gz
JK:选用版本1.2.37,安装包:tomcat-connectors-1.2.37-src.tar.gz

1.yum install -y gcc gcc-c++ 如安装则不用执行
2.安装apr             --如上

3.安装 安装apr-util           --如上

4.安装pcre
  # tar -zxvf pcre-8.32.tar.gz
  # cd pcre-8.32
  #./configure --prefix=/usr/local/pcre
  # make
  # make install

5.安装 apache
  #tar -zxvf httpd-2.4.7.tar.gz
  #cd httpd-2.4.7
  设置安装路径和需要编译的模块。
  #./configure --prefix=/usr/local/apache --enable-so -enable-proxy -enable-proxy_http=shared--enable-module=so --enable-mods-shared=all --enable-proxy-ajp=shared  --enable-proxy-balancer--with-mpm=worker --with-apr=/usr/local/apr/   --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
  #make

#make install

6.Apache配置及测试
   安装完毕后,在测试启动apache之前先修改/apache/conf /httpd.conf。
   (1)查找ServerName,打开注释,将ServerName值改为对应的IP地址。
   (2)在DirectoryIndex中添加 index.jsp。

<IfModule dir_module>
         DirectoryIndex index.html index.jsp
   </IfModule>
   (3)以下2个注释去掉:
   #Include conf/extra/httpd-mpm.conf
   #Include conf/extra/httpd-default.conf

保存httpd.conf文件的修改,启动apache服务。
  # /usr/local/apache/bin/apachectl start
  浏览器访问http://127.0.0.1,提示无法连接。说明apache没有成功启动。查看错误日志(/apache/logs/error_log),发现如图错误信息。原因是httpd.conf里面的mod_slotmem_shm.so没有加载。将httpd.conf 文件中的“#LoadModule slotmem_shm_module              modules/mod_slotmem_shm.so”前的“#”去掉即可。

(4)重新启动apache并查看httpd是否运行。
     # /mnt/soft/apache/bin/apachectl start
     # ps -ef | grep httpd
(5)浏览器测试apache。在浏览器中访问http://127.0.0.1 。页面出现“It's Works!”字样即为成功。
     Apache的启动和关闭:
     在/usr/local/apache/bin下有可执行程序。
     启动apache服务:# /usr/local/apache/bin/apachectl start
     关闭apache服务:#  /usr/local/apache/bin/apachectl stop
     重启apache服务:#  /usr/local/apache/bin/apachectl restart

7.mod_jk安装:
     mod_jk的作用:连接apache和tomcat集群的中间件。
     mod_jk的安装包:tomcat-connectors-1.2.37-src.tar.gz。
安装步骤如下:
    (1)将安装包从/software目录拷贝到/usr/local目录下(图形界面下直接“复制”-“粘贴”即可)。
     #cp /software/tomcat-connectors-1.2.37-src.tar.gz /usr/local
    (2)定位到文件夹/usr/local/。
     #cd /usr/local
    (3)解压安装包到当前目录。
     # tar -zxvf tomcat-connectors-1.2.37-src.tar.gz
    (4)编译安装mod_jk。
     #cd tomcat-connectors-1.2.37-src/native
     # chmod 755 buildconf.sh
     # ./buildconf.sh

如果提示:

buildconf: checking installation...

buildconf: autoconf not found.

You need autoconf version 2.59 or newer installed

to build mod_jk from SVN.

解决:

[root@sony619 native]# yum install autoconf

执行[root@sony619 native]#./buildconf.sh 再次提示:

buildconf: libtool not found.

You need libtool version 1.4 or newer installed

to build mod_jk from SVN.

解决:

[root@sony619 native]#yum install libtool
     # ./configure --with-apxs=/usr/local/apache/bin/apxs
     # make
     # make install
    (5)将/tomcat-connectors-1.2.37/native/apache-2.0下的mod_jk.so文件拷贝到apache安装目录下的modules文件夹下面。
     # cp ./apache-2.0/mod_jk.so /usr/local/apache/modules/

配置/apache/conf /httpd.conf

#加载mod_jk Module
LoadModule jk_module modules/mod_jk.so
# Load Configure while Loading JK Connector Module  
<IfModule jk_module>  
  JkWorkersFile conf/workers.properties  
  JkMountFile conf/uriworkermap.properties  
  JkLogFile logs/mod_jk.log  
  JkLogLevel warn  
</IfModule>  
# Apache Server is working in worker mode  
<IfModule worker.c>  
 StartServers            5  
 ServerLimit            20  
 ThreadLimit           200  
 MaxClients           4000  
 MinSpareThreads        25  
 MaxSpareThreads       250  
 ThreadsPerChild       200  
 MaxRequestsPerChild  500  
</IfModule>

修改ServerName 12.34.56.78:80    你的IP

日志分割

修改 ErrorLog    305行左右

ErrorLog "| /mnt/soft/apache/bin/rotatelogs logs/%Y_%m_%d_error_log 86400 480"
 
修改CustomLog   336行左右

CustomLog  "| /mnt/soft/apache/bin/rotatelogs  logs/%Y_%m_%d.access.log 86400 480" common

8.利用memcached 实现session共享

查看系统是否带有该安装软件,如果有执行命令:
#rpm -e libevent-1.4.13-4.el6.x86_64 --nodeps(由于系统自带的版本旧,忽略依赖删除)

#tar zxvf memcached-1.4.15.tar.gz  -C /mnt/soft
# cd memcached-1.4.15
# ./configure --prefix=/mnt/soft/memcached --with-libevent=/mnt/soft/libevent/
#make
#make install
至此memcached安装完毕;

当启动memcached时经常不能发现libevent.so;可以通过以下命令检查:
   进入/usr/local/memcached/bin目录
   LD_DEBUG=help
./memcached -v
   LD_DEBUG=libs  ./ memcached
-v
   解决方法:(执行)
   ln -s /mnt/soft/libevent/lib/libevent-2.0.so.5 /lib64/libevent-2.0.so.5

启动memcached
1.打开一个终端,输入以下命令:启动
/mnt/soft/memcached/bin/memcached -d -m 256 -u root -p 11211 -c 1024 –P /tmp/memcached.pid

2.停止Memcache进程:
  # kill `cat /tmp/memcached.pid`
  # ps -ef | grep memcached
root 28914 1 0 07:27 ? 00:00:00 memcached -d -m 128 -l localhost -p 11211 -u root (启动ok)

二.调用的包
可从http://code.google.com/p/memcached-session-manager/downloads/list下载所需要的包.
需要注意的是,你只能从该网站下载到 memcached-session-manager-1.5.1.jar  /  memcached-session-manager-tc6-1.5.1.jar  /  msm-javolution-serializer-1.5.1.jar
这3个包,还有2个包分别是 : memcached-2.5.jar  /  javolution-5.5.1.jar这2个包,需要自己另外下载哦.
都是放到tomcat/lib下.

9 配置linux文件自动挂载

CentOS6.6服务器之间文件共享挂载

目的:因为服务器设置了负载均衡,多服务器的文件上传必然要同步,这里的目的把服务器1设置为主文件服务器

服务器1:192.168.1.100

服务器2:192.168.1.20

安装基础所需套件[每台]

1.nfs

[html] view plaincopyprint?

 

yum install nfs-utils

2.设置服务自启动

[plain] view plaincopyprint?

 

chkconfig rpcbind on

chkconfig nfs on

3.启动服务

[plain] view plaincopyprint?

 

service rpcbind start

service nfs start

Centos 服务器1 设置

[plain] view plaincopyprint?

 

/mnt/soft/apache-tomcat-7.0.11/webapps  192.168.1.20(rw,no_root_squash,no_all_squash,sync)
然后重新加载

[plain] view
plaincopyprint?

 

exportfs  -r  
共享列表查看

[plain] view
plaincopyprint?

 

exportfs

Centos 服务器2
设置

1.查看
服务器1 是否已共享

[plain] view
plaincopyprint?

 

showmount -e 192.168.1.100  
如果有共享,则会显示共享列表

3.挂载

[plain] view
plaincopyprint?

 

mount -t nfs -o rw 192.168.1.100:/mnt/soft/apache-tomcat-7.0.11/webapps /mnt/soft/apache-tomcat-7.0.11/webapps

4.查看是否已挂载

 

df -h

5.卸载,删除共享

[plain] view
plaincopyprint?

 

umount /www/wwwroot/www.lanmps.com/uploads

6.设置开机挂载,自动加载

方法一(推荐)
编辑
 /etc/rc.local 文件 ,加入
[html] view
plaincopyprint?

 

mount -t nfs -o rw 192.168.1.100:/www/wwwroot/www.lanmps.com/uploads /www/wwwroot/www.lanmps.com/uploads

linux安装tomcat及优化的更多相关文章

  1. Linux安装Tomcat外部不能访问

    Linux安装Tomcat后本地可以正常访问,可是这时Tomcat还不能被外界访问需要在Linux默认防护墙上打开8080端口 打开 /etc/sysconfig/iptables [root@loc ...

  2. Linux 安装tomcat 及过程中遇到的问题

    Linux 安装tomcat(tomcat能用的前提是系统已经安装jdk) 1.下载linux系统版tomcat,解压后通过ftp上传到Linux服务器     例:tomcat放在 /opt/tom ...

  3. linux安装tomcat后启动报错Cannot find ./catalina.sh的解决方法

    linux安装tomcat后启动报错: Cannot find ./catalina.shThe file is absent or does not have execute permissionT ...

  4. Linux 安装 Tomcat 详细教程

    Linux 安装Tomcat详细步骤 1. 前往tomcat官网复制下载链接, tomcat官网地址:https://tomcat.apache.org/ 2. 进入到指定目录,使用 wget 命令下 ...

  5. Linux安装Tomcat,运行Eclipse,web项目

    到官网下载:https://tomcat.apache.org/download-80.cgi  在这里是8.5.39版本 下载tar,gz 提取解压后,我这里是放到opt目录下 cd  切换目录 / ...

  6. Linux安装Tomcat服务器发布项目教程

    前面小Alan跟大家聊了在Linux服务器上jdk运行环境的安装以及redis非关系型数据库的安装,今天继续跟大家聊聊Tomcat的安装,以及将我们的项目发布上去并成功的访问. 第一步:将tomcat ...

  7. 图解linux安装tomcat(附常用命令)

    本例使用的是centos6.5版本,具体内容如下 一.首先到官方下载tomcat服务 http://tomcat.apache.org/download-70.cgi 二.将tomcat上传至linu ...

  8. Linux安装Tomcat,解决不能访问Manager App

      在Windows环境中安装Tomcat时,只需要在Tomcat目录下/conf/tomcat-user.xml文件增加用户就可以了.在Linux系统中添加了username还是不能访问. 一.Li ...

  9. Linux安装tomcat并部署JavaWeb项目

    前提条件: 安装tomcat前请确认一下信息: 系统安装了JDK,且JDK版本应与javaWeb所使用的JDK一致,具体操作可参见Linux下安装JDK. 打包了javaWeb的.war 文件,具体操 ...

随机推荐

  1. Adroid动态加载Apk-插件化技术框架(动态代理方案)

    技术:Android + java +动态加载+插件化   概述 为什么要使用插件化?在开发中,一个项目只会越做越大.初始版本可能是单一功能,后续可能加上各种风马牛不相及的功能.所以我认为插件化可以使 ...

  2. 【C语言天天练(三)】typedef具体解释

    引言: typedef能够看作type define的缩写,顾名思义就是类型定义,也就是说它仅仅是给已有的类型又一次定义了一个方便使用的别名.并没有产生新的数据类型. typedef与define的不 ...

  3. Atitit s2018.5 s5 doc list on com pc.docx  Acc 112237553.docx Acc baidu netdisk.docx Acc csdn 18821766710 attilax main num.docx Atiitt put post 工具 开发工具dev tool test.docx Atiitt 腾讯图像分类相册管家.docx

    Atitit s2018.5 s5  doc list on com pc.docx  Acc  112237553.docx Acc baidu netdisk.docx Acc csdn 1882 ...

  4. Ajax 请求头中常见content-type

    四种常见的 POST 提交数据方式 HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范.规范把 HTTP 请求分为三个部分:状态行.请求头.消息主体.协议规定 POST ...

  5. sfc /scannow命令如何能用虚拟光驱完成修复?(xp下的办法)

    我们先光盘文件或用WinRAR压缩软件将ISO文件解压缩到本地磁盘某目录下,如e:\winxp:   在ISO文件上右击,在弹出的菜单中选择“解压到”:   文件较多,久等一会解压完成后文件夹下有很多 ...

  6. linux下access函数

    Linux内核总是根据进程的有效用户ID和有效组ID来决定一个进程是否有权访问某个文件. 因此,在编写调整用户ID的程序时,在读写一个文件之前必须明确检查其用户是否原本就有对此文件的访问权限. 为了实 ...

  7. Android Studio Gradle Build Running 加速

    加速效果

  8. NuGet Packages are missing,This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.

    错误内容 This project references NuGet package(s) that are missing on this computer. Use NuGet Package R ...

  9. count(1)、count(*)与count(列名)的执行区别

    执行效果: 1.  count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了! 从执行计划来看,count(1)和coun ...

  10. 基于FeignClient提供简单的用户查询服务

    前言: 由于系统升级,之前的员工数据库(mongo库)被弃用,改为用python维护的mysql库,其他系统访问通过http请求,表结构对外不可见,其他系统之前对员工mongo库的依赖要解除.每套系统 ...