LNMT架构部署:Linux+Nginx+Mysql+Tomcat

    • LNMT架构部署:Linux+Nginx+Mysql+Tomcat
      • LNMT架构图:
      • 环境描述:
      • 在IP为192.168.228.23的服务器上安装和配置nginx(这里我使用源码安装nginx)
      • nginx安装后配置
      • 在IP为192.168.228.23上安装mysql(这里我使用二进制安装)
      • 在192.168.228.30这台虚拟机配置两台tomcat项目部署
      • 安装jdk环境
      • tomcat部署
      • 配置nginx

LNMT架构部署:Linux+Nginx+Mysql+Tomcat

LNMT架构图:

LNMT架构部署:Linux+Nginx+Mysql+Tomcat_第1张图片

环境描述:

虚拟机准备两台,一台作为nginx服务器+mysql服务器,IP为:192.168.228.23;另外一台作为2台Tomcat服务器,IP为:192.168.228.30。客户端发来请求,首先由nginx处理,如果为静态内容直接由nginx响应,将结果直接给客户端;如果为动态内容,则由nginx反代至后端的Tomcat服务器。

在IP为192.168.228.23的服务器上安装和配置nginx(这里我使用源码安装nginx)

关闭防火墙和selinux

[root@yxr ~]# systemctl stop firewalld
[root@yxr ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@yxr ~]# setenforce 0
[root@yxr ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config 

创建系统用户nginx

[root@yxr ~]# useradd -r -M -s /sbin/nologin nginx

安装依赖环境

[root@yxr ~]# yum -y install pcre-devel openssl openssl-devel gd-devel
[root@yxr ~]# yum -y groups mark install 'Development Tools'

创建日志存放目录

[root@yxr ~]# mkdir -p /var/log/nginx
[root@yxr ~]# chown -R nginx.nginx /var/log/nginx/

下载nginx

[root@yxr ~]# cd /usr/src/
[root@yxr src]# wget http://nginx.org/download/nginx-1.12.0.tar.gz

编译安装

[root@yxr src]# ls
debug  kernels  nginx-1.12.0.tar.gz
[root@yxr src]# tar xf nginx-1.12.0.tar.gz 
[root@yxr src]# cd nginx-1.12.0/
[root@yxr nginx-1.12.0]#./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-debug \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_image_filter_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log
[root@yxr nginx-1.12.0]# make -j 2 && make install

nginx安装后配置

配置环境变量
[root@yxr nginx-1.12.0]# echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh
[root@yxr nginx-1.12.0]# . /etc/profile.d/nginx.sh 

启动nginx

[root@yxr nginx-1.12.0]# nginx 
[root@yxr nginx-1.12.0]# ss -antl
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128           *:80                        *:*                  
LISTEN     0      128           *:22                        *:*                  
LISTEN     0      100    127.0.0.1:25                        *:*                  
LISTEN     0      128          :::22                       :::*                  
LISTEN     0      100         ::1:25                       :::*    

在IP为192.168.228.23上安装mysql(这里我使用二进制安装)

安装依赖包

[root@yxr ~]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel

创建用户和组

[root@yxr ~]# groupadd -r -g 306 mysql
[root@yxr ~]# useradd -M -s /sbin/nologin -g 306 -u 306 mysql

下载二进制格式的mysql软件包

[root@yxr ~]# cd /usr/src/
[root@yxr src]# wget https://downloads.mysql.com/archives/get/file/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

解压软件至/usr/local

[root@yxr src]# tar xf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@yxr src]# cd /usr/local/
[root@yxr local]# ls
bin  games    lib    libexec                              nginx  share
etc  include  lib64  mysql-5.7.22-linux-glibc2.12-x86_64  sbin   src
[root@yxr local]# ln -sv mysql-5.7.22-linux-glibc2.12-x86_64/ mysql
‘mysql’ -> ‘mysql-5.7.22-linux-glibc2.12-x86_64/’
[root@yxr local]# ll
total 0
drwxr-xr-x.  2 root root   6 Nov  5  2016 bin
drwxr-xr-x.  2 root root   6 Nov  5  2016 etc
drwxr-xr-x.  2 root root   6 Nov  5  2016 games
drwxr-xr-x.  2 root root   6 Nov  5  2016 include
drwxr-xr-x.  2 root root   6 Nov  5  2016 lib
drwxr-xr-x.  2 root root   6 Nov  5  2016 lib64
drwxr-xr-x.  2 root root   6 Nov  5  2016 libexec
lrwxrwxrwx.  1 root root  36 Sep  5 17:45 mysql -> mysql-5.7.22-linux-glibc2.12-x86_64/
drwxr-xr-x.  9 root root 129 Sep  5 17:45 mysql-5.7.22-linux-glibc2.12-x86_64
drwxr-xr-x. 11 root root 151 Sep  5 17:29 nginx
drwxr-xr-x.  2 root root   6 Nov  5  2016 sbin
drwxr-xr-x.  5 root root  49 Aug 10 14:26 share
drwxr-xr-x.  2 root root   6 Nov  5  2016 src

修改目录/usr/local/mysql的属主属组

[root@yxr local]# chown -R mysql.mysql /usr/local/mysql
[root@yxr local]# ll /usr/local/mysql -d
lrwxrwxrwx. 1 mysql mysql 36 Sep  5 17:45 /usr/local/mysql -> mysql-5.7.22-linux-glibc2.12-x86_64/

添加环境变量

[root@yxr local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@yxr local]# . /etc/profile.d/mysql.sh 
[root@yxr local]# echo $PATH
/usr/local/mysql/bin:/usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

建立数据存放目录

[root@yxr local]# mkdir /opt/data
[root@yxr local]# chown -R mysql.mysql /opt/data/
[root@yxr local]# ll /opt/
total 0
drwxr-xr-x. 2 mysql mysql 6 Sep  5 17:51 data

初始化数据库

[root@yxr local]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/data/
2018-09-05T09:54:31.999648Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-09-05T09:54:34.926885Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-09-05T09:54:35.240951Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-09-05T09:54:35.314460Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: b1e771d6-b0f1-11e8-8761-000c29989243.
2018-09-05T09:54:35.317332Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-09-05T09:54:35.322159Z 1 [Note] A temporary password is generated for root@localhost: sQae/i06ukPC  //临时密码

配置mysql

[root@yxr local]# ln -sv /usr/local/mysql/include/ /usr/local/include/mysql
‘/usr/local/include/mysql’ -> ‘/usr/local/mysql/include/’
[root@yxr local]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@yxr local]# ldconfig -v

生成配置文件

[root@yxr local]# cat > /etc/my.cnf <<EOF
> [mysqld]
> basedir = /usr/local/mysql
> datadir = /opt/data
> socket  = /tmp/mysql.sock
> port = 3306
> pid-file = /opt/data/mysql.pid
> user = mysql
> skip-name-resolve
> EOF

配置服务启动脚本

[root@yxr local]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@yxr local]# sed -ri 's#^(basedir=).*#\1/usr/local/mysql#g' /etc/init.d/mysqld
[root@yxr local]# sed -ri 's#^(datadir=).*#\1/opt/data#g' /etc/init.d/mysqld 

启动mysql

[root@yxr local]# service mysqld start
Starting MySQL.Logging to '/opt/data/yxr.err'.
. SUCCESS! 
[root@yxr local]# ps -ef | grep mysql
root      35507      1  0 18:05 pts/1    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/opt/data --pid-file=/opt/data/mysql.pid
mysql     35685  35507  3 18:05 pts/1    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/opt/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=yxr.err --pid-file=/opt/data/mysql.pid --socket=/tmp/mysql.sock --port=3306
root      35717   1552  0 18:05 pts/1    00:00:00 grep --color=auto mysql
[root@yxr local]# ss -antl
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128           *:80                        *:*                  
LISTEN     0      128           *:22                        *:*                  
LISTEN     0      100    127.0.0.1:25                        *:*                  
LISTEN     0      128          :::22                       :::*                  
LISTEN     0      100         ::1:25                       :::*                  
LISTEN     0      80           :::3306                     :::*    

修改密码,使用临时密码登录

[root@yxr local]# mysql -uroot -p

mysql> set password = password('yaoxiaorong!');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> exit
Bye

在192.168.228.30这台虚拟机配置两台tomcat项目部署

关闭防火墙和selinux

[root@arongya ~]# systemctl stop firewalld
[root@arongya ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@arongya ~]# setenforce 0
[root@arongya ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config

安装jdk环境

安装jdk环境
[root@arongya ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
查看安装的版本
[root@arongya ~]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

tomcat部署

下载tomcat

[root@arongya ~]# cd /usr/src/
[root@arongya src]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.8/bin/apache-tomcat-9.0.8.tar.gz

解压部署,安装两个tomcat服务器,需要解压两次

[root@arongya src]# ls
apache-tomcat-9.0.8.tar.gz  debug  kernels
[root@arongya src]# tar xf apache-tomcat-9.0.8.tar.gz -C /usr/local/
[root@arongya src]# cd /usr/local/
[root@arongya local]# ls
apache-tomcat-9.0.8  etc    include  lib64    sbin   src
bin                  games  lib      libexec  share
[root@arongya local]# mv apache-tomcat-9.0.8/ yaoxiaorong   //为了避免混淆两台,这里重新创建一个目录存放第一台tomcat
[root@arongya local]# ls yaoxiaorong/
bin   lib      logs    RELEASE-NOTES  temp     work
conf  LICENSE  NOTICE  RUNNING.txt    webapps
[root@arongya local]# cd /usr/src/
[root@arongya src]# ls
apache-tomcat-9.0.8.tar.gz  debug  kernels
[root@arongya src]# tar xf apache-tomcat-9.0.8.tar.gz -C /usr/local/
[root@arongya src]# cd /usr/local/
[root@arongya local]# ls
apache-tomcat-9.0.8  etc    include  lib64    sbin   src
bin                  games  lib      libexec  share  yaoxiaorong

两台tomcat建立软链接

[root@arongya local]# ln -s yaoxiaorong/ tomcat
[root@arongya local]# ln -s apache-tomcat-9.0.8/ tomcat2
[root@arongya local]# ll
total 0
drwxr-xr-x. 9 root root 160 Sep  5 18:27 apache-tomcat-9.0.8
drwxr-xr-x. 2 root root   6 Nov  5  2016 bin
drwxr-xr-x. 2 root root   6 Nov  5  2016 etc
drwxr-xr-x. 2 root root   6 Nov  5  2016 games
drwxr-xr-x. 2 root root   6 Nov  5  2016 include
drwxr-xr-x. 2 root root   6 Nov  5  2016 lib
drwxr-xr-x. 2 root root   6 Nov  5  2016 lib64
drwxr-xr-x. 2 root root   6 Nov  5  2016 libexec
drwxr-xr-x. 2 root root   6 Nov  5  2016 sbin
drwxr-xr-x. 5 root root  49 Aug 24 09:15 share
drwxr-xr-x. 2 root root   6 Nov  5  2016 src
lrwxrwxrwx. 1 root root  12 Sep  5 18:28 tomcat -> yaoxiaorong/
lrwxrwxrwx. 1 root root  20 Sep  5 18:29 tomcat2 -> apache-tomcat-9.0.8/
drwxr-xr-x. 9 root root 160 Sep  5 18:24 yaoxiaorong

修改其中一台tomcat配置文件,避免端口冲突,这里修改tomcat2的配置文件,配置文件在/usr/local/tomcat2/conf/server.xml

修改3个地方
...
[root@arongya local]# vim /usr/local/tomcat2/conf/server.xml 
"8006" shutdown="SHUTDOWN">   //将8005修改成8006或者其他
  "org.apache.catalina.startup.VersionLoggerListener" />
...
   "8081" protocol="HTTP/1.1"  8080修改成8081或者其他
               connectionTimeout="20000"
               redirectPort="8444" />  8443修改成8444或者其他
...
    "8010" protocol="AJP/1.3" redirectPort="8444" />   8009修改成8010 8443修改成8444

在/usr/local/tomcat/webapps和/usr/local/tomcat/webapps中写不同字样的java页面
tomcat

[root@arongya ~]# cd /usr/local/tomcat/webapps/
[root@arongya webapps]# ls
docs  examples  host-manager  manager  ROOT
[root@arongya webapps]# mkdir test
[root@arongya webapps]# vim index.jsp
[root@arongya webapps]# cat index.jsp 


     test page<<span class="hljs-regexp">/title>
</head</span>>
<bady>
    <%
      out.println(<span class="hljs-string">"hello world"</span>);
    <span class="hljs-variable">%></span>
<<span class="hljs-regexp">/body>
</html</span>>
[root<span class="hljs-variable">@arongya</span> webapps]<span class="hljs-comment"># mv index.jsp test/</span></code></pre> 
  <p>tomcat2</p> 
  <pre class="prettyprint"><code class=" hljs perl">[root<span class="hljs-variable">@arongya</span> webapps]<span class="hljs-comment"># cd /usr/local/tomcat2/webapps/</span>
[root<span class="hljs-variable">@arongya</span> webapps]<span class="hljs-comment"># ls</span>
docs  examples  host-manager  manager  ROOT
[root<span class="hljs-variable">@arongya</span> webapps]<span class="hljs-comment"># mkdir test</span>
[root<span class="hljs-variable">@arongya</span> webapps]<span class="hljs-comment"># cd test/</span>
[root<span class="hljs-variable">@arongya</span> test]<span class="hljs-comment"># vim index.jsp</span>
[root<span class="hljs-variable">@arongya</span> test]<span class="hljs-comment"># cat index.jsp </span>
<html>
<head>
     <title>test page<<span class="hljs-regexp">/title>
</head</span>>
<body>
    <%
      out.println(<span class="hljs-string">"wwww.ddd"</span>);
    <span class="hljs-variable">%></span>
<<span class="hljs-regexp">/body>
</html</span>></code></pre> 
  <p>开启2台tomcat服务</p> 
  <pre class="prettyprint"><code class=" hljs sql">[root@arongya test]# /usr/local/tomcat/bin/catalina.sh <span class="hljs-operator"><span class="hljs-keyword">start</span>
<span class="hljs-keyword">Using</span> CATALINA_BASE:   /usr/<span class="hljs-keyword">local</span>/tomcat
<span class="hljs-keyword">Using</span> CATALINA_HOME:   /usr/<span class="hljs-keyword">local</span>/tomcat
<span class="hljs-keyword">Using</span> CATALINA_TMPDIR: /usr/<span class="hljs-keyword">local</span>/tomcat/temp
<span class="hljs-keyword">Using</span> JRE_HOME:        /usr
<span class="hljs-keyword">Using</span> CLASSPATH:       /usr/<span class="hljs-keyword">local</span>/tomcat/bin/bootstrap.jar:/usr/<span class="hljs-keyword">local</span>/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@arongya test]# /usr/<span class="hljs-keyword">local</span>/tomcat2/bin/catalina.sh <span class="hljs-keyword">start</span>
<span class="hljs-keyword">Using</span> CATALINA_BASE:   /usr/<span class="hljs-keyword">local</span>/tomcat2
<span class="hljs-keyword">Using</span> CATALINA_HOME:   /usr/<span class="hljs-keyword">local</span>/tomcat2
<span class="hljs-keyword">Using</span> CATALINA_TMPDIR: /usr/<span class="hljs-keyword">local</span>/tomcat2/temp
<span class="hljs-keyword">Using</span> JRE_HOME:        /usr
<span class="hljs-keyword">Using</span> CLASSPATH:       /usr/<span class="hljs-keyword">local</span>/tomcat2/bin/bootstrap.jar:/usr/<span class="hljs-keyword">local</span>/tomcat2/bin/tomcat-juli.jar
[root@arongya test]# ss -antl
State      Recv-Q Send-Q <span class="hljs-keyword">Local</span> Address:Port               Peer Address:Port              
LISTEN     <span class="hljs-number">0</span>      <span class="hljs-number">128</span>           *:<span class="hljs-number">22</span>                        *:*                  
LISTEN     <span class="hljs-number">0</span>      <span class="hljs-number">100</span>    <span class="hljs-number">127.0</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span>:<span class="hljs-number">25</span>                        *:*                  
LISTEN     <span class="hljs-number">0</span>      <span class="hljs-number">100</span>          :::<span class="hljs-number">8080</span>                     :::*                  
LISTEN     <span class="hljs-number">0</span>      <span class="hljs-number">100</span>          :::<span class="hljs-number">8081</span>                     :::*                  
LISTEN     <span class="hljs-number">0</span>      <span class="hljs-number">128</span>          :::<span class="hljs-number">22</span>                       :::*                  
LISTEN     <span class="hljs-number">0</span>      <span class="hljs-number">100</span>         ::<span class="hljs-number">1</span>:<span class="hljs-number">25</span>                       :::*                  
LISTEN     <span class="hljs-number">0</span>      <span class="hljs-number">1</span>      ::ffff:<span class="hljs-number">127.0</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span>:<span class="hljs-number">8005</span>                     :::*                  
LISTEN     <span class="hljs-number">0</span>      <span class="hljs-number">1</span>      ::ffff:<span class="hljs-number">127.0</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span>:<span class="hljs-number">8006</span>                     :::*                  
LISTEN     <span class="hljs-number">0</span>      <span class="hljs-number">100</span>          :::<span class="hljs-number">8009</span>                     :::*                  
LISTEN     <span class="hljs-number">0</span>      <span class="hljs-number">100</span>          :::<span class="hljs-number">8010</span>                     :::*        </span></code></pre> 
  <p>验证:浏览器分别输入192.168.228.30:8081/test和192.168.228.30:8080/test,能访问说明部署成功 <br> <a href="http://img.e-com-net.com/image/info8/0b64ba1a77f745a7901d2a3777764653.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/0b64ba1a77f745a7901d2a3777764653.jpg" alt="LNMT架构部署:Linux+Nginx+Mysql+Tomcat_第2张图片" title="" width="650" height="248" style="border:1px solid black;"></a> <br> <a href="http://img.e-com-net.com/image/info8/9a662ba6b97b4cb794ffc7fdbfe130ba.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/9a662ba6b97b4cb794ffc7fdbfe130ba.jpg" alt="LNMT架构部署:Linux+Nginx+Mysql+Tomcat_第3张图片" title="" width="650" height="248" style="border:1px solid black;"></a> <br> <a href="http://img.e-com-net.com/image/info8/29ddb8f01bc248cea6ef23764c885332.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/29ddb8f01bc248cea6ef23764c885332.jpg" alt="LNMT架构部署:Linux+Nginx+Mysql+Tomcat_第4张图片" title="" width="650" height="319" style="border:1px solid black;"></a> <br> <a href="http://img.e-com-net.com/image/info8/5ef7843a5ebe4bd0b351a4ffcd8348ee.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/5ef7843a5ebe4bd0b351a4ffcd8348ee.jpg" alt="LNMT架构部署:Linux+Nginx+Mysql+Tomcat_第5张图片" title="" width="650" height="291" style="border:1px solid black;"></a></p> 
  <h3 id="配置nginx">配置nginx</h3> 
  <p>在nginx配置文件修改配置文件,配置负载均衡和两个tomcat的反向代理</p> 
  <pre class="prettyprint"><code class=" hljs axapta">
    sendfile        on;
    keepalive_timeout  <span class="hljs-number">65</span>;

        upstream web {   <span class="hljs-comment">//添加此内容,实现负载均衡</span>
          <span class="hljs-keyword">server</span> <span class="hljs-number">192.168</span><span class="hljs-number">.228</span><span class="hljs-number">.30</span>:<span class="hljs-number">8080</span>;
          <span class="hljs-keyword">server</span> <span class="hljs-number">192.168</span><span class="hljs-number">.228</span><span class="hljs-number">.30</span>:<span class="hljs-number">8081</span>;
        }

    <span class="hljs-keyword">server</span> {
        listen       <span class="hljs-number">80</span>;
        server_name  localhost;


        location / {
            root   html;
            <span class="hljs-keyword">index</span>  <span class="hljs-keyword">index</span>.html <span class="hljs-keyword">index</span>.htm;
        }

        location ~* \.(jsp|do)$ {    \\添加此行内容,实现动静分离
             proxy_pass http:<span class="hljs-comment">//web;</span>
        }
</code></pre> 
  <p>检查语法并加载nginx</p> 
  <pre class="prettyprint"><code class=" hljs applescript">[root@yxr <span class="hljs-keyword">local</span>]<span class="hljs-comment"># vim /usr/local/nginx/conf/nginx.conf</span>
[root@yxr <span class="hljs-keyword">local</span>]<span class="hljs-comment"># nginx -t</span>
nginx: <span class="hljs-keyword">the</span> configuration <span class="hljs-type">file</span> /usr/<span class="hljs-keyword">local</span>/nginx/conf/nginx.conf syntax <span class="hljs-keyword">is</span> ok
nginx: configuration <span class="hljs-type">file</span> /usr/<span class="hljs-keyword">local</span>/nginx/conf/nginx.conf test <span class="hljs-keyword">is</span> successful
[root@yxr <span class="hljs-keyword">local</span>]<span class="hljs-comment"># nginx -s reload</span></code></pre> 
  <p>在浏览器验证</p> 
  <p><a href="http://img.e-com-net.com/image/info8/ebdecba7b98e453f9f023fa2fcc7ce1f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ebdecba7b98e453f9f023fa2fcc7ce1f.jpg" alt="LNMT架构部署:Linux+Nginx+Mysql+Tomcat_第6张图片" title="" width="650" height="302" style="border:1px solid black;"></a> <br> <a href="http://img.e-com-net.com/image/info8/31599c30b4744a019601b662ec3a363d.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/31599c30b4744a019601b662ec3a363d.jpg" alt="LNMT架构部署:Linux+Nginx+Mysql+Tomcat_第7张图片" title="" width="650" height="328" style="border:1px solid black;"></a> <br> <a href="http://img.e-com-net.com/image/info8/ddfb73007ccd469e82e44f8edf786d50.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ddfb73007ccd469e82e44f8edf786d50.jpg" alt="LNMT架构部署:Linux+Nginx+Mysql+Tomcat_第8张图片" title="" width="650" height="303" style="border:1px solid black;"></a></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1294738844507250688"></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">你可能感兴趣的:(LNMT架构部署:Linux+Nginx+Mysql+Tomcat)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1829224261563281408.htm"
                           title="nginx + lnmp架构部署" target="_blank">nginx + lnmp架构部署</a>
                        <span class="text-muted">时迁10</span>
<a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>一、nginx简介Nginx是一款轻量级的Web服务器/反向代理服务器及电子(IMAP/POP3)代理服务器。Nginx由俄罗斯的程序设计师IgorSysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler使用。第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,n</div>
                    </li>
                    <li><a href="/article/1828009385062920192.htm"
                           title="Kubernetes存储Volume" target="_blank">Kubernetes存储Volume</a>
                        <span class="text-muted">henan程序媛</span>
<a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/Kubernetes/1.htm">Kubernetes</a><a class="tag" taget="_blank" href="/search/k8s/1.htm">k8s</a><a class="tag" taget="_blank" href="/search/pod/1.htm">pod</a>
                        <div>数据是一个企业的发展核心,他涉及到数据存储和数据交换的内容。在生产环境中尤为重要的一部分,在Kubernetes中另一个重要的概念就是数据持久化Volume。一、Volume的概念对于大多数的项目而言,数据文件的存储是非常常见的需求,比如存储用户上传的头像、文件以及数据库的数据。在Kubernetes中,由于应用的部署具有高度的可扩展性和编排能力(不像传统架构部署在固定的位置),因此把数据存放在容</div>
                    </li>
                    <li><a href="/article/1827937154848878592.htm"
                           title="基于gunicorn+flask+docker模型高并发部署" target="_blank">基于gunicorn+flask+docker模型高并发部署</a>
                        <span class="text-muted">Dingdangr</span>
<a class="tag" taget="_blank" href="/search/gunicorn/1.htm">gunicorn</a>
                        <div>基于Gunicorn+Flask+Docker模型的高并发部署是一种现代且高效的微服务架构部署方式,它结合了Flask作为Web框架的简洁性、Gunicorn作为WSGIHTTP服务器的性能优势,以及Docker容器化技术的一致性和可移植性。以下将详细阐述该模型的高并发部署过程:一、环境准备安装Python:确保系统中已安装Python,这是Flask和Gunicorn运行的基础环境。安装Flas</div>
                    </li>
                    <li><a href="/article/1826802608220762112.htm"
                           title="LinuxProbe 0x20 使用LNMP架构部署动态网站环境" target="_blank">LinuxProbe 0x20 使用LNMP架构部署动态网站环境</a>
                        <span class="text-muted">蓝色的&梦</span>
<a class="tag" taget="_blank" href="/search/LinuxProbe/1.htm">LinuxProbe</a><a class="tag" taget="_blank" href="/search/RHEL8/1.htm">RHEL8</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a>
                        <div>LNMP动态网站部署架构是一套由Linux+Nginx+MySQL+PHP组成的动态网站系统解决方案,具有免费、高效、扩展性强且资源消耗低等优良特性,目前正在被广泛使用。源码包程序在RPM(红帽软件包管理器)技术出现之前,Linux系统运维人员只能通过源码包的方式来安装各种服务程序,这是一件非常繁琐且极易消耗时间与耐心的事情;而且在安装、升级、卸载程序时还要考虑到与其他程序或函数库的相互依赖关系,</div>
                    </li>
                    <li><a href="/article/1759788316858871808.htm"
                           title="电商实战练习部署" target="_blank">电商实战练习部署</a>
                        <span class="text-muted">lisus2007</span>
<a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E6%8C%81%E7%BB%AD%E9%83%A8%E7%BD%B2/1.htm">持续部署</a>
                        <div>基于阿里云ECS服务器实战部署1单架构部署方案1.1部署流程传统方案基于docker2持续集成&持续部署方案随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。互联网软件的开发和发布,已经形成了一套标准流程。如:在互联网企业中,每时每刻都有需求的变更,bug的修复,为了将改动及时更新到生产服务器上,下面的图片我们需要每天执行N多次</div>
                    </li>
                    <li><a href="/article/1759696436217344000.htm"
                           title="企业如何上云?阿里云推出企业上云解决方案,助力企业快速上云" target="_blank">企业如何上云?阿里云推出企业上云解决方案,助力企业快速上云</a>
                        <span class="text-muted">阿里云最新优惠和活动汇总</span>

                        <div>阿里云推出企业上云解决方案一键部署方案,常用架构组合3779.4元/年起,助力企业快速完成高可用、高性能应用架构部署。适用于企业网站建站、云上网站经典架、构业务上云和高可用架构等场景。企业上云活动图.png一、网站建站上云解决方案网站建站方案图1.png1、业务场景企业门户官网、论坛/日均PV低于5万的中小型网站。2、方案优势1.按需付费,快速开通2.构架简洁,运维低投入3.配备基础防护,安全省心</div>
                    </li>
                    <li><a href="/article/1757658850032369664.htm"
                           title="混合云架构的原则与特点" target="_blank">混合云架构的原则与特点</a>
                        <span class="text-muted">杰克逊的日记</span>
<a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a>
                        <div>什么是混合云架构?混合云架构结合了两种或多种类型的云环境。混合云架构部署是公有云和私有云的组合,也可能包括本地遗留基础设施。为了让云真正成为混合云架构,这些不同的云环境必须彼此紧密互连,本质上充当可组合的基础架构。几乎所有混合云架构都至少包含一个公有云。混合云架构有点像混合动力汽车。混合动力汽车结合了两种截然不同的技术:汽油发动机和电动发动机。这两种技术的作用方式完全不同,各有优缺点。然而,将两者</div>
                    </li>
                    <li><a href="/article/1756025365479833600.htm"
                           title="Redis哨兵集群工作原理及架构部署(八)" target="_blank">Redis哨兵集群工作原理及架构部署(八)</a>
                        <span class="text-muted">zhengjq~</span>
<a class="tag" taget="_blank" href="/search/redis%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/1.htm">redis从入门到精通</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
                        <div>目录1.redis哨兵模式原理2.搭建redis哨兵集群2.1.环境准备2.2.在所有机器上部署redis2.3.三台redis部署完成2.4.配置redis主从2.5.部署哨兵进程sentinel2.6.启动哨兵观察配置文件的变化2.7.模拟主库故障验证应用是否可用2.8.主库挂掉其他节点配置文件的变化1.redis哨兵模式原理redis主从复制的不足:当主库宕机后,slave无法自己变成主库,</div>
                    </li>
                    <li><a href="/article/1754729294501789696.htm"
                           title="使用LNMP架构部署动态网站环境" target="_blank">使用LNMP架构部署动态网站环境</a>
                        <span class="text-muted">独留西厢梦</span>

                        <div>LNMP动态网站部署架构是一套由Linux+Nginx+MySQL+PHP组成的动态网站系统解决方案,具有免费、高效、扩展性强且资源消耗低等优良特性。源码包程序优点:源码包的可移植性非常好,几乎可以在任何Linux系统中安装使用,而RPM软件包是针对特定系统和架构编写的指令集,必须严格地符合执行环境才能顺利安装(即只会去“生硬地”安装服务程序)。使用源码包安装服务程序时会有一个编译过程,因此可以更</div>
                    </li>
                    <li><a href="/article/1754729036094914560.htm"
                           title="LNMP架构部署动态网站" target="_blank">LNMP架构部署动态网站</a>
                        <span class="text-muted">justin_861004</span>
<a class="tag" taget="_blank" href="/search/OS/1.htm">OS</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>一、服务器环境搭建在使用源码包安装服务程序之前,首先要让安装主机具备编译程序源码的环境。这需要具备C语言、C++语言、Perl语言的编译器,以及各种常见的编译支持函数库程序。因此请先配置妥当软件仓库,然后把下面列出的这些软件包都统统安装上:配置服务器本地YUM源软件仓库[root@TradeProbe~]#mkdir-p/media/cdrom#挂载光盘并设置为开机自动挂载[root@TradeP</div>
                    </li>
                    <li><a href="/article/1754656277968994304.htm"
                           title="34 使用 LNMP 架构部署动态网站环境" target="_blank">34 使用 LNMP 架构部署动态网站环境</a>
                        <span class="text-muted">_trick</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/RHCE/1.htm">RHCE</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/redhat/1.htm">redhat</a>
                        <div>源码包程序LNMP动态网站部署架构LNMP动态网站部署架构是一套由Linux+Nginx+MySQL+PHP组成的动态网站系统解决方案。1.准备工作在使用源码包安装服务程序之前,首先要让安装主机具备编译程序源码的环境。这需要具备C语言、C++语言、Perl语言的编译器,以及各种常见的编译支持函数库程序。因此请先配置妥当软件仓库dnf-yinstallapr*autoconfautomakenuma</div>
                    </li>
                    <li><a href="/article/1754378357115469824.htm"
                           title="SpringCloud中服务间通信(应用间通信)-亲测有效-源码下载-连载2" target="_blank">SpringCloud中服务间通信(应用间通信)-亲测有效-源码下载-连载2</a>
                        <span class="text-muted">雾林小妖</span>
<a class="tag" taget="_blank" href="/search/springCloud/1.htm">springCloud</a><a class="tag" taget="_blank" href="/search/java%E9%A1%B9%E7%9B%AE%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/1.htm">java项目解决方案</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E9%97%B4%E9%80%9A%E4%BF%A1/1.htm">微服务间通信</a><a class="tag" taget="_blank" href="/search/RestTemplate%E4%BD%BF%E7%94%A8/1.htm">RestTemplate使用</a><a class="tag" taget="_blank" href="/search/OpenFeign%E4%BD%BF%E7%94%A8/1.htm">OpenFeign使用</a><a class="tag" taget="_blank" href="/search/Eureka/1.htm">Eureka</a><a class="tag" taget="_blank" href="/search/Server/1.htm">Server</a><a class="tag" taget="_blank" href="/search/Eureka/1.htm">Eureka</a><a class="tag" taget="_blank" href="/search/Client/1.htm">Client</a><a class="tag" taget="_blank" href="/search/SpringCloud%E6%B3%A8%E5%86%8C%E4%B8%AD%E5%BF%83/1.htm">SpringCloud注册中心</a>
                        <div>1、微服务概述本案例主要解决微服务之间的相互调用问题如果已经理解什么是微服务,可以直接跳到实战。本案例采用springBoot3.1.7+springCloud2022.0.4版本测试本案例使用springboot2.7.x版本测试代码相同1、微服务是分布式架构,那么为什么要需要使用分布式架构?因为单体服务是将所有的模块都放在一个项目中,这种架构部署简单,维护方便,但是随着功能的增加各个模块之间的</div>
                    </li>
                    <li><a href="/article/1754123478069428224.htm"
                           title="解决Django应用部署时激活链接缺少端口号的问题" target="_blank">解决Django应用部署时激活链接缺少端口号的问题</a>
                        <span class="text-muted">Narutolxy</span>
<a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/django/1.htm">django</a><a class="tag" taget="_blank" href="/search/sqlite/1.htm">sqlite</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>引言在当今技术迅速发展的时代,前后端分离已经成为现代Web开发的一项标准实践。然而,当我们将这些先进的架构部署到生产环境时,常常会遇到一些预料之外的挑战。问题说明在一个典型的例子中,我在Windows环境下开发了一个采用Django和Vue进行前后端分离的项目,并顺利完成了调试。随后,我开始在LinuxCentOS环境上进行部署。我的项目使用了Django的Djoser库来实现注册功能,其中包括向</div>
                    </li>
                    <li><a href="/article/1753549408516980736.htm"
                           title="DPVS 多活部署架构部署" target="_blank">DPVS 多活部署架构部署</a>
                        <span class="text-muted">码农心语</span>
<a class="tag" taget="_blank" href="/search/%E9%AB%98%E6%80%A7%E8%83%BD/1.htm">高性能</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/dpvs/1.htm">dpvs</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E6%B4%BB%E9%9B%86%E7%BE%A4/1.htm">多活集群</a><a class="tag" taget="_blank" href="/search/%E9%83%A8%E7%BD%B2/1.htm">部署</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E6%80%A7%E8%83%BD/1.htm">高性能</a>
                        <div>一、目标利用DPVS部署一个基于OSPF/ECMP的提供HTTP服务的多活高可用的测试环境。本次部署仅用于验证功能,不提供性能验证。配置两台DPVS组成集群、两台REALSERVER提供实际HTTP服务。注:在虚拟环境里面,通过在一台虚拟服务器上面安装FRRouting来模拟支持OSPF的路由器。二、组网架构![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://</div>
                    </li>
                    <li><a href="/article/1753028230580813824.htm"
                           title="RocketMQ架构" target="_blank">RocketMQ架构</a>
                        <span class="text-muted">倜傥村的少年</span>
<a class="tag" taget="_blank" href="/search/RocketMQ/1.htm">RocketMQ</a><a class="tag" taget="_blank" href="/search/rocketmq/1.htm">rocketmq</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a>
                        <div>文章目录技术架构部署架构技术架构RocketMQ架构上主要分为四部分,如上图所示:Producer:消息发布的角色,支持分布式集群方式部署。Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。Consumer:消息消费的角色,支持分布式集群方式部署。支持以push推,pull拉两种模式对消息进行消费。同时也支持集群方式和广播方式的消费</div>
                    </li>
                    <li><a href="/article/1752209718631219200.htm"
                           title="同城多活、两地三中心、单元化" target="_blank">同城多活、两地三中心、单元化</a>
                        <span class="text-muted">wangfy_</span>
<a class="tag" taget="_blank" href="/search/go/1.htm">go</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E5%8F%AF%E7%94%A8/1.htm">高可用</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%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a>
                        <div>首先1、同城多活2、两地三中心(冷备意义不大)3、单元化着重讲单元化【此部分转自:单元化架构解决了什么问题-知乎】首先,我们先来看下单元化是什么。所谓单元,是指一个能完成所有业务操作的自包含集合,在这个集合中包含了所有业务所需的所有服务,以及分配给这个单元的数据。假如一个业务有30亿数据,采用单元化架构部署的话,我们可以把数据拆解为3份,每份10亿数据,建立3个单元,这三个单元,业务服务一模一样,</div>
                    </li>
                    <li><a href="/article/1751795839359008768.htm"
                           title="Keepalived+Haproxy+Mysql(双主)高可用架构部署" target="_blank">Keepalived+Haproxy+Mysql(双主)高可用架构部署</a>
                        <span class="text-muted">seaskyccl</span>
<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/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/adb/1.htm">adb</a>
                        <div>一、背景公司原部署的Mysql架构为keepalived+Mysql双主,但是这个架构有个缺陷是所有的读写请求都在一台机器上(VIP所在机器),造成另一台机器空闲,导致资源浪费,为了解决这个问题,所以需要往Keepalived和mysql之间增加一个haproxy负载均衡插件,将读写请求均衡分布到两台机器上。二、安装keepalived心跳+Mysql双主架构(原有架构)参考:1、快速编译安装my</div>
                    </li>
                    <li><a href="/article/1750838747215183872.htm"
                           title="ELK 8.8.1 + Kafka 2.5.0 日志收集架构部署" target="_blank">ELK 8.8.1 + Kafka 2.5.0 日志收集架构部署</a>
                        <span class="text-muted">JP.Hu</span>
<a class="tag" taget="_blank" href="/search/ELK/1.htm">ELK</a><a class="tag" taget="_blank" href="/search/elk/1.htm">elk</a><a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a>
                        <div>ELK8.8.1+Kafka2.5.0日志收集架构部署服务版本节点角色分布服务兼容性JDK特殊性官方文档库系统优化部署ES集群1.下载ES源码包2.调整配置文件\$ES\_HOME/config/elasticsearch.yml3.调整配置文件\$ES\_HOME/config/jvm.option4.将配置文件分发至所有节点,并进行配置调整5.启动ES集群6.验证ES集群状态部署ES插件ES-</div>
                    </li>
                    <li><a href="/article/1750786809584959488.htm"
                           title="面试官灵魂一问,曾写过什么剧本?我:“简单的有,使用Ansible对lnmp架构部署!”" target="_blank">面试官灵魂一问,曾写过什么剧本?我:“简单的有,使用Ansible对lnmp架构部署!”</a>
                        <span class="text-muted">藻头男</span>
<a class="tag" taget="_blank" href="/search/ansible/1.htm">ansible</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>引言:今天带大家使用ansible进行对lnmp的架构部署,并做wordpress网站项目准备ansible端db1(安装nginx与php和项目)db2(安装数据库)并做好管理关联配置一、创建角色路径可以自定义,例/root/juben.dir#ansible-galaxyinitnginx#ansible-galaxyinitphp#ansible-galaxyinitmariadb#ansi</div>
                    </li>
                    <li><a href="/article/1750760940082577408.htm"
                           title="带你了解分布式系统的数据一致性问题" target="_blank">带你了解分布式系统的数据一致性问题</a>
                        <span class="text-muted">努力的老刘</span>

                        <div>老刘是一名即将找工作的研二学生,写博客一方面是复习总结大数据开发的知识点,一方面是希望能够帮助和自己一样自学编程的伙伴。由于老刘是自学大数据开发,博客中肯定会存在一些不足,还希望大家能够批评指正,让我们一起进步!今天给各位小伙伴聊聊分布式系统的数据一致性问题,这个一定要从服务器架构部署的发展历程讲起!文章篇幅较长,请大家耐心观看,精彩千万不要错过!1.背景1.1.集中式服务首先要讲的是集中式服务,</div>
                    </li>
                    <li><a href="/article/1749703987348652032.htm"
                           title="全球同服方案" target="_blank">全球同服方案</a>
                        <span class="text-muted">qixiang2013</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E7%AB%AF/1.htm">服务端</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>方案部署一套服务器在某地:适用于对网络延迟不敏感的游戏。该架构部署简单,主要覆盖区域的玩家游戏体验较好,没有数据一致性问题。但无法实现所有玩家就近接入。该架构适用于重点覆盖某区域的玩家集中部署,跨区域地区做网络优化,如加入udp,或者gate转发,适用于游戏服务器架构不适合作分布式部署、而运营发行方期望覆盖尽量多的区域,同时游戏网络延迟在200ms以内的游戏。但缺点是有延迟,对于某些类型游戏来说会</div>
                    </li>
                    <li><a href="/article/1749585014351216640.htm"
                           title="2 - 部署Redis集群架构" target="_blank">2 - 部署Redis集群架构</a>
                        <span class="text-muted">桑_榆</span>
<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/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>部署Redis集群架构部署Redis集群部署管理主机第一步准备ruby脚本的运行环境第二步创建脚本第三步查看脚本帮助信息配置6台Redis服务器第一步修改配置文件启用集群功能第二步重启redis服务第三步查看Redis-server进程状态(看到服务使用2个端口号为成功)创建集群在管理主机mgm57执行创建集群的命令查看集群信息访问集群存取数据在客户端连接集群中的主机集群管理向集群里添加新服务器把</div>
                    </li>
                    <li><a href="/article/1748294910743691264.htm"
                           title="OpenStack完整安装手册(CentOS6.2)" target="_blank">OpenStack完整安装手册(CentOS6.2)</a>
                        <span class="text-muted">BilyYang</span>
<a class="tag" taget="_blank" href="/search/openstack/1.htm">openstack</a><a class="tag" taget="_blank" href="/search/openstack/1.htm">openstack</a>
                        <div>OpenStack完整安装手册(CentOS6.2)TableofContents·1实验环境·2架构部署3控制节点安装o3.1前提工作o3.2NTP时钟服务安装o3.3MYSQL数据库服务安装o3.4RABBITMQ消息队列服务安装o3.5PYTHON-NOVACLIENT库安装o3.6KEYSTONE身份认证服务安装o3.7PYTHON-KEYSTONECLIENT库安装o3.8SWIFT对象</div>
                    </li>
                    <li><a href="/article/1748271839093735424.htm"
                           title="数字孪生智慧校园三维可视化运维检测平台" target="_blank">数字孪生智慧校园三维可视化运维检测平台</a>
                        <span class="text-muted">数峦云数字孪生三维可视化</span>
<a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%89%A9%E8%81%94%E7%BD%91/1.htm">物联网</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E6%85%A7%E5%9F%8E%E5%B8%82/1.htm">智慧城市</a><a class="tag" taget="_blank" href="/search/ue4/1.htm">ue4</a>
                        <div>一、案例介绍浙江工商大学智慧校园信息化建设工程,根据学校自身业务模块需求,采用虚幻引擎开发,结合了物联网\GIS\BIM等数据,利用视频流云渲染BS架构部署方案,量“身”打造了数字孪生智慧校园三维可视化运维检测平台,助力浙江工商大学的校园管理,旨在推动“智能+教育”的发展,为提供更加便捷、高效、直观的管理运维检测平台,提供更加智能、更加安全高效的校园环境。二、行业分析2.1国家教育信息化在国家教育</div>
                    </li>
                    <li><a href="/article/1746886340009541632.htm"
                           title="分布式事务" target="_blank">分布式事务</a>
                        <span class="text-muted">Onism_DreamBoat</span>
<a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a>
                        <div>分布式事务文章目录分布式事务分布式事务CAP定理一致性可用性分区容错产生的矛盾BASE理论如何解决分布式事务产生的问题SeataSeata架构部署TC服务微服务集成Seata引入依赖修改配置文件模拟异地TC集群将事务组映射配置到nacos微服务读取nacos配置Seata事务模式XA模式Seata的XA模型实现XA模式AT模式Seata的AT模型脏写问题优缺点实现AT模式TCC模式Seata的TC</div>
                    </li>
                    <li><a href="/article/1746714000873242624.htm"
                           title="企业网络两层和三层架构部署有何差异" target="_blank">企业网络两层和三层架构部署有何差异</a>
                        <span class="text-muted">爱网络爱Linux</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a>
                        <div>知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系!厦门微思网络https://www.xmws.cn华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-DatacomLinux\RHCE\RHCE9.0\RHCA\OracleOCP\CKA\K8S\CISP\CISSP\PMP企业网络两层和三层架构部署有何差异?园区网络的物理架构推荐采用树形组网,不</div>
                    </li>
                    <li><a href="/article/1746043906149072896.htm"
                           title="【InternLM 大模型实战】第一课" target="_blank">【InternLM 大模型实战】第一课</a>
                        <span class="text-muted">卖小麦←_←</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>书生·浦语大模型全链路开源体系前言环境背景开源历程开源模型应用从模型到应用全链条开源开放体系数据预训练微调高效微调框架XTuner评测OpenCompass开源评测平台架构部署LMdeploy大模型部署的全流程解决方案智能体轻量级智能体框架LagentAgentLego多模态智能体工具箱前言环境背景大模型受到广泛关注,chatgpt发布后两个月内月活破亿。大模型是通向人工智能的关键,是从专用模型到</div>
                    </li>
                    <li><a href="/article/1745972899811966976.htm"
                           title="Nightingale 夜莺监控系统 - 部署篇(1)" target="_blank">Nightingale 夜莺监控系统 - 部署篇(1)</a>
                        <span class="text-muted">云计算-Security</span>
<a class="tag" taget="_blank" href="/search/%E7%9B%91%E6%8E%A7/1.htm">监控</a><a class="tag" taget="_blank" href="/search/%E5%A4%9C%E8%8E%BA/1.htm">夜莺</a><a class="tag" taget="_blank" href="/search/Nightingale/1.htm">Nightingale</a>
                        <div>Author:rab官方文档:https://flashcat.cloud/docs目录一、概述二、架构2.1中心机房架构2.2边缘下沉式混杂架构三、环境四、部署4.1中心机房架构部署4.1.1MySQL4.1.2Redis4.1.3Prometheus4.1.4n9e4.1.5Categraf4.1.6验证4.1.7配置数据源4.2边缘下沉式混杂部署4.2.1架构分析4.2.2实验环境4.2.3</div>
                    </li>
                    <li><a href="/article/1745952062383865856.htm"
                           title="全面解析微服务" target="_blank">全面解析微服务</a>
                        <span class="text-muted">浮生带你学Java</span>
<a class="tag" taget="_blank" href="/search/Java%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">Java面试题</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>导读微服务是企业应用及数据变革升级的利器,也是数字化转型及运营不可或缺的助产工具,企业云原生更离不开微服务,同时云原生的既要最大化发挥微服务的价值,也要最大化弥补微服务的缺陷。本文梳理了微服务基础设施组件、服务网格、微服务技术框架知识,并提出了框架选择建议以及微服务的缺点及难题。1、单体应用传统应用系统多为单体应用、经典三层架构部署:“应用-数据库-中间件”,关于该业务领域的功能实现全部在一个软件</div>
                    </li>
                    <li><a href="/article/1745633784482512896.htm"
                           title="Java架构师系统架构部署和验证" target="_blank">Java架构师系统架构部署和验证</a>
                        <span class="text-muted">赵广陆</span>
<a class="tag" taget="_blank" href="/search/architect/1.htm">architect</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a>
                        <div>目录1导语2运行性模型-关注点和单元分解3运行性模型-架构转换4架构资产复用5架构验证6架构设计误区想学习架构师构建流程请跳转:Java架构师系统架构设计1导语2运行性模型-关注点和单元分解在设计和部署软件系统时需要考虑的运行性模型。运行性模型关注的是如何确保软件系统的可用性、性能、安全性和扩展性等质量维度。这些维度是系统运维的关键点,需要重点关注。此外,还提到了组织架构、部署情况和服务治理手段等</div>
                    </li>
                                <li><a href="/article/50.htm"
                                       title="java封装继承多态等" target="_blank">java封装继承多态等</a>
                                    <span class="text-muted">麦田的设计者</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/encapsulatopn/1.htm">encapsulatopn</a>
                                    <div>       最近一段时间看了很多的视频却忘记总结了,现在只能想到什么写什么了,希望能起到一个回忆巩固的作用。 
    1、final关键字 
      译为:最终的 
       &</div>
                                </li>
                                <li><a href="/article/177.htm"
                                       title="F5与集群的区别" target="_blank">F5与集群的区别</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/weblogic/1.htm">weblogic</a><a class="tag" taget="_blank" href="/search/%E9%9B%86%E7%BE%A4/1.htm">集群</a><a class="tag" taget="_blank" href="/search/F5/1.htm">F5</a>
                                    <div>        http请求配置不是通过集群,而是F5;集群是weblogic容器的,如果是ejb接口是通过集群。 
        F5同集群的差别,主要还是会话复制的问题,F5一把是分发http请求用的,因为http都是无状态的服务,无需关注会话问题,类似</div>
                                </li>
                                <li><a href="/article/304.htm"
                                       title="LeetCode[Math] - #7 Reverse Integer" target="_blank">LeetCode[Math] - #7 Reverse Integer</a>
                                    <span class="text-muted">Cwind</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a><a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a>
                                    <div>原题链接:#7 Reverse Integer 
  
要求: 
按位反转输入的数字 
例1: 输入 x = 123, 返回 321 
例2: 输入 x = -123, 返回 -321 
  
难度:简单 
  
分析: 
对于一般情况,首先保存输入数字的符号,然后每次取输入的末位(x%10)作为输出的高位(result = result*10 + x%10)即可。但</div>
                                </li>
                                <li><a href="/article/431.htm"
                                       title="BufferedOutputStream" target="_blank">BufferedOutputStream</a>
                                    <span class="text-muted">周凡杨</span>

                                    <div>     首先说一下这个大批量,是指有上千万的数据量。 
     例子: 
     有一张短信历史表,其数据有上千万条数据,要进行数据备份到文本文件,就是执行如下SQL然后将结果集写入到文件中! 
     select t.msisd</div>
                                </li>
                                <li><a href="/article/558.htm"
                                       title="linux下模拟按键输入和鼠标" target="_blank">linux下模拟按键输入和鼠标</a>
                                    <span class="text-muted">被触发</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>查看/dev/input/eventX是什么类型的事件, cat /proc/bus/input/devices 
设备有着自己特殊的按键键码,我需要将一些标准的按键,比如0-9,X-Z等模拟成标准按键,比如KEY_0,KEY-Z等,所以需要用到按键 模拟,具体方法就是操作/dev/input/event1文件,向它写入个input_event结构体就可以模拟按键的输入了。 
 
linux/in</div>
                                </li>
                                <li><a href="/article/685.htm"
                                       title="ContentProvider初体验" target="_blank">ContentProvider初体验</a>
                                    <span class="text-muted">肆无忌惮_</span>
<a class="tag" taget="_blank" href="/search/ContentProvider/1.htm">ContentProvider</a>
                                    <div>ContentProvider在安卓开发中非常重要。与Activity,Service,BroadcastReceiver并称安卓组件四大天王。 
在android中的作用是用来对外共享数据。因为安卓程序的数据库文件存放在data/data/packagename里面,这里面的文件默认都是私有的,别的程序无法访问。 
如果QQ游戏想访问手机QQ的帐号信息一键登录,那么就需要使用内容提供者COnte</div>
                                </li>
                                <li><a href="/article/812.htm"
                                       title="关于Spring MVC项目(maven)中通过fileupload上传文件" target="_blank">关于Spring MVC项目(maven)中通过fileupload上传文件</a>
                                    <span class="text-muted">843977358</span>
<a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/spring+mvc/1.htm">spring mvc</a><a class="tag" taget="_blank" href="/search/%E4%BF%AE%E6%94%B9%E5%A4%B4%E5%83%8F/1.htm">修改头像</a><a class="tag" taget="_blank" href="/search/%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6/1.htm">上传文件</a><a class="tag" taget="_blank" href="/search/upload/1.htm">upload</a>
                                    <div>Spring MVC 中通过fileupload上传文件,其中项目使用maven管理。 
  
1.上传文件首先需要的是导入相关支持jar包:commons-fileupload.jar,commons-io.jar 
因为我是用的maven管理项目,所以要在pom文件中配置(每个人的jar包位置根据实际情况定) 
<!-- 文件上传 start by zhangyd-c --&g</div>
                                </li>
                                <li><a href="/article/939.htm"
                                       title="使用svnkit api,纯java操作svn,实现svn提交,更新等操作" target="_blank">使用svnkit api,纯java操作svn,实现svn提交,更新等操作</a>
                                    <span class="text-muted">aigo</span>
<a class="tag" taget="_blank" href="/search/svnkit/1.htm">svnkit</a>
                                    <div> 原文:http://blog.csdn.net/hardwin/article/details/7963318 
  
import java.io.File;  
  
import org.apache.log4j.Logger;  
import org.tmatesoft.svn.core.SVNCommitInfo;  
import org.tmateso</div>
                                </li>
                                <li><a href="/article/1066.htm"
                                       title="对比浏览器,casperjs,httpclient的Header信息" target="_blank">对比浏览器,casperjs,httpclient的Header信息</a>
                                    <span class="text-muted">alleni123</span>
<a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/crawler/1.htm">crawler</a><a class="tag" taget="_blank" href="/search/header/1.htm">header</a>
                                    <div>		@Override
		protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
		{
			String type=req.getParameter("type");
			Enumeration es=re</div>
                                </li>
                                <li><a href="/article/1193.htm"
                                       title="java.io操作 DataInputStream和DataOutputStream基本数据流" target="_blank">java.io操作 DataInputStream和DataOutputStream基本数据流</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%B5%81/1.htm">流</a>
                                    <div>1,java中如果不保存整个对象,只保存类中的属性,那么我们可以使用本篇文章中的方法,如果要保存整个对象  先将类实例化  后面的文章将详细写到 
  
  
2,DataInputStream 是java.io包中一个数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。</div>
                                </li>
                                <li><a href="/article/1320.htm"
                                       title="车辆保险理赔案例" target="_blank">车辆保险理赔案例</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/%E8%BD%A6%E9%99%A9/1.htm">车险</a>
                                    <div>理赔案例: 
一货运车,运输公司为车辆购买了机动车商业险和交强险,也买了安全生产责任险,运输一车烟花爆竹,在行驶途中发生爆炸,出现车毁、货损、司机亡、炸死一路人、炸毁一间民宅等惨剧,针对这几种情况,该如何赔付。 
赔付建议和方案: 
客户所买交强险在这里不起作用,因为交强险的赔付前提是:“机动车发生道路交通意外事故”; 
如果是交通意外事故引发的爆炸,则优先适用交强险条款进行赔付,不足的部分由商业</div>
                                </li>
                                <li><a href="/article/1447.htm"
                                       title="学习Spring必学的Java基础知识(5)—注解" target="_blank">学习Spring必学的Java基础知识(5)—注解</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/spring/1.htm">spring</a>
                                    <div>        文章来源:http://www.iteye.com/topic/1123823,整理在我的博客有两个目的:一个是原文确实很不错,通俗易懂,督促自已将博主的这一系列关于Spring文章都学完;另一个原因是为免原文被博主删除,在此记录,方便以后查找阅读。 
  
        有必要对</div>
                                </li>
                                <li><a href="/article/1574.htm"
                                       title="【Struts2一】Struts2 Hello World" target="_blank">【Struts2一】Struts2 Hello World</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/Hello+world/1.htm">Hello world</a>
                                    <div>Struts2 Hello World应用的基本步骤 
创建Struts2的Hello World应用,包括如下几步: 
1.配置web.xml 
2.创建Action 
3.创建struts.xml,配置Action 
4.启动web server,通过浏览器访问 
  配置web.xml 
<?xml version="1.0" encoding="</div>
                                </li>
                                <li><a href="/article/1701.htm"
                                       title="【Avro二】Avro RPC框架" target="_blank">【Avro二】Avro RPC框架</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/rpc/1.htm">rpc</a>
                                    <div>1. Avro RPC简介 1.1. RPC 
 
 RPC逻辑上分为二层,一是传输层,负责网络通信;二是协议层,将数据按照一定协议格式打包和解包 
 从序列化方式来看,Apache Thrift 和Google的Protocol Buffers和Avro应该是属于同一个级别的框架,都能跨语言,性能优秀,数据精简,但是Avro的动态模式(不用生成代码,而且性能很好)这个特点让人非常喜欢,比较适合R</div>
                                </li>
                                <li><a href="/article/1828.htm"
                                       title="lua set get cookie" target="_blank">lua set get cookie</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/lua+cookie/1.htm">lua cookie</a>
                                    <div>lua:
local access_token = ngx.var.cookie_SGAccessToken
if access_token then
    ngx.header["Set-Cookie"] = "SGAccessToken="..access_token.."; path=/;Max-Age=3000"
end</div>
                                </li>
                                <li><a href="/article/1955.htm"
                                       title="java-打印不大于N的质数" target="_blank">java-打印不大于N的质数</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>

public class PrimeNumber {

	/**
	 * 寻找不大于N的质数
	 */
	public static void main(String[] args) {
		int n=100;
		PrimeNumber pn=new PrimeNumber();
		pn.printPrimeNumber(n);
		System.out.print</div>
                                </li>
                                <li><a href="/article/2082.htm"
                                       title="Spring源码学习-PropertyPlaceholderHelper" target="_blank">Spring源码学习-PropertyPlaceholderHelper</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>今天在看Spring 3.0.0.RELEASE的源码,发现PropertyPlaceholderHelper的一个bug 
当时觉得奇怪,上网一搜,果然是个bug,不过早就有人发现了,且已经修复: 
详见: 
http://forum.spring.io/forum/spring-projects/container/88107-propertyplaceholderhelper-bug 
 
</div>
                                </li>
                                <li><a href="/article/2209.htm"
                                       title="[逻辑与拓扑]布尔逻辑与拓扑结构的结合会产生什么?" target="_blank">[逻辑与拓扑]布尔逻辑与拓扑结构的结合会产生什么?</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E6%8B%93%E6%89%91/1.htm">拓扑</a>
                                    <div> 
   如果我们已经在一个工作流的节点中嵌入了可以进行逻辑推理的代码,那么成百上千个这样的节点如果组成一个拓扑网络,而这个网络是可以自动遍历的,非线性的拓扑计算模型和节点内部的布尔逻辑处理的结合,会产生什么样的结果呢? 
 
   是否可以形成一种新的模糊语言识别和处理模型呢?  大家有兴趣可以试试,用软件搞这些有个好处,就是花钱比较少,就算不成</div>
                                </li>
                                <li><a href="/article/2336.htm"
                                       title="ITEYE 都换百度推广了" target="_blank">ITEYE 都换百度推广了</a>
                                    <span class="text-muted">cuisuqiang</span>
<a class="tag" taget="_blank" href="/search/Google/1.htm">Google</a><a class="tag" taget="_blank" href="/search/AdSense/1.htm">AdSense</a><a class="tag" taget="_blank" href="/search/%E7%99%BE%E5%BA%A6%E6%8E%A8%E5%B9%BF/1.htm">百度推广</a><a class="tag" taget="_blank" href="/search/%E5%B9%BF%E5%91%8A/1.htm">广告</a><a class="tag" taget="_blank" href="/search/%E5%A4%96%E5%BF%AB/1.htm">外快</a>
                                    <div>以前ITEYE的广告都是谷歌的Google AdSense,现在都换成百度推广了。 
  
为什么个人博客设置里面还是Google AdSense呢? 
  
都知道Google AdSense不好申请,这在ITEYE上也不是讨论了一两天了,强烈建议ITEYE换掉Google AdSense。至少,用一个好申请的吧。 
  
什么时候能从ITEYE上来点外快,哪怕少点</div>
                                </li>
                                <li><a href="/article/2463.htm"
                                       title="新浪微博技术架构分析" target="_blank">新浪微博技术架构分析</a>
                                    <span class="text-muted">dalan_123</span>
<a class="tag" taget="_blank" href="/search/%E6%96%B0%E6%B5%AA%E5%BE%AE%E5%8D%9A/1.htm">新浪微博</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a>
                                    <div>新浪微博在短短一年时间内从零发展到五千万用户,我们的基层架构也发展了几个版本。第一版就是是非常快的,我们可以非常快的实现我们的模块。我们看一下技术特点,微博这个产品从架构上来分析,它需要解决的是发表和订阅的问题。我们第一版采用的是推的消息模式,假如说我们一个明星用户他有10万个粉丝,那就是说用户发表一条微博的时候,我们把这个微博消息攒成10万份,这样就是很简单了,第一版的架构实际上就是这两行字。第</div>
                                </li>
                                <li><a href="/article/2590.htm"
                                       title="玩转ARP攻击" target="_blank">玩转ARP攻击</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/r/1.htm">r</a>
                                    <div>我写这片文章只是想让你明白深刻理解某一协议的好处。高手免看。如果有人利用这片文章所做的一切事情,盖不负责。 网上关于ARP的资料已经很多了,就不用我都说了。 用某一位高手的话来说,“我们能做的事情很多,唯一受限制的是我们的创造力和想象力”。 ARP也是如此。 以下讨论的机子有 一个要攻击的机子:10.5.4.178 硬件地址:52:54:4C:98</div>
                                </li>
                                <li><a href="/article/2717.htm"
                                       title="PHP编码规范" target="_blank">PHP编码规范</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83/1.htm">编码规范</a>
                                    <div>一、文件格式 
1. 对于只含有 php 代码的文件,我们将在文件结尾处忽略掉 "?>" 。这是为了防止多余的空格或者其它字符影响到代码。例如:<?php$foo = 'foo';2. 缩进应该能够反映出代码的逻辑结果,尽量使用四个空格,禁止使用制表符TAB,因为这样能够保证有跨客户端编程器软件的灵活性。例</div>
                                </li>
                                <li><a href="/article/2844.htm"
                                       title="linux 脱机管理(nohup)" target="_blank">linux 脱机管理(nohup)</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/linux+nohup/1.htm">linux nohup</a><a class="tag" taget="_blank" href="/search/nohup/1.htm">nohup</a>
                                    <div>脱机管理 nohup 
转载请出自出处:http://eksliang.iteye.com/blog/2166699 
nohup可以让你在脱机或者注销系统后,还能够让工作继续进行。他的语法如下 
nohup [命令与参数]   --在终端机前台工作
nohup [命令与参数] & --在终端机后台工作 
  
但是这个命令需要注意的是,nohup并不支持bash的内置命令,所</div>
                                </li>
                                <li><a href="/article/2971.htm"
                                       title="BusinessObjects Enterprise Java SDK" target="_blank">BusinessObjects Enterprise Java SDK</a>
                                    <span class="text-muted">greemranqq</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/BO/1.htm">BO</a><a class="tag" taget="_blank" href="/search/SAP/1.htm">SAP</a><a class="tag" taget="_blank" href="/search/Crystal+Reports/1.htm">Crystal Reports</a>
                                    <div>最近项目用到oracle_ADF  从SAP/BO 上调用 水晶报表,资料比较少,我做一个简单的分享,给和我一样的新手 提供更多的便利。 
  
首先,我是尝试用JAVA JSP 去访问的。 
  
官方API:http://devlibrary.businessobjects.com/BusinessObjectsxi/en/en/BOE_SDK/boesdk_ja</div>
                                </li>
                                <li><a href="/article/3098.htm"
                                       title="系统负载剧变下的管控策略" target="_blank">系统负载剧变下的管控策略</a>
                                    <span class="text-muted">iamzhongyong</span>
<a class="tag" taget="_blank" href="/search/%E9%AB%98%E5%B9%B6%E5%8F%91/1.htm">高并发</a>
                                    <div>假如目前的系统有100台机器,能够支撑每天1亿的点击量(这个就简单比喻一下),然后系统流量剧变了要,我如何应对,系统有那些策略可以处理,这里总结了一下之前的一些做法。 
1、水平扩展 
这个最容易理解,加机器,这样的话对于系统刚刚开始的伸缩性设计要求比较高,能够非常灵活的添加机器,来应对流量的变化。 
2、系统分组 
假如系统服务的业务不同,有优先级高的,有优先级低的,那就让不同的业务调用提前分组</div>
                                </li>
                                <li><a href="/article/3225.htm"
                                       title="BitTorrent DHT 协议中文翻译" target="_blank">BitTorrent DHT 协议中文翻译</a>
                                    <span class="text-muted">justjavac</span>
<a class="tag" taget="_blank" href="/search/bit/1.htm">bit</a>
                                    <div>前言 
做了一个磁力链接和BT种子的搜索引擎 {Magnet & Torrent},因此把 DHT 协议重新看了一遍。 
 
 BEP: 5Title: DHT ProtocolVersion: 3dec52cb3ae103ce22358e3894b31cad47a6f22bLast-Modified: Tue Apr 2 16:51:45 2013 -070</div>
                                </li>
                                <li><a href="/article/3352.htm"
                                       title="Ubuntu下Java环境的搭建" target="_blank">Ubuntu下Java环境的搭建</a>
                                    <span class="text-muted">macroli</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a>
                                    <div>配置命令: 
  $sudo apt-get install ubuntu-restricted-extras 
  再运行如下命令: 
  $sudo apt-get install sun-java6-jdk 
  待安装完毕后选择默认Java. 
  $sudo update- alternatives --config java 
  安装过程提示选择,输入“2”即可,然后按回车键确定。 </div>
                                </li>
                                <li><a href="/article/3479.htm"
                                       title="js字符串转日期(兼容IE所有版本)" target="_blank">js字符串转日期(兼容IE所有版本)</a>
                                    <span class="text-muted">qiaolevip</span>
<a class="tag" taget="_blank" href="/search/TO/1.htm">TO</a><a class="tag" taget="_blank" href="/search/Date/1.htm">Date</a><a class="tag" taget="_blank" href="/search/String/1.htm">String</a><a class="tag" taget="_blank" href="/search/IE/1.htm">IE</a>
                                    <div>	/**
	 * 字符串转时间(yyyy-MM-dd HH:mm:ss)
	 * result (分钟)
	 */
	stringToDate : function(fDate){
		var fullDate = fDate.split(" ")[0].split("-");
		var fullTime = fDate.split("</div>
                                </li>
                                <li><a href="/article/3606.htm"
                                       title="【数据挖掘学习】关联规则算法Apriori的学习与SQL简单实现购物篮分析" target="_blank">【数据挖掘学习】关联规则算法Apriori的学习与SQL简单实现购物篮分析</a>
                                    <span class="text-muted">superlxw1234</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a><a class="tag" taget="_blank" href="/search/%E5%85%B3%E8%81%94%E8%A7%84%E5%88%99/1.htm">关联规则</a>
                                    <div>关联规则挖掘用于寻找给定数据集中项之间的有趣的关联或相关关系。 
关联规则揭示了数据项间的未知的依赖关系,根据所挖掘的关联关系,可以从一个数据对象的信息来推断另一个数据对象的信息。 
例如购物篮分析。牛奶 ⇒ 面包 [支持度:3%,置信度:40%]  支持度3%:意味3%顾客同时购买牛奶和面包。   置信度40%:意味购买牛奶的顾客40%也购买面包。   规则的支持度和置信度是两个规则兴</div>
                                </li>
                                <li><a href="/article/3733.htm"
                                       title="Spring 5.0 的系统需求,期待你的反馈" target="_blank">Spring 5.0 的系统需求,期待你的反馈</a>
                                    <span class="text-muted">wiselyman</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>        
       Spring 5.0将在2016年发布。Spring5.0将支持JDK 9。 
  
       Spring 5.0的特性计划还在工作中,请保持关注,所以作者希望从使用者得到关于Spring 5.0系统需求方面的反馈。 
 </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>