【云原生】第五篇--Docker容器化部署企业级应用集群

Docker容器化部署企业级应用集群

  • 一、Docker容器化部署企业级应用
    • 1.1 使用Docker容器化部署企业级应用必要性
    • 1.2 使用Docker容器化部署企业级应用参考资料
  • 二、使用Docker容器实现Nginx部署
    • 2.1 获取参考资料
    • 2.2 运行Nginx应用容器
    • 2.3 运行Nginx应用容器
    • 2.4 运行Nginx应用容器
  • 三、使用Docker容器实现Tomcat部署
    • 3.1 获取参考资料
    • 3.2 运行tomcat应用容器
      • 3.2.1 不暴露端口运行
      • 3.2.2 暴露端口运行
      • 3.2.3 暴露端口及添加网站文件
  • 四、使用Docker容器实现MySQL部署
    • 4.1 单节点MySQL部署
    • 4.2 MySQL主从复制集群部署
      • 4.2.1 MySQL主节点部署
      • 4.2.2 MySQL主节点配置
      • 4.2.3 MySQL从节点部署
      • 4.2.4 MySQL从节点配置
      • 4.2.5 master节点配置
      • 4.2.6 slave节点配置
      • 4.2.7 验证MySQL集群可用性
  • 五、使用Docker容器实现Oracle部署
    • 5.1 获取参考资料
    • 5.2 运行oracle容器
    • 5.3 下载客户端连接工具
  • 六、使用Docker容器实现ElasticSearch+Kibana部署
    • 6.1 获取参考资料
      • 6.1.1 ES部署参考资料
      • 6.1.2 Kibana部署参考资料
    • 6.2 ES部署
    • 6.3 Kibana部署
  • 七、使用Docker容器实现Redis部署
    • 7.1 获取参考资料
    • 7.2 运行Redis容器
    • 7.3 验证
    • 7.4 Redis集群
  • 八、使用Docker容器实现RabbitMQ部署
    • 8.1 获取参考资料
    • 8.2 部署RabbitMQ

一、Docker容器化部署企业级应用

1.1 使用Docker容器化部署企业级应用必要性

  • 有利于快速实现企业级应用部署
  • 有利于快速实现企业级应用恢复

1.2 使用Docker容器化部署企业级应用参考资料

【云原生】第五篇--Docker容器化部署企业级应用集群_第1张图片

二、使用Docker容器实现Nginx部署

2.1 获取参考资料

【云原生】第五篇--Docker容器化部署企业级应用集群_第2张图片
【云原生】第五篇--Docker容器化部署企业级应用集群_第3张图片
【云原生】第五篇--Docker容器化部署企业级应用集群_第4张图片

2.2 运行Nginx应用容器

不在docker host暴露端口

# docker run -d --name nginx-server -v /opt/nginx-server:/usr/share/nginx/html:ro nginx
664cd1bbda4ad2a71cbd09f0c6baa9b34db80db2d69496670a960be07b9521cb
# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
664cd1bbda4a   nginx       "/docker-entrypoint.…"   4 seconds ago    Up 3 seconds    80/tcp                                                 nginx-server
# docker inspect 664 | grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.3",
                    "IPAddress": "172.17.0.3",
# curl http://172.17.0.3

403 Forbidden<<span class="token operator">/</span>title><<span class="token operator">/</span>head>
<body>
<center><h1>403 Forbidden<<span class="token operator">/</span>h1><<span class="token operator">/</span>center>
<hr><center>nginx/1<span class="token punctuation">.</span>21<span class="token punctuation">.</span>6<<span class="token operator">/</span>center>
<<span class="token operator">/</span>body>
<<span class="token operator">/</span>html>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># ls /opt</span>
nginx-server
<span class="token comment"># echo "nginx is working" > /opt/nginx-server/index.html</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># curl http://172.17.0.3</span>
nginx is working
</code></pre> 
  <h2>2.3 运行Nginx应用容器</h2> 
  <blockquote> 
   <p>在docker host暴露80端口</p> 
  </blockquote> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker run -d -p 80:80 --name nginx-server-port -v /opt/nginx-server-port:/usr/share/nginx/html:ro nginx</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE       COMMAND                  CREATED             STATUS             PORTS                                                  NAMES
74dddf51983d   nginx       <span class="token string">"/docker-entrypoint.…"</span>   3 seconds ago       Up 2 seconds       0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:80->80/tcp<span class="token punctuation">,</span> :::80->80/tcp                      nginx-server-port
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># ls /opt</span>
nginx-server  nginx-server-port
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># echo "nginx is running" > /opt/nginx-server-port/index.html</span>
</code></pre> 
  <p><strong>在宿主机上访问</strong><br> <a href="http://img.e-com-net.com/image/info8/b809068da88844569692ebea5d0ea6df.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b809068da88844569692ebea5d0ea6df.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第5张图片" width="431" height="177" style="border:1px solid black;"></a></p> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker top nginx-server-port</span>
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                22195               22163               0                   15:08               ?                   00:00:00            nginx: master <span class="token keyword">process</span> nginx <span class="token operator">-</span>g daemon off<span class="token punctuation">;</span>
101                 22387               22195               0                   15:08               ?                   00:00:00            nginx: worker <span class="token keyword">process</span>

</code></pre> 
  <h2>2.4 运行Nginx应用容器</h2> 
  <blockquote> 
   <p>挂载配置文件,需要创建一个nginx容器,把配置文件复制出来修改后使用。</p> 
  </blockquote> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker cp nginxwebcontainername:/etc/nginx/nginx.conf /opt/nginxcon/</span>
修改后即可使用
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># ls /opt/nginxcon/nginx.conf</span>
<span class="token operator">/</span>opt/nginxcon/nginx<span class="token punctuation">.</span>conf
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker run -d \</span>
<span class="token operator">-</span>p 82:80 <span class="token operator">--</span>name nginx-server-conf \
<span class="token operator">-</span>v <span class="token operator">/</span>opt/nginx-server-conf:<span class="token operator">/</span>usr/share/nginx/html:ro \
<span class="token operator">-</span>v <span class="token operator">/</span>opt/nginxcon/nginx<span class="token punctuation">.</span>conf:<span class="token operator">/</span>etc/nginx/nginx<span class="token punctuation">.</span>conf:ro \
nginx
76251ec44e5049445399303944fc96eb8161ccb49e27b673b99cb2492009523c
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker top nginx-server-conf</span>
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                25005               24972               0                   15:38               ?                   00:00:00            nginx: master <span class="token keyword">process</span> nginx <span class="token operator">-</span>g daemon off<span class="token punctuation">;</span>
101                 25178               25005               0                   15:38               ?                   00:00:00            nginx: worker <span class="token keyword">process</span>
101                 25179               25005               0                   15:38               ?                   00:00:00            nginx: worker <span class="token keyword">process</span>
</code></pre> 
  <h1>三、使用Docker容器实现Tomcat部署</h1> 
  <h2>3.1 获取参考资料</h2> 
  <p><a href="http://img.e-com-net.com/image/info8/9cb1f4b8b29241deb716a5752434a33f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/9cb1f4b8b29241deb716a5752434a33f.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第6张图片" width="650" height="451" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/d2cdbaffc634447e8e53edd4e593a0a3.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d2cdbaffc634447e8e53edd4e593a0a3.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第7张图片" width="650" height="290" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/fd0c8a8e8e4e42a5a52c54d3b73c479c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/fd0c8a8e8e4e42a5a52c54d3b73c479c.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第8张图片" width="650" height="315" style="border:1px solid black;"></a></p> 
  <h2>3.2 运行tomcat应用容器</h2> 
  <h3>3.2.1 不暴露端口运行</h3> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker run -d --rm tomcat:9.0</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE        COMMAND                  CREATED             STATUS             PORTS                                                  NAMES
c20a0e781246   tomcat:9<span class="token punctuation">.</span>0   <span class="token string">"catalina.sh run"</span>        27 seconds ago      Up 25 seconds      8080/tcp                                               heuristic_cori
</code></pre> 
  <h3>3.2.2 暴露端口运行</h3> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker run -d -p 8080:8080 --rm tomcat:9.0</span>
2fcf5762314373c824928490b871138a01a94abedd7e6814ad5f361d09fbe1de
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE        COMMAND                  CREATED             STATUS             PORTS                                                  NAMES
2fcf57623143   tomcat:9<span class="token punctuation">.</span>0   <span class="token string">"catalina.sh run"</span>        3 seconds ago       Up 1 second        0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:8080->8080/tcp<span class="token punctuation">,</span> :::8080->8080/tcp              eloquent_chatelet
</code></pre> 
  <p><strong>在宿主机访问</strong><br> <a href="http://img.e-com-net.com/image/info8/900aac1e32e345b2a51f404fca98cb1c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/900aac1e32e345b2a51f404fca98cb1c.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第9张图片" width="553" height="264" style="border:1px solid black;"></a></p> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker exec 2fc ls /usr/local/tomcat/webapps</span>
里面为空,所以可以添加网站文件。
</code></pre> 
  <h3>3.2.3 暴露端口及添加网站文件</h3> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker run -d -p 8081:8080 -v /opt/tomcat-server:/usr/local/tomcat/webapps/ROOT tomcat:9.0</span>
f456e705d48fc603b7243a435f0edd6284558c194e105d87befff2dccddc0b63
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE        COMMAND             CREATED         STATUS         PORTS                                       NAMES
f456e705d48f   tomcat:9<span class="token punctuation">.</span>0   <span class="token string">"catalina.sh run"</span>   3 seconds ago   Up 2 seconds   0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:8081->8080/tcp<span class="token punctuation">,</span> :::8081->8080/tcp   cool_germain
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># echo "tomcat running" > /opt/tomcat-server/index.html</span>
</code></pre> 
  <p><strong>在宿主机访问</strong><br> <a href="http://img.e-com-net.com/image/info8/96fb4144964f428e8c38295496ee0c35.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/96fb4144964f428e8c38295496ee0c35.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第10张图片" width="611" height="217" style="border:1px solid black;"></a></p> 
  <h1>四、使用Docker容器实现MySQL部署</h1> 
  <h2>4.1 单节点MySQL部署</h2> 
  <p><a href="http://img.e-com-net.com/image/info8/846c5ce4d9a643509e4d47bb98eda968.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/846c5ce4d9a643509e4d47bb98eda968.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第11张图片" width="650" height="585" style="border:1px solid black;"></a><a href="http://img.e-com-net.com/image/info8/85bce8e17c4d46a8ae2bcbd02f5119ed.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/85bce8e17c4d46a8ae2bcbd02f5119ed.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第12张图片" width="650" height="269" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/c7f8b733dd524955bae79c4a0ee5eb8a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/c7f8b733dd524955bae79c4a0ee5eb8a.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第13张图片" width="650" height="337" style="border:1px solid black;"></a></p> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker run -p 3306:3306 \</span>
 <span class="token operator">--</span>name mysql \
 <span class="token operator">-</span>v <span class="token operator">/</span>opt/mysql/log:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>log/mysql \
 <span class="token operator">-</span>v <span class="token operator">/</span>opt/mysql/<span class="token keyword">data</span>:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>lib/mysql \
 <span class="token operator">-</span>v <span class="token operator">/</span>opt/mysql/conf:<span class="token operator">/</span>etc/mysql \
 <span class="token operator">-</span>e MYSQL_ROOT_PASSWORD=root \
 <span class="token operator">-</span>d \
 mysql:5<span class="token punctuation">.</span>7
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
6d16ca21cf31   mysql:5<span class="token punctuation">.</span>7   <span class="token string">"docker-entrypoint.s…"</span>   32 seconds ago   Up 30 seconds   0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:3306->3306/tcp<span class="token punctuation">,</span> :::3306->3306/tcp<span class="token punctuation">,</span> 33060/tcp   mysql
</code></pre> 
  <pre><code class="prism language-powershell">通过容器中客户端访问
<span class="token comment"># docker exec -it mysql mysql -uroot -proot</span>
mysql: <span class="token namespace">[Warning]</span> <span class="token keyword">Using</span> a password on the command line interface can be insecure<span class="token punctuation">.</span>
Welcome to the MySQL monitor<span class="token punctuation">.</span>  Commands <span class="token keyword">end</span> with <span class="token punctuation">;</span> or \g<span class="token punctuation">.</span>
Your MySQL connection id is 4
Server version: 5<span class="token punctuation">.</span>7<span class="token punctuation">.</span>37 MySQL Community Server <span class="token punctuation">(</span>GPL<span class="token punctuation">)</span>

Copyright <span class="token punctuation">(</span>c<span class="token punctuation">)</span> 2000<span class="token punctuation">,</span> 2022<span class="token punctuation">,</span> Oracle and/or its affiliates<span class="token punctuation">.</span>

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates<span class="token punctuation">.</span> Other names may be trademarks of their respective
owners<span class="token punctuation">.</span>

<span class="token function">Type</span> <span class="token string">'help;'</span> or <span class="token string">'\h'</span> <span class="token keyword">for</span> help<span class="token punctuation">.</span> <span class="token function">Type</span> <span class="token string">'\c'</span> to clear the current input statement<span class="token punctuation">.</span>

mysql>
</code></pre> 
  <pre><code class="prism language-powershell">在docker host上访问
<span class="token comment"># yum -y install mariadb</span>

<span class="token comment"># mysql -h 192.168.255.157 -uroot -proot -P 3306</span>
Welcome to the MariaDB monitor<span class="token punctuation">.</span>  Commands <span class="token keyword">end</span> with <span class="token punctuation">;</span> or \g<span class="token punctuation">.</span>
Your MySQL connection id is 7
Server version: 5<span class="token punctuation">.</span>7<span class="token punctuation">.</span>37 MySQL Community Server <span class="token punctuation">(</span>GPL<span class="token punctuation">)</span>

Copyright <span class="token punctuation">(</span>c<span class="token punctuation">)</span> 2000<span class="token punctuation">,</span> 2018<span class="token punctuation">,</span> Oracle<span class="token punctuation">,</span> MariaDB Corporation Ab and others<span class="token punctuation">.</span>

<span class="token function">Type</span> <span class="token string">'help;'</span> or <span class="token string">'\h'</span> <span class="token keyword">for</span> help<span class="token punctuation">.</span> <span class="token function">Type</span> <span class="token string">'\c'</span> to clear the current input statement<span class="token punctuation">.</span>

MySQL <span class="token punctuation">[</span><span class="token punctuation">(</span>none<span class="token punctuation">)</span><span class="token punctuation">]</span>> show databases<span class="token punctuation">;</span>
<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">+</span>
<span class="token punctuation">|</span> Database           <span class="token punctuation">|</span>
<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">+</span>
<span class="token punctuation">|</span> information_schema <span class="token punctuation">|</span>
<span class="token punctuation">|</span> mysql              <span class="token punctuation">|</span>
<span class="token punctuation">|</span> performance_schema <span class="token punctuation">|</span>
<span class="token punctuation">|</span> sys                <span class="token punctuation">|</span>
<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">+</span>
4 rows in <span class="token function">set</span> <span class="token punctuation">(</span>0<span class="token punctuation">.</span>00 sec<span class="token punctuation">)</span>
</code></pre> 
  <h2>4.2 MySQL主从复制集群部署</h2> 
  <h3>4.2.1 MySQL主节点部署</h3> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker run -p 3306:3306 \</span>
 <span class="token operator">--</span>name mysql-master \
 <span class="token operator">-</span>v <span class="token operator">/</span>opt/mysql-master/log:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>log/mysql \
 <span class="token operator">-</span>v <span class="token operator">/</span>opt/mysql-master/<span class="token keyword">data</span>:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>lib/mysql \
 <span class="token operator">-</span>v <span class="token operator">/</span>opt/mysql-master/conf:<span class="token operator">/</span>etc/mysql \
 <span class="token operator">-</span>e MYSQL_ROOT_PASSWORD=root \
 <span class="token operator">-</span>d mysql:5<span class="token punctuation">.</span>7
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
2dbbed8e35c7   mysql:5<span class="token punctuation">.</span>7   <span class="token string">"docker-entrypoint.s…"</span>   58 seconds ago   Up 57 seconds   0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:3306->3306/tcp<span class="token punctuation">,</span> :::3306->3306/tcp<span class="token punctuation">,</span> 33060/tcp   mysql-master
</code></pre> 
  <h3>4.2.2 MySQL主节点配置</h3> 
  <pre><code class="prism language-powershell"><span class="token comment"># vim /opt/mysql-master/conf/my.cnf</span>
<span class="token comment"># cat /opt/mysql-master/conf/my.cnf</span>
<span class="token namespace">[client]</span>
default-character-<span class="token function">set</span>=utf8

<span class="token namespace">[mysql]</span>
default-character-<span class="token function">set</span>=utf8

<span class="token namespace">[mysqld]</span>
init_connect=<span class="token string">'SET collation_connection = utf8_unicode_ci'</span>
init_connect=<span class="token string">'SET NAMES utf8'</span>
character-<span class="token function">set-server</span>=utf8
collation-server=utf8_unicode_ci
<span class="token function">skip-character</span><span class="token operator">-</span><span class="token function">set-client</span><span class="token operator">-</span>handshake
<span class="token function">skip-name</span><span class="token operator">-</span>resolve

server_id=1
log-bin=mysql-bin
<span class="token function">read-only</span>=0
binlog-<span class="token keyword">do</span><span class="token operator">-</span>db=kubemsb_test

replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
</code></pre> 
  <h3>4.2.3 MySQL从节点部署</h3> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker run -p 3307:3306 \</span>
 <span class="token operator">--</span>name mysql-slave \
 <span class="token operator">-</span>v <span class="token operator">/</span>opt/mysql-slave/log:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>log/mysql \
 <span class="token operator">-</span>v <span class="token operator">/</span>opt/mysql-slave/<span class="token keyword">data</span>:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>lib/mysql \
 <span class="token operator">-</span>v <span class="token operator">/</span>opt/mysql-slave/conf:<span class="token operator">/</span>etc/mysql \
 <span class="token operator">-</span>e MYSQL_ROOT_PASSWORD=root \
 <span class="token operator">-</span>d 
 <span class="token operator">--</span>link mysql-master:mysql-master
 mysql:5<span class="token punctuation">.</span>7
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE       COMMAND                  CREATED         STATUS         PORTS                                                  NAMES
caf7bf3fc68f   mysql:5<span class="token punctuation">.</span>7   <span class="token string">"docker-entrypoint.s…"</span>   8 seconds ago   Up 6 seconds   33060/tcp<span class="token punctuation">,</span> 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:3307->3306/tcp<span class="token punctuation">,</span> :::3307->3306/tcp   mysql-slave
</code></pre> 
  <h3>4.2.4 MySQL从节点配置</h3> 
  <pre><code class="prism language-powershell"><span class="token comment"># vim /opt/mysql-slave/conf/my.cnf</span>
<span class="token comment"># cat /opt/mysql-slave/conf/my.cnf</span>
<span class="token namespace">[client]</span>
default-character-<span class="token function">set</span>=utf8

<span class="token namespace">[mysql]</span>
default-character-<span class="token function">set</span>=utf8

<span class="token namespace">[mysqld]</span>
init_connect=<span class="token string">'SET collation_connection = utf8_unicode_ci'</span>
init_connect=<span class="token string">'SET NAMES utf8'</span>
character-<span class="token function">set-server</span>=utf8
collation-server=utf8_unicode_ci
<span class="token function">skip-character</span><span class="token operator">-</span><span class="token function">set-client</span><span class="token operator">-</span>handshake
<span class="token function">skip-name</span><span class="token operator">-</span>resolve

server_id=2
log-bin=mysql-bin
<span class="token function">read-only</span>=1
binlog-<span class="token keyword">do</span><span class="token operator">-</span>db=kubemsb_test

replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
</code></pre> 
  <h3>4.2.5 master节点配置</h3> 
  <pre><code class="prism language-powershell"><span class="token comment"># mysql -h 192.168.255.157 -uroot -proot -P 3306</span>
Welcome to the MariaDB monitor<span class="token punctuation">.</span>  Commands <span class="token keyword">end</span> with <span class="token punctuation">;</span> or \g<span class="token punctuation">.</span>
Your MySQL connection id is 2
Server version: 5<span class="token punctuation">.</span>7<span class="token punctuation">.</span>37 MySQL Community Server <span class="token punctuation">(</span>GPL<span class="token punctuation">)</span>

Copyright <span class="token punctuation">(</span>c<span class="token punctuation">)</span> 2000<span class="token punctuation">,</span> 2018<span class="token punctuation">,</span> Oracle<span class="token punctuation">,</span> MariaDB Corporation Ab and others<span class="token punctuation">.</span>

<span class="token function">Type</span> <span class="token string">'help;'</span> or <span class="token string">'\h'</span> <span class="token keyword">for</span> help<span class="token punctuation">.</span> <span class="token function">Type</span> <span class="token string">'\c'</span> to clear the current input statement<span class="token punctuation">.</span>

MySQL <span class="token punctuation">[</span><span class="token punctuation">(</span>none<span class="token punctuation">)</span><span class="token punctuation">]</span>>
</code></pre> 
  <pre><code class="prism language-powershell">授权
MySQL <span class="token punctuation">[</span><span class="token punctuation">(</span>none<span class="token punctuation">)</span><span class="token punctuation">]</span>> grant replication slave on <span class="token operator">*</span><span class="token punctuation">.</span><span class="token operator">*</span> to <span class="token string">'backup'</span>@<span class="token string">'%'</span> identified by <span class="token string">'123456'</span><span class="token punctuation">;</span>
</code></pre> 
  <pre><code class="prism language-powershell">重启容器,使用配置生效
<span class="token comment"># docker restart mysql-master</span>
</code></pre> 
  <pre><code class="prism language-powershell">查看状态
MySQL <span class="token punctuation">[</span><span class="token punctuation">(</span>none<span class="token punctuation">)</span><span class="token punctuation">]</span>> show master status\G
<span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span> 1<span class="token punctuation">.</span> row <span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span>
             File: mysql-bin<span class="token punctuation">.</span>000001
         Position: 154
     Binlog_Do_DB: kubemsb_test
 Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in <span class="token function">set</span> <span class="token punctuation">(</span>0<span class="token punctuation">.</span>00 sec<span class="token punctuation">)</span>
</code></pre> 
  <h3>4.2.6 slave节点配置</h3> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker restart mysql-slave</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># mysql -h 192.168.255.157 -uroot -proot -P 3307</span>
Welcome to the MariaDB monitor<span class="token punctuation">.</span>  Commands <span class="token keyword">end</span> with <span class="token punctuation">;</span> or \g<span class="token punctuation">.</span>
Your MySQL connection id is 2
Server version: 5<span class="token punctuation">.</span>7<span class="token punctuation">.</span>37 MySQL Community Server <span class="token punctuation">(</span>GPL<span class="token punctuation">)</span>

Copyright <span class="token punctuation">(</span>c<span class="token punctuation">)</span> 2000<span class="token punctuation">,</span> 2018<span class="token punctuation">,</span> Oracle<span class="token punctuation">,</span> MariaDB Corporation Ab and others<span class="token punctuation">.</span>

<span class="token function">Type</span> <span class="token string">'help;'</span> or <span class="token string">'\h'</span> <span class="token keyword">for</span> help<span class="token punctuation">.</span> <span class="token function">Type</span> <span class="token string">'\c'</span> to clear the current input statement<span class="token punctuation">.</span>

MySQL <span class="token punctuation">[</span><span class="token punctuation">(</span>none<span class="token punctuation">)</span><span class="token punctuation">]</span>>
</code></pre> 
  <pre><code class="prism language-powershell">MySQL <span class="token punctuation">[</span><span class="token punctuation">(</span>none<span class="token punctuation">)</span><span class="token punctuation">]</span>> change master to master_host=<span class="token string">'mysql-master'</span><span class="token punctuation">,</span> master_user=<span class="token string">'backup'</span><span class="token punctuation">,</span> master_password=<span class="token string">'123456'</span><span class="token punctuation">,</span> master_log_file=<span class="token string">'mysql-bin.000001'</span><span class="token punctuation">,</span> master_log_pos=154<span class="token punctuation">,</span> master_port=3306<span class="token punctuation">;</span>
</code></pre> 
  <pre><code class="prism language-powershell">MySQL <span class="token punctuation">[</span><span class="token punctuation">(</span>none<span class="token punctuation">)</span><span class="token punctuation">]</span>> <span class="token function">start</span> slave<span class="token punctuation">;</span>
</code></pre> 
  <pre><code class="prism language-powershell">MySQL <span class="token punctuation">[</span><span class="token punctuation">(</span>none<span class="token punctuation">)</span><span class="token punctuation">]</span>> show slave status\G
<span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span> 1<span class="token punctuation">.</span> row <span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span>
               Slave_IO_State: Waiting <span class="token keyword">for</span> master to send event
                  Master_Host: mysql-master
                  Master_User: backup
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin<span class="token punctuation">.</span>000001
          Read_Master_Log_Pos: 154
               Relay_Log_File: e0872f94c377-relay-bin<span class="token punctuation">.</span>000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin<span class="token punctuation">.</span>000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB: mysql<span class="token punctuation">,</span>sys<span class="token punctuation">,</span>information_schema<span class="token punctuation">,</span>performance_schema
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 154
              Relay_Log_Space: 534
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
                  Master_UUID: 0130b415-8b21-11ec-8982-0242ac110002
             Master_Info_File: <span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>lib/mysql/master<span class="token punctuation">.</span>info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log<span class="token punctuation">;</span> waiting <span class="token keyword">for</span> more updates
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
         Replicate_Rewrite_DB:
                 Channel_Name:
           Master_TLS_Version:
1 row in <span class="token function">set</span> <span class="token punctuation">(</span>0<span class="token punctuation">.</span>00 sec<span class="token punctuation">)</span>
</code></pre> 
  <h3>4.2.7 验证MySQL集群可用性</h3> 
  <pre><code class="prism language-powershell">在MySQL Master节点添加kubemsb_test数据库
<span class="token comment"># mysql -h 192.168.255.157 -uroot -proot -P3306</span>

MySQL <span class="token punctuation">[</span><span class="token punctuation">(</span>none<span class="token punctuation">)</span><span class="token punctuation">]</span>> create database kubemsb_test<span class="token punctuation">;</span>
Query OK<span class="token punctuation">,</span> 1 row affected <span class="token punctuation">(</span>0<span class="token punctuation">.</span>00 sec<span class="token punctuation">)</span>

MySQL <span class="token punctuation">[</span><span class="token punctuation">(</span>none<span class="token punctuation">)</span><span class="token punctuation">]</span>> show databases<span class="token punctuation">;</span>
<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">+</span>
<span class="token punctuation">|</span> Database           <span class="token punctuation">|</span>
<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">+</span>
<span class="token punctuation">|</span> information_schema <span class="token punctuation">|</span>
<span class="token punctuation">|</span> kubemsb_test       <span class="token punctuation">|</span>     <span class="token punctuation">|</span>
<span class="token punctuation">|</span> mysql              <span class="token punctuation">|</span>
<span class="token punctuation">|</span> performance_schema <span class="token punctuation">|</span>
<span class="token punctuation">|</span> sys                <span class="token punctuation">|</span>
<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">+</span>
6 rows in <span class="token function">set</span> <span class="token punctuation">(</span>0<span class="token punctuation">.</span>00 sec<span class="token punctuation">)</span>
</code></pre> 
  <pre><code class="prism language-powershell">在MySQL Slave节点查看同步情况
<span class="token comment"># mysql -h 192.168.255.157 -uroot -proot -P3307</span>

MySQL <span class="token punctuation">[</span><span class="token punctuation">(</span>none<span class="token punctuation">)</span><span class="token punctuation">]</span>> show databases<span class="token punctuation">;</span>
<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">+</span>
<span class="token punctuation">|</span> Database           <span class="token punctuation">|</span>
<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">+</span>
<span class="token punctuation">|</span> information_schema <span class="token punctuation">|</span>
<span class="token punctuation">|</span> kubemsb_test       <span class="token punctuation">|</span>
<span class="token punctuation">|</span> mysql              <span class="token punctuation">|</span>
<span class="token punctuation">|</span> performance_schema <span class="token punctuation">|</span>
<span class="token punctuation">|</span> sys                <span class="token punctuation">|</span>
<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">+</span>
5 rows in <span class="token function">set</span> <span class="token punctuation">(</span>0<span class="token punctuation">.</span>00 sec<span class="token punctuation">)</span>
</code></pre> 
  <h1>五、使用Docker容器实现Oracle部署</h1> 
  <h2>5.1 获取参考资料</h2> 
  <p><a href="http://img.e-com-net.com/image/info8/c864506e6ba14af0a242bb0cc32dcd93.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/c864506e6ba14af0a242bb0cc32dcd93.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第14张图片" width="650" height="512" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/79318dfd2d7345459a431281a9108892.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/79318dfd2d7345459a431281a9108892.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第15张图片" width="650" height="295" style="border:1px solid black;"></a></p> 
  <h2>5.2 运行oracle容器</h2> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker pull oracleinanutshell/oracle-xe-11g</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker run -h oracle --name oracle -d -p 49160:22 -p 49161:1521 -p 49162:8080 oracleinanutshell/oracle-xe-11g</span>
237db949020abf2cee12e3193fa8a34d9dfadaafd9d5604564668d4472abe0b2
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE                             COMMAND                  CREATED         STATUS         PORTS                                                                                                                               NAMES
237db949020a   oracleinanutshell/oracle-xe-11g   <span class="token string">"/bin/sh -c '/usr/sb…"</span>   7 seconds ago   Up 4 seconds   0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:49160->22/tcp<span class="token punctuation">,</span> :::49160->22/tcp<span class="token punctuation">,</span> 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:49161->1521/tcp<span class="token punctuation">,</span> :::49161->1521/tcp<span class="token punctuation">,</span> 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:49162->8080/tcp<span class="token punctuation">,</span> :::49162->8080/tcp   oracle
</code></pre> 
  <pre><code class="prism language-powershell">说明:
49160 为ssh端口
49161 为sqlplus端口
49162 为oem端口
</code></pre> 
  <pre><code class="prism language-powershell">oracle数据库连接信息
port:49161
sid:xe
username:system
password:oracle

SYS用户密码为:oracle
</code></pre> 
  <h2>5.3 下载客户端连接工具</h2> 
  <p>下载链接地址:https://www.oracle.com/tools/downloads/sqldev-downloads.html<br> <a href="http://img.e-com-net.com/image/info8/800f6300dc62443786b0729be62a82ca.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/800f6300dc62443786b0729be62a82ca.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第16张图片" width="650" height="285" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/2acc91654a3c4e2d8ae0ca1c4ac76e85.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/2acc91654a3c4e2d8ae0ca1c4ac76e85.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第17张图片" width="118" height="122" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/60754255ad5f4135963ab62284f35944.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/60754255ad5f4135963ab62284f35944.png" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第18张图片" width="718" height="583" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/8ca310faf27349fa92848c63882818a2.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/8ca310faf27349fa92848c63882818a2.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第19张图片" width="650" height="429" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/1821f93dea7c4482900ee743b791f123.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/1821f93dea7c4482900ee743b791f123.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第20张图片" width="650" height="352" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/de8e4849da8847eebff7550b85fbc481.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/de8e4849da8847eebff7550b85fbc481.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第21张图片" width="650" height="353" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/ab3bace4ba004a92ab2d7520217fdf5e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ab3bace4ba004a92ab2d7520217fdf5e.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第22张图片" width="650" height="353" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/859ddef102534f19bbf5e8cfb0f756e8.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/859ddef102534f19bbf5e8cfb0f756e8.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第23张图片" width="650" height="353" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/de36150165c54d74aa1c689de5c96dee.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/de36150165c54d74aa1c689de5c96dee.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第24张图片" width="650" height="418" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/26f2d710bbd1431f9e245f3135812027.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/26f2d710bbd1431f9e245f3135812027.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第25张图片" width="650" height="352" style="border:1px solid black;"></a></p> 
  <h1>六、使用Docker容器实现ElasticSearch+Kibana部署</h1> 
  <h2>6.1 获取参考资料</h2> 
  <h3>6.1.1 ES部署参考资料</h3> 
  <p><a href="http://img.e-com-net.com/image/info8/bf035d97f6134a9ab744f35ff06e84a1.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/bf035d97f6134a9ab744f35ff06e84a1.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第26张图片" width="579" height="605" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/cd0921bb7a1a46e29bea0fc6b943db4a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/cd0921bb7a1a46e29bea0fc6b943db4a.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第27张图片" width="650" height="233" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/47d61bb50220454ba08824fb3c223c85.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/47d61bb50220454ba08824fb3c223c85.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第28张图片" width="650" height="293" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/2edfcd761794431d889630b5da85449a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/2edfcd761794431d889630b5da85449a.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第29张图片" width="650" height="328" style="border:1px solid black;"></a></p> 
  <h3>6.1.2 Kibana部署参考资料</h3> 
  <p><a href="http://img.e-com-net.com/image/info8/4afc85700e82462cae05aea6d322be4f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/4afc85700e82462cae05aea6d322be4f.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第30张图片" width="631" height="598" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/d6d92a060db8456d8e816935ee289d7c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d6d92a060db8456d8e816935ee289d7c.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第31张图片" width="650" height="238" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/05bf1883fb084e238da75a3d405f6846.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/05bf1883fb084e238da75a3d405f6846.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第32张图片" width="650" height="179" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/daafa4f34930418c8120087b357bc91b.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/daafa4f34930418c8120087b357bc91b.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第33张图片" width="650" height="351" style="border:1px solid black;"></a></p> 
  <h2>6.2 ES部署</h2> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker pull elasticsearch:7.17.0</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># mkdir -p /opt/es/config</span>
<span class="token comment"># mkdir -p /opt/es/data</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># echo "http.host: 0.0.0.0" >> /opt/es/config/elasticsearch.yml</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># chmod -R 777 /opt/es/</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \</span>
<span class="token operator">-</span>e <span class="token string">"discovery.type=single-node"</span> \
<span class="token operator">-</span>e ES_JAVA_OPTS=<span class="token string">"-Xms64m -Xmx512m"</span> \
<span class="token operator">-</span>v <span class="token operator">/</span>opt/es/config/elasticsearch<span class="token punctuation">.</span>yml:<span class="token operator">/</span>usr/share/elasticsearch/config/elasticsearch<span class="token punctuation">.</span>yml \
<span class="token operator">-</span>v <span class="token operator">/</span>opt/es/<span class="token keyword">data</span>:<span class="token operator">/</span>usr/share/elasticsearch/<span class="token keyword">data</span> \
<span class="token operator">-</span>v <span class="token operator">/</span>opt/es/plugins:<span class="token operator">/</span>usr/share/elasticsearch/plugins \
<span class="token operator">-</span>d elasticsearch:7<span class="token punctuation">.</span>17<span class="token punctuation">.</span>0
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                                                                  NAMES
e1c306e6e5a3   elasticsearch:7<span class="token punctuation">.</span>17<span class="token punctuation">.</span>0   <span class="token string">"/bin/tini -- /usr/l…"</span>   22 seconds ago   Up 20 seconds   0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:9200->9200/tcp<span class="token punctuation">,</span> :::9200->9200/tcp<span class="token punctuation">,</span> 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:9300->9300/tcp<span class="token punctuation">,</span> :::9300->9300/tcp   elasticsearch
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/56650e953b2545a3a5d973ae85ce84ec.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/56650e953b2545a3a5d973ae85ce84ec.png" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第34张图片" width="581" height="376" style="border:1px solid black;"></a></p> 
  <h2>6.3 Kibana部署</h2> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker pull kibana:7.17.0</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.255.157:9200 -p 5601:5601 \</span>
<span class="token operator">-</span>d kibana:7<span class="token punctuation">.</span>17<span class="token punctuation">.</span>0
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE                  COMMAND                  CREATED         STATUS         PORTS                                                                                  NAMES
fb60e73f9cd5   kibana:7<span class="token punctuation">.</span>17<span class="token punctuation">.</span>0          <span class="token string">"/bin/tini -- /usr/l…"</span>   2 minutes ago   Up 2 minutes   0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:5601->5601/tcp<span class="token punctuation">,</span> :::5601->5601/tcp                                              kibana
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/746067e05f104f199d7d67cd710ef2ff.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/746067e05f104f199d7d67cd710ef2ff.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第35张图片" width="650" height="493" style="border:1px solid black;"></a></p> 
  <h1>七、使用Docker容器实现Redis部署</h1> 
  <h2>7.1 获取参考资料</h2> 
  <p><a href="http://img.e-com-net.com/image/info8/dfc8b4ee4abb4a5f9d3bade1b01cf85c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/dfc8b4ee4abb4a5f9d3bade1b01cf85c.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第36张图片" width="650" height="512" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/3f9af5315ee240a9ba61a9d22ed82ca8.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/3f9af5315ee240a9ba61a9d22ed82ca8.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第37张图片" width="650" height="307" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/53d12db9604a42758663df8b4eb2970f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/53d12db9604a42758663df8b4eb2970f.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第38张图片" width="650" height="374" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/7d7325f849db4dff91c8e28380c1cf56.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/7d7325f849db4dff91c8e28380c1cf56.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第39张图片" width="650" height="332" style="border:1px solid black;"></a></p> 
  <h2>7.2 运行Redis容器</h2> 
  <pre><code class="prism language-powershell"><span class="token comment"># mkdir -p /opt/redis/conf</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># touch /opt/redis/conf/redis.conf</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker run -p 6379:6379 --name redis -v /opt/redis/data:/data \</span>
<span class="token operator">-</span>v <span class="token operator">/</span>opt/redis/conf:<span class="token operator">/</span>etc/redis \
<span class="token operator">-</span>d redis redis-server <span class="token operator">/</span>etc/redis/redis<span class="token punctuation">.</span>conf
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE                  COMMAND                  CREATED          STATUS          PORTS                                                                                  NAMES
9bd2b39cd92a   redis                  <span class="token string">"docker-entrypoint.s…"</span>   44 seconds ago   Up 42 seconds   0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:6379->6379/tcp<span class="token punctuation">,</span> :::6379->6379/tcp                                              redis
</code></pre> 
  <h2>7.3 验证</h2> 
  <pre><code class="prism language-powershell"><span class="token comment"># wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># yum -y install redis</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># redis-cli -h 192.168.255.157 -p 6379</span>

192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:6379> <span class="token function">set</span> test1 a
OK
192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:6379> get test1
<span class="token string">"a"</span>
</code></pre> 
  <h2>7.4 Redis集群</h2> 
  <p>安装redis-cluster;3主3从方式,从为了同步备份,主进行slot数据分片</p> 
  <pre><code class="prism language-powershell">编辑运行多个redis容器脚本文件
<span class="token comment"># vim redis-cluster.sh</span>
<span class="token comment"># cat redis-cluster.sh</span>
<span class="token keyword">for</span> port in $<span class="token punctuation">(</span>seq 8001 8006<span class="token punctuation">)</span><span class="token punctuation">;</span> \
<span class="token keyword">do</span> \
mkdir <span class="token operator">-</span>p <span class="token operator">/</span>mydata/redis/node-$<span class="token punctuation">{</span>port<span class="token punctuation">}</span><span class="token operator">/</span>conf
touch <span class="token operator">/</span>mydata/redis/node-$<span class="token punctuation">{</span>port<span class="token punctuation">}</span><span class="token operator">/</span>conf/redis<span class="token punctuation">.</span>conf
<span class="token function">cat</span> << EOF ><span class="token operator">/</span>mydata/redis/node-$<span class="token punctuation">{</span>port<span class="token punctuation">}</span><span class="token operator">/</span>conf/redis<span class="token punctuation">.</span>conf
port $<span class="token punctuation">{</span>port<span class="token punctuation">}</span>
cluster-enabled yes
cluster-config-file nodes<span class="token punctuation">.</span>conf
cluster-node-timeout 5000
cluster-announce-ip 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157
cluster-announce-port $<span class="token punctuation">{</span>port<span class="token punctuation">}</span>
cluster-announce-bus-port 1$<span class="token punctuation">{</span>port<span class="token punctuation">}</span>
appendonly yes
EOF
docker run <span class="token operator">-</span>p $<span class="token punctuation">{</span>port<span class="token punctuation">}</span>:$<span class="token punctuation">{</span>port<span class="token punctuation">}</span> <span class="token operator">-</span>p 1$<span class="token punctuation">{</span>port<span class="token punctuation">}</span>:1$<span class="token punctuation">{</span>port<span class="token punctuation">}</span> <span class="token operator">--</span>name redis-$<span class="token punctuation">{</span>port<span class="token punctuation">}</span> \
<span class="token operator">-</span>v <span class="token operator">/</span>mydata/redis/node-$<span class="token punctuation">{</span>port<span class="token punctuation">}</span><span class="token operator">/</span><span class="token keyword">data</span>:<span class="token operator">/</span><span class="token keyword">data</span> \
<span class="token operator">-</span>v <span class="token operator">/</span>mydata/redis/node-$<span class="token punctuation">{</span>port<span class="token punctuation">}</span><span class="token operator">/</span>conf/redis<span class="token punctuation">.</span>conf:<span class="token operator">/</span>etc/redis/redis<span class="token punctuation">.</span>conf \
<span class="token operator">-</span>d redis:5<span class="token punctuation">.</span>0<span class="token punctuation">.</span>7 redis-server <span class="token operator">/</span>etc/redis/redis<span class="token punctuation">.</span>conf<span class="token punctuation">;</span> \
done
</code></pre> 
  <pre><code class="prism language-powershell">执行脚本
<span class="token comment"># sh redis-cluster.sh</span>
</code></pre> 
  <pre><code class="prism language-powershell">查看已运行容器
<span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE         COMMAND                  CREATED              STATUS              PORTS                                                                                                NAMES
8d53864a98ce   redis:5<span class="token punctuation">.</span>0<span class="token punctuation">.</span>7   <span class="token string">"docker-entrypoint.s…"</span>   About a minute ago   Up About a minute   0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:8006->8006/tcp<span class="token punctuation">,</span> :::8006->8006/tcp<span class="token punctuation">,</span> 6379/tcp<span class="token punctuation">,</span> 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:18006->18006/tcp<span class="token punctuation">,</span> :::18006->18006/tcp   redis-8006
e2b5da0f0605   redis:5<span class="token punctuation">.</span>0<span class="token punctuation">.</span>7   <span class="token string">"docker-entrypoint.s…"</span>   2 minutes ago        Up About a minute   0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:8005->8005/tcp<span class="token punctuation">,</span> :::8005->8005/tcp<span class="token punctuation">,</span> 6379/tcp<span class="token punctuation">,</span> 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:18005->18005/tcp<span class="token punctuation">,</span> :::18005->18005/tcp   redis-8005
70e8e8f15aea   redis:5<span class="token punctuation">.</span>0<span class="token punctuation">.</span>7   <span class="token string">"docker-entrypoint.s…"</span>   2 minutes ago        Up 2 minutes        0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:8004->8004/tcp<span class="token punctuation">,</span> :::8004->8004/tcp<span class="token punctuation">,</span> 6379/tcp<span class="token punctuation">,</span> 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:18004->18004/tcp<span class="token punctuation">,</span> :::18004->18004/tcp   redis-8004
dff8e4bf02b4   redis:5<span class="token punctuation">.</span>0<span class="token punctuation">.</span>7   <span class="token string">"docker-entrypoint.s…"</span>   2 minutes ago        Up 2 minutes        0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:8003->8003/tcp<span class="token punctuation">,</span> :::8003->8003/tcp<span class="token punctuation">,</span> 6379/tcp<span class="token punctuation">,</span> 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:18003->18003/tcp<span class="token punctuation">,</span> :::18003->18003/tcp   redis-8003
c34dc4c423ef   redis:5<span class="token punctuation">.</span>0<span class="token punctuation">.</span>7   <span class="token string">"docker-entrypoint.s…"</span>   2 minutes ago        Up 2 minutes        0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:8002->8002/tcp<span class="token punctuation">,</span> :::8002->8002/tcp<span class="token punctuation">,</span> 6379/tcp<span class="token punctuation">,</span> 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:18002->18002/tcp<span class="token punctuation">,</span> :::18002->18002/tcp   redis-8002
b8cb5feffb43   redis:5<span class="token punctuation">.</span>0<span class="token punctuation">.</span>7   <span class="token string">"docker-entrypoint.s…"</span>   2 minutes ago        Up 2 minutes        0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:8001->8001/tcp<span class="token punctuation">,</span> :::8001->8001/tcp<span class="token punctuation">,</span> 6379/tcp<span class="token punctuation">,</span> 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:18001->18001/tcp<span class="token punctuation">,</span> :::18001->18001/tcp   redis-8001
</code></pre> 
  <pre><code class="prism language-powershell">登录redis容器
<span class="token comment"># docker exec -it redis-8001 bash</span>
root@b8cb5feffb43:<span class="token operator">/</span><span class="token keyword">data</span><span class="token comment">#</span>
</code></pre> 
  <pre><code class="prism language-powershell">创建redis-cluster
root@b8cb5feffb43:<span class="token operator">/</span><span class="token keyword">data</span><span class="token comment"># redis-cli --cluster create 192.168.255.157:8001 192.168.255.157:8002 192.168.255.157:8003 192.168.255.157:8004 192.168.255.157:8005 192.168.255.157:8006 --cluster-replicas 1</span>
</code></pre> 
  <pre><code class="prism language-powershell">输出:
>>> Performing hash slots allocation on 6 nodes<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
Master<span class="token punctuation">[</span>0<span class="token punctuation">]</span> <span class="token operator">-</span>> Slots 0 <span class="token operator">-</span> 5460
Master<span class="token punctuation">[</span>1<span class="token punctuation">]</span> <span class="token operator">-</span>> Slots 5461 <span class="token operator">-</span> 10922
Master<span class="token punctuation">[</span>2<span class="token punctuation">]</span> <span class="token operator">-</span>> Slots 10923 <span class="token operator">-</span> 16383
Adding replica 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8005 to 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8001
Adding replica 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8006 to 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8002
Adding replica 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8004 to 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8003
>>> Trying to optimize slaves allocation <span class="token keyword">for</span> anti-affinity
<span class="token namespace">[WARNING]</span> Some slaves are in the same host as their master
M: abd07f1a2679fe77558bad3ff4b7ab70ec41efa5 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8001
   slots:<span class="token punctuation">[</span>0-5460<span class="token punctuation">]</span> <span class="token punctuation">(</span>5461 slots<span class="token punctuation">)</span> master
M: 40e69202bb3eab13a8157c33da6240bb31f2fd6f 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8002
   slots:<span class="token punctuation">[</span>5461-10922<span class="token punctuation">]</span> <span class="token punctuation">(</span>5462 slots<span class="token punctuation">)</span> master
M: 9a927abf3c2982ba9ffdb29176fc8ffa77a2cf03 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8003
   slots:<span class="token punctuation">[</span>10923-16383<span class="token punctuation">]</span> <span class="token punctuation">(</span>5461 slots<span class="token punctuation">)</span> master
S: 81d0a4056328830a555fcd75cf523d4c9d52205c 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8004
   replicates 9a927abf3c2982ba9ffdb29176fc8ffa77a2cf03
S: 8121a28519e5b52e4817913aa3969d9431bb68af 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8005
   replicates abd07f1a2679fe77558bad3ff4b7ab70ec41efa5
S: 3a8dd5343c0b8f5580bc44f6b3bb5b4371d4dde5 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8006
   replicates 40e69202bb3eab13a8157c33da6240bb31f2fd6f
Can I <span class="token function">set</span> the above configuration? <span class="token punctuation">(</span><span class="token function">type</span> <span class="token string">'yes'</span> to accept<span class="token punctuation">)</span>: yes 输入yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting <span class="token keyword">for</span> the cluster to join
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
>>> Performing Cluster Check <span class="token punctuation">(</span><span class="token keyword">using</span> node 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8001<span class="token punctuation">)</span>
M: abd07f1a2679fe77558bad3ff4b7ab70ec41efa5 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8001
   slots:<span class="token punctuation">[</span>0-5460<span class="token punctuation">]</span> <span class="token punctuation">(</span>5461 slots<span class="token punctuation">)</span> master
   1 additional replica<span class="token punctuation">(</span>s<span class="token punctuation">)</span>
S: 81d0a4056328830a555fcd75cf523d4c9d52205c 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8004
   slots: <span class="token punctuation">(</span>0 slots<span class="token punctuation">)</span> slave
   replicates 9a927abf3c2982ba9ffdb29176fc8ffa77a2cf03
M: 40e69202bb3eab13a8157c33da6240bb31f2fd6f 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8002
   slots:<span class="token punctuation">[</span>5461-10922<span class="token punctuation">]</span> <span class="token punctuation">(</span>5462 slots<span class="token punctuation">)</span> master
   1 additional replica<span class="token punctuation">(</span>s<span class="token punctuation">)</span>
S: 8121a28519e5b52e4817913aa3969d9431bb68af 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8005
   slots: <span class="token punctuation">(</span>0 slots<span class="token punctuation">)</span> slave
   replicates abd07f1a2679fe77558bad3ff4b7ab70ec41efa5
M: 9a927abf3c2982ba9ffdb29176fc8ffa77a2cf03 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8003
   slots:<span class="token punctuation">[</span>10923-16383<span class="token punctuation">]</span> <span class="token punctuation">(</span>5461 slots<span class="token punctuation">)</span> master
   1 additional replica<span class="token punctuation">(</span>s<span class="token punctuation">)</span>
S: 3a8dd5343c0b8f5580bc44f6b3bb5b4371d4dde5 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>255<span class="token punctuation">.</span>157:8006
   slots: <span class="token punctuation">(</span>0 slots<span class="token punctuation">)</span> slave
   replicates 40e69202bb3eab13a8157c33da6240bb31f2fd6f
<span class="token namespace">[OK]</span> All nodes agree about slots configuration<span class="token punctuation">.</span>
>>> Check <span class="token keyword">for</span> open slots<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
>>> Check slots coverage<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token namespace">[OK]</span> All 16384 slots covered<span class="token punctuation">.</span>
</code></pre> 
  <h1>八、使用Docker容器实现RabbitMQ部署</h1> 
  <h2>8.1 获取参考资料</h2> 
  <p><a href="http://img.e-com-net.com/image/info8/22ac8d29eb7d46cb86e683091fabdb49.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/22ac8d29eb7d46cb86e683091fabdb49.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第40张图片" width="650" height="537" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/9c1b1d1193d44234a4ed5e444759ff40.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/9c1b1d1193d44234a4ed5e444759ff40.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第41张图片" width="650" height="279" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/07f6797937af4a03ab23e3f59a27411c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/07f6797937af4a03ab23e3f59a27411c.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第42张图片" width="650" height="369" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/fe63e0010df146558a747f6ae67864eb.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/fe63e0010df146558a747f6ae67864eb.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第43张图片" width="650" height="355" style="border:1px solid black;"></a></p> 
  <h2>8.2 部署RabbitMQ</h2> 
  <blockquote> 
   <p>部署带管理控制台的RabbitMQ</p> 
  </blockquote> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 -v /opt/rabbitmq:/var/lib/rabbitmq rabbitmq:management</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS         PORTS                                                                                                                                                                                                                                             NAMES
97d28093faa4   rabbitmq:management   <span class="token string">"docker-entrypoint.s…"</span>   11 seconds ago   Up 6 seconds   0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:4369->4369/tcp<span class="token punctuation">,</span> :::4369->4369/tcp<span class="token punctuation">,</span> 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:5671-5672->5671-5672/tcp<span class="token punctuation">,</span> :::5671-5672->5671-5672/tcp<span class="token punctuation">,</span> 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:15671-15672->15671-15672/tcp<span class="token punctuation">,</span> :::15671-15672->15671-15672/tcp<span class="token punctuation">,</span> 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:25672->25672/tcp<span class="token punctuation">,</span> :::25672->25672/tcp<span class="token punctuation">,</span> 15691-15692/tcp   rabbitmq
</code></pre> 
  <pre><code class="prism language-powershell">端口说明:
4369<span class="token punctuation">,</span> 25672 <span class="token punctuation">(</span>Erlang发现&集群端口<span class="token punctuation">)</span>
5672<span class="token punctuation">,</span> 5671 <span class="token punctuation">(</span>AMQP端口<span class="token punctuation">)</span>
15672 <span class="token punctuation">(</span>web管理后台端口<span class="token punctuation">)</span>
61613<span class="token punctuation">,</span> 61614 <span class="token punctuation">(</span>STOMP协议端口<span class="token punctuation">)</span>
1883<span class="token punctuation">,</span> 8883 <span class="token punctuation">(</span>MQTT协议端口<span class="token punctuation">)</span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/3c5fb17b80b2400588b1d3493d7e9b83.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/3c5fb17b80b2400588b1d3493d7e9b83.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第44张图片" width="650" height="177" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/509cf6a8c64c4e31a617119cc26a09f1.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/509cf6a8c64c4e31a617119cc26a09f1.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第45张图片" width="650" height="198" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/d9cd4f0d858a44e6b16fcf4c7f68c4e7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d9cd4f0d858a44e6b16fcf4c7f68c4e7.jpg" alt="【云原生】第五篇--Docker容器化部署企业级应用集群_第46张图片" width="650" height="359" style="border:1px solid black;"></a></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1547048524372316160"></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">你可能感兴趣的:(云原生,docker,容器,云原生)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1950223356833886208.htm"
                           title="CentOS容器没有ip addr命令" target="_blank">CentOS容器没有ip addr命令</a>
                        <span class="text-muted">BLZxiaopang</span>
<a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a>
                        <div>centos容器没有ip命令[root@Centos/]#ipadd-bash:ip:commandnotfound[root@Centos/]#yum-yinstallinitscripts</div>
                    </li>
                    <li><a href="/article/1950207854388506624.htm"
                           title="深入理解 Tomcat Wrapper 原理" target="_blank">深入理解 Tomcat Wrapper 原理</a>
                        <span class="text-muted">北漂老男人</span>
<a class="tag" taget="_blank" href="/search/Tomcat/1.htm">Tomcat</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>深入理解TomcatWrapper原理一、引言在Tomcat的分层容器架构中,Wrapper作为最底层的容器,专门负责管理单个Servlet的生命周期及请求分发。每一个Servlet(包括JSP、Filter等)都对应一个Wrapper。Wrapper是Servlet规范与Tomcat容器实现之间的桥梁,直接关系到请求的分发效率、Servlet的加载与重用、安全隔离等。本文将系统剖析Wrapper</div>
                    </li>
                    <li><a href="/article/1950201927899869184.htm"
                           title="vllm本地台式机运行(3070显存8G)" target="_blank">vllm本地台式机运行(3070显存8G)</a>
                        <span class="text-muted">名明鸣冥</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/Qwen/1.htm">Qwen</a><a class="tag" taget="_blank" href="/search/vllm/1.htm">vllm</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E9%83%A8%E7%BD%B2/1.htm">大模型部署</a>
                        <div>ollama和vllm的对比这块对比网上都很多资料了,这边使用上简单感觉就是ollama很方便部署,占用资料更少,但后续性能会差点,各选项也不一样.ollama安装和使用和docker很像,就不赘述了,这里是看vllm的安装硬件情况介绍30708G显存+-------------------------------------------------------------------------</div>
                    </li>
                    <li><a href="/article/1950192091439099904.htm"
                           title="K8S 常用命令全解析:高效管理容器化集群" target="_blank">K8S 常用命令全解析:高效管理容器化集群</a>
                        <span class="text-muted">恩爸编程</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><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/k8s%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/1.htm">k8s常用命令</a><a class="tag" taget="_blank" href="/search/k8s%E6%9C%89%E5%93%AA%E4%BA%9B%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/1.htm">k8s有哪些常用命令</a><a class="tag" taget="_blank" href="/search/k8s%E5%91%BD%E4%BB%A4%E6%9C%89%E5%93%AA%E4%BA%9B/1.htm">k8s命令有哪些</a><a class="tag" taget="_blank" href="/search/K8S%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E6%9C%89%E5%93%AA%E4%BA%9B/1.htm">K8S常用命令有哪些</a>
                        <div>K8S常用命令全解析:高效管理容器化集群一、引言Kubernetes(K8S)作为强大的容器编排平台,其丰富的命令行工具(kubectl)为用户提供了便捷的方式来管理集群中的各种资源。熟练掌握K8S常用命令对于开发人员和运维人员至关重要,能够有效提高容器化应用的部署、监控与维护效率。本文将详细介绍一些K8S常用命令及其使用案例。二、基础资源操作命令(一)kubectlcreate功能:用于创建K8</div>
                    </li>
                    <li><a href="/article/1950186041465958400.htm"
                           title="GitLab 18.2 发布几十项与 DevSecOps 有关的功能,可升级体验【二】" target="_blank">GitLab 18.2 发布几十项与 DevSecOps 有关的功能,可升级体验【二】</a>
                        <span class="text-muted">极小狐</span>
<a class="tag" taget="_blank" href="/search/gitlab/1.htm">gitlab</a><a class="tag" taget="_blank" href="/search/%E6%9E%81%E7%8B%90gitlab/1.htm">极狐gitlab</a><a class="tag" taget="_blank" href="/search/devsecops/1.htm">devsecops</a><a class="tag" taget="_blank" href="/search/devops/1.htm">devops</a><a class="tag" taget="_blank" href="/search/ci%2Fcd/1.htm">ci/cd</a>
                        <div>沿袭我们的月度发布传统,极狐GitLab发布了18.2版本,该版本带来了议题和任务的自定义工作流状态、新的合并请求主页、新的群组概览合规仪表盘、下载安全报告的PDF导出文件、中心化的安全策略管理(Beta)等几十个重点功能的改进。下面是对部分重点功能的详细解读。关于极狐GitLab的安装升级,可以查看官方指导文档。18.2.0容器镜像registry.gitlab.cn/omnibus/gitla</div>
                    </li>
                    <li><a href="/article/1950183520588591104.htm"
                           title="搭建云手机教程" target="_blank">搭建云手机教程</a>
                        <span class="text-muted">云博客-资源宝</span>
<a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA/1.htm">智能手机</a>
                        <div>搭建云手机教程本教程由分享:ziyouhua资源宝整理分享:www.httple.net首先检查自己vps是否支持这个项目sudoaptinstallcpu-checkerkvm-ok如果显示INFO:/dev/kvmexistsKVMaccelerationcanbeused表示支持,可以继续往下看ac13首先安装dockercurl-fsSLhttps://get.docker.com|sud</div>
                    </li>
                    <li><a href="/article/1950176839670493184.htm"
                           title="全局修改GitLab14默认语言为中文" target="_blank">全局修改GitLab14默认语言为中文</a>
                        <span class="text-muted"></span>

                        <div>GitLab安装成功后默认语言是英语,只有登录后才能手动指定为中文,且这个配置只对自己生效,经查阅资料后,总结全局修改GitLab14默认语言为中文方法如下:0.进入容器如果你用Docker部署的GitLab,那么需要使用命令sudodockerexec-itgitlab/bin/bash进入容器1.修改rails配置文件打开/opt/gitlab/embedded/service/gitlab-</div>
                    </li>
                    <li><a href="/article/1950161707464716288.htm"
                           title="Ubuntu Docker 安装Redis" target="_blank">Ubuntu Docker 安装Redis</a>
                        <span class="text-muted">LLLL96</span>
<a class="tag" taget="_blank" href="/search/Ubuntu/1.htm">Ubuntu</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a>
                        <div>目录介绍1.数据结构丰富2.高性能3.持久化1.拉取Redis镜像2.创建挂载目录(可选)3.配置Redis持久化(可选)4.使用配置文件运行容器5.查看redis日志介绍1.数据结构丰富Redis支持多种数据结构,包括:字符串(String):可以用来存储任何类型的数据,例如文本、数字或二进制数据。哈希(Hash):存储字段和值的映射,适合用于表示对象。列表(List):有序的字符串列表,可以用</div>
                    </li>
                    <li><a href="/article/1950154523955752960.htm"
                           title="Docker" target="_blank">Docker</a>
                        <span class="text-muted">℡余晖^</span>
<a class="tag" taget="_blank" href="/search/%E9%BB%91%E9%A9%AC%E7%82%B9%E8%AF%84%E9%A1%B9%E7%9B%AE%E7%9B%B8%E5%85%B3%E9%97%AE%E9%A2%98%E5%92%8C%E7%AC%94%E8%AE%B0/1.htm">黑马点评项目相关问题和笔记</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/eureka/1.htm">eureka</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a>
                        <div>在黑马点评项目中,在谈到Redisson解决redis的主从一致性问题时,弹幕提到了Docker,本文来简单了解一下Docker,我的初步理解运维是维护多个集群的稳定,那它和VM虚拟机的区别又是什么?,如果要更深入地理解与学习(运维工程师),可以到b站搜索专门的课程(SpringCloud)。一、Docker是什么?重新理解“容器化”的本质1.1Docker的定义Docker是一个开源的容器化平台</div>
                    </li>
                    <li><a href="/article/1950144063588069376.htm"
                           title="Serverless架构下Spring Function的创新实践" target="_blank">Serverless架构下Spring Function的创新实践</a>
                        <span class="text-muted">tmjpz04412</span>
<a class="tag" taget="_blank" href="/search/serverless/1.htm">serverless</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                        <div>引言:Serverless与Spring生态的交汇背景介绍:云计算与Serverless架构的兴起Spring生态的演进与云原生适配性核心问题:传统Spring应用如何融入Serverless范式Serverless架构的核心特征与挑战事件驱动、弹性伸缩与按需计费冷启动问题与性能优化需求Spring应用在Serverless环境中的典型瓶颈(如依赖注入、上下文初始化)SpringFunction的</div>
                    </li>
                    <li><a href="/article/1950143934961348608.htm"
                           title="Spring Boot与云原生:微服务架构的创新实践" target="_blank">Spring Boot与云原生:微服务架构的创新实践</a>
                        <span class="text-muted">tmjpz04412</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</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><a class="tag" taget="_blank" href="/search/graphql/1.htm">graphql</a>
                        <div>引言:Spring生态的演进与现状Spring框架的发展历程与核心设计理念当前Spring生态的核心组件(SpringBoot、SpringCloud、SpringData等)行业对Spring生态的依赖与创新需求SpringBoot的创新实践1.自动化配置与启动优化条件装配(@Conditional)的深度定制案例启动类加载机制与类路径扫描优化示例:通过自定义Starter实现快速集成第三方服务</div>
                    </li>
                    <li><a href="/article/1950137877904027648.htm"
                           title="Docker部署Minio" target="_blank">Docker部署Minio</a>
                        <span class="text-muted">YiShuoChen666</span>
<a class="tag" taget="_blank" href="/search/eureka/1.htm">eureka</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/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/minio/1.htm">minio</a>
                        <div>一、拉取镜像dockerpullminio/minio:RELEASE.2025-04-22T22-12-26Z注:这里使用的版本是RELEASE.2025-04-22T22-12-26Z,最新的版本Web-UI界面没有管理bucket和其它的操作按钮,需要通过mc命令来实现,这对于新手很不友好二、创建目录,来存放minio的配置和将来放的文件mkdir-p/home/minio/configmk</div>
                    </li>
                    <li><a href="/article/1950134417968132096.htm"
                           title="20个月幼儿游戏" target="_blank">20个月幼儿游戏</a>
                        <span class="text-muted">一只暴躁的小仙女</span>

                        <div>这个阶段注重宝宝平衡能力协调发展,蹲下起立和弯腰拾物,各种能力相互配合,逐步学会复杂的动作。宝宝已经会扭动门把手,会自己开门走出房间。玩沙给宝宝准备一堆干净的细沙和一个小桶、一个小铲,让宝宝玩耍,看细沙从指间流出。然后用水壶把干沙打湿,用塑料小碗制作出小沙饼,宝宝会非常兴奋,会找出不同形状的塑料容器来制作不同形状的沙坯;也可教宝宝用小铲子铲出河流,架上积木做的小桥,陪宝宝玩一阵后,妈妈可以去做自己</div>
                    </li>
                    <li><a href="/article/1950134096558616576.htm"
                           title="Python STL概念学习与代码实践" target="_blank">Python STL概念学习与代码实践</a>
                        <span class="text-muted">体制教科书</span>

                        <div>本文还有配套的精品资源,点击获取简介:通过”py_stl_learning”项目,学习者可以使用Python实现和理解C++STL的概念,包括数据结构、算法、容器适配器、模板和泛型容器等。Python中的列表、集合、字典等数据结构与STL中的vector、set、map等类似,而Python的itertools和functools模块提供了STL风格的算法功能。Python通过其面向对象的特性以及</div>
                    </li>
                    <li><a href="/article/1950131321980383232.htm"
                           title="深入了解 Kubernetes(k8s):从概念到实践" target="_blank">深入了解 Kubernetes(k8s):从概念到实践</a>
                        <span class="text-muted"></span>

                        <div>目录一、k8s核心概念二、k8s的优势三、k8s架构组件控制平面组件节点组件四、k8s+docker运行前后端分离项目的例子1.准备前端项目2.准备后端项目3.创建k8s部署配置文件4.部署应用到k8s集群在当今云计算和容器化技术飞速发展的时代,Kubernetes(简称k8s)已成为容器编排领域的事实标准。无论是互联网巨头、传统企业还是初创公司,都在广泛采用k8s来管理和部署容器化应用。本文将带</div>
                    </li>
                    <li><a href="/article/1950117601879322624.htm"
                           title="《教学勇气》——阅读第287天" target="_blank">《教学勇气》——阅读第287天</a>
                        <span class="text-muted">清镇052李微</span>

                        <div>今天是我勇气读书会打卡阅读第287天。书名:《教学勇气》。时间:2019年10月19日。内容:停滞、绝望与希望。文章中说到制度阻力抗衡的是社会改革运动,这两者即对立又统一的关系,机构组织和变革运动双方都扮演着创造性的角色,变革运动代表的是流动与改变,它是一个能量输送更新和变迁的过程,而机构组织代表着秩序和维持的原则,是保存历代来之不易的财富的容器,两者是相互依存的。图片发自App</div>
                    </li>
                    <li><a href="/article/1950094764498022400.htm"
                           title="Coze Studio 架构拆解:AI Agent 开发平台项目结构全分析" target="_blank">Coze Studio 架构拆解:AI Agent 开发平台项目结构全分析</a>
                        <span class="text-muted">代码简单说</span>
<a class="tag" taget="_blank" href="/search/2025%E5%BC%80%E5%8F%91%E5%BF%85%E5%A4%87%28%E9%99%90%E6%97%B6%E7%89%B9%E6%83%A0%29/1.htm">2025开发必备(限时特惠)</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%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/Coze/1.htm">Coze</a><a class="tag" taget="_blank" href="/search/Studio/1.htm">Studio</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/Agent/1.htm">Agent</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E5%B9%B3%E5%8F%B0/1.htm">开发平台</a><a class="tag" taget="_blank" href="/search/%E5%85%A8%E6%A0%88/1.htm">全栈</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E7%A8%8B%E5%8C%96/1.htm">工程化</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E8%A7%A3%E6%9E%B6%E6%9E%84/1.htm">图解架构</a>
                        <div>CozeStudio架构拆解:AIAgent开发平台项目结构全分析标签:CozeStudio项目架构、领域驱动设计DDD、全栈开发规范、Hertz框架、前后端协作、云原生容器、前端测试、IDL接口设计、微服务解耦、AI开发平台源码分析在最近研究AIAgent开发平台的过程中,我深入分析了刚刚开源的CozeStudio项目。这套系统是国内少有的开源全栈AI工程化项目,代码整洁、架构先进,特别是它基于</div>
                    </li>
                    <li><a href="/article/1950089974804180992.htm"
                           title="9、Docker Compose 实战" target="_blank">9、Docker Compose 实战</a>
                        <span class="text-muted">小醉你真好</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E9%83%A8%E7%BD%B2%E4%B8%8D%E6%B1%82%E4%BA%BA/1.htm">部署不求人</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>DockerCompose实战教程(含完整Nginx案例+配置项详解)适合读者:开发者、后端工程师、运维工程师、初学者环境要求:CentOS9+Docker已安装教程亮点:实战驱动、配置项详解、挂载说明、可直接复制使用标签:#Docker#DockerCompose#运维实战#Nginx部署一、什么是DockerCompose?DockerCompose是Docker官方推出的多容器应用编排工具,</div>
                    </li>
                    <li><a href="/article/1950089975504629760.htm"
                           title="CentOS 7 安装最新版Docker教程" target="_blank">CentOS 7 安装最新版Docker教程</a>
                        <span class="text-muted">朽~</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
                        <div>CentOS7Docker安装教程1、更新yum2、安装`yum-utils`3、通过`yum-config-manager`添加dockerrepository4、安装docker4.1、直接安装最新版本4.2、或者安装指定版本5、启动docker6、测试7、卸载dockerdocker安装官方文档:InstallDockerEngineonCentOS1、更新yumyumupdate-y2、安</div>
                    </li>
                    <li><a href="/article/1950076488409739264.htm"
                           title="Consul 与 Hive:云原生数据仓库集成" target="_blank">Consul 与 Hive:云原生数据仓库集成</a>
                        <span class="text-muted">AI云原生与云计算技术学院</span>
<a class="tag" taget="_blank" href="/search/AI%E4%BA%91%E5%8E%9F%E7%94%9F%E4%B8%8E%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">AI云原生与云计算</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E4%BB%93%E5%BA%93/1.htm">数据仓库</a><a class="tag" taget="_blank" href="/search/consul/1.htm">consul</a><a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a>
                        <div>Consul与Hive:云原生数据仓库集成关键词:Consul、Hive、云原生、数据仓库集成、服务发现摘要:本文深入探讨了Consul与Hive在云原生环境下的数据仓库集成。首先介绍了集成的背景和相关概念,包括Consul的服务发现机制和Hive作为数据仓库的特点。接着详细阐述了核心概念及联系,通过文本示意图和Mermaid流程图展示其架构。对集成所涉及的核心算法原理进行了讲解,并给出Pytho</div>
                    </li>
                    <li><a href="/article/1950062622913130496.htm"
                           title="个人笔记集合框架" target="_blank">个人笔记集合框架</a>
                        <span class="text-muted">清秀咸鱼</span>
<a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                        <div>集合框架集合概念:对象的容器,定义了对多个对象进行操作的常用方法。可实现数组的功能。和数组区别:(1)数组长度固定,集合长度不固定(2)数组可以存储基本类型和引用类型,集合只能存储引用类型位置:java.util.*;Collection根接口,父接口特点:代表一组任意类型的对象,无序、无下标、不能重复。booleanadd(0bjectobj)//添加一个对象。booleanaddAll(Col</div>
                    </li>
                    <li><a href="/article/1950061867435094016.htm"
                           title="c++ STL容器 --- 列表initializer_list" target="_blank">c++ STL容器 --- 列表initializer_list</a>
                        <span class="text-muted">qiuqiuyaq</span>
<a class="tag" taget="_blank" href="/search/STL%E5%AE%B9%E5%99%A8/1.htm">STL容器</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a>
                        <div>包含头文件在标准库中的容器可以直接用等号的方式初始化容器→直接用等号赋值{}列表就是一个{}数据一般情况下,如果想采用{}的方式初始化,类当中必须要有与之相匹配的参数的构造函数提供了一个构造函数,用initializer_list当做构造函数的参数,就可以实现我们想要的效果(有几个参数都可以)initializer_list主要是用在构造函数当中,可以忽略参数的个数去做初始化(两个、三个、多个..</div>
                    </li>
                    <li><a href="/article/1950051021308882944.htm"
                           title="C++---初始化列表(initializer_list)" target="_blank">C++---初始化列表(initializer_list)</a>
                        <span class="text-muted">MzKyle</span>
<a class="tag" taget="_blank" href="/search/C%2FC%2B%2B/1.htm">C/C++</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/list/1.htm">list</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>在C++编程中,我们经常会用到形如vectorv={1,2,3,4};的语法——用花括号包裹一组元素直接初始化容器。这种直观且简洁的写法背后,依赖于C++11引入的一个特殊类型:std::initializer_list。它不仅是列表初始化的“桥梁”,更是C++标准库设计中连接语法糖与底层实现的关键机制。一、initializer_list的本质std::initializer_list是C++1</div>
                    </li>
                    <li><a href="/article/1950036519733489664.htm"
                           title="docker-基础入门" target="_blank">docker-基础入门</a>
                        <span class="text-muted"></span>

                        <div>docker入门dockers安装1.首先如果系统中已经存在旧的Docker,则先卸载:yumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine\docker-selinux2.配置Dock</div>
                    </li>
                    <li><a href="/article/1950025172257927168.htm"
                           title="Milvus 实战全流程" target="_blank">Milvus 实战全流程</a>
                        <span class="text-muted"></span>

                        <div>学习路径总览1.Milvus基础知识什么是向量数据库?Milvus的核心概念(collection、field、index、partition、segment)Milvus和Faiss、Annoy、HNSW的区别2.安装与部署Docker快速部署Milvus(推荐)本地开发环境安装使用MilvusLite本地测试3.数据建模与管理创建Collection与Schema定义(包含向量字段和元数据字段</div>
                    </li>
                    <li><a href="/article/1949987345340100608.htm"
                           title="Python中的解包" target="_blank">Python中的解包</a>
                        <span class="text-muted">_nephrologist_</span>
<a class="tag" taget="_blank" href="/search/Python%E5%9F%BA%E7%A1%80/1.htm">Python基础</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>解包(unpacking)是指将一个容器(如列表、元组、字典、集合等)中的元素分别赋值给多个变量的过程。1、列表解包:list=[1,2,3]a,b,c=listprint(a,b,c)#输出:123list=[1,2,[3,4,5]]a,b,c=listprint(a,b,c)#输出:12[3,4,5]2、元组解包:tuple=(1,2,3)a,b,c=tuple#等号左边的变量个数必须等于元组</div>
                    </li>
                    <li><a href="/article/1949973342853328896.htm"
                           title="零基础学习性能测试第九章:全链路追踪-项目实操" target="_blank">零基础学习性能测试第九章:全链路追踪-项目实操</a>
                        <span class="text-muted">试着</span>
<a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">性能测试</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">性能测试</a><a class="tag" taget="_blank" href="/search/%E9%9B%B6%E5%9F%BA%E7%A1%80/1.htm">零基础</a>
                        <div>目录一、实战项目架构(电商下单系统)二、环境搭建(30分钟)1.使用DockerCompose一键部署2.启动命令三、项目集成SkyWalking1.SpringBoot项目添加Agent2.关键业务代码埋点四、全链路压测实战1.JMeter压测脚本配置2.执行压测命令五、全链路追踪分析实战1.在SkyWalking中定位瓶颈2.真实瓶颈分析案例六、中间件性能分析1.Redis性能分析2.MySQ</div>
                    </li>
                    <li><a href="/article/1949958843928735744.htm"
                           title="运维-资产梳理" target="_blank">运维-资产梳理</a>
                        <span class="text-muted"></span>

                        <div>资产梳理一、明确目标与范围1.1、确定梳理目的网络安全:缩小攻击面、识别风险点。资源配置:优化资源利用率、降低成本。合规要求:满足法律法规或行业标准(如等保、ISO27001)。1.2、界定资产范围物理资产:服务器、网络设备、终端设备、IoT设备等。数字资产:操作系统、数据库、应用程序、域名、IP地址、云资源、容器/K8s集群、SaaS应用。数据资产:敏感数据(如客户信息、财务数据)、业务数据、备</div>
                    </li>
                    <li><a href="/article/1949950148796805120.htm"
                           title="布局管理器android,Android课程---布局管理器之相对布局(一)" target="_blank">布局管理器android,Android课程---布局管理器之相对布局(一)</a>
                        <span class="text-muted"></span>

                        <div>下面示例的是在父容器里如何设置按钮的位置,难度:***,重点是找到一个主按钮,设置它的id,然后根据它来设置其他按钮在父容器的位置。代码示例:android:layout_width="match_parent"android:layout_height="match_parent">android:layout_width="wrap_content"android:layout_height=</div>
                    </li>
                    <li><a href="/article/1949945732429574144.htm"
                           title="Python爬虫【三十五章】爬虫高阶:基于Docker集群的动态页面自动化采集系统实战" target="_blank">Python爬虫【三十五章】爬虫高阶:基于Docker集群的动态页面自动化采集系统实战</a>
                        <span class="text-muted">程序员_CLUB</span>
<a class="tag" taget="_blank" href="/search/Python%E5%85%A5%E9%97%A8%E5%88%B0%E8%BF%9B%E9%98%B6/1.htm">Python入门到进阶</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a>
                        <div>目录一、技术演进与行业痛点二、核心技术栈深度解析2.1动态渲染三件套2.2Docker集群架构设计2.3自动化调度系统三、进阶实战案例3.1电商价格监控系统1.技术指标对比2.实现细节3.2新闻聚合平台1.WebSocket监控2.字体反爬破解四、性能优化与运维方案4.1资源消耗对比测试4.2集群运维体系五、总结与未来展望六、Python爬虫相关文章(推荐)一、技术演进与行业痛点在Web3.0时代</div>
                    </li>
                                <li><a href="/article/25.htm"
                                       title="Java实现的简单双向Map,支持重复Value" target="_blank">Java实现的简单双向Map,支持重复Value</a>
                                    <span class="text-muted">superlxw1234</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%8F%8C%E5%90%91map/1.htm">双向map</a>
                                    <div>关键字:Java双向Map、DualHashBidiMap 
  
  
有个需求,需要根据即时修改Map结构中的Value值,比如,将Map中所有value=V1的记录改成value=V2,key保持不变。 
  
数据量比较大,遍历Map性能太差,这就需要根据Value先找到Key,然后去修改。 
  
即:既要根据Key找Value,又要根据Value</div>
                                </li>
                                <li><a href="/article/152.htm"
                                       title="PL/SQL触发器基础及例子" target="_blank">PL/SQL触发器基础及例子</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/oracle%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">oracle数据库</a><a class="tag" taget="_blank" href="/search/%E8%A7%A6%E5%8F%91%E5%99%A8/1.htm">触发器</a><a class="tag" taget="_blank" href="/search/PL%2FSQL%E7%BC%96%E7%A8%8B/1.htm">PL/SQL编程</a>
                                    <div>  
触发器的简介; 
触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。触发器和过程函数类似 过程函数必须要调用, 
  
一个表中最多只能有12个触发器类型的,触发器和过程函数相似 触发器不需要调用直接执行,


 
触发时间:指明触发器何时执行,该值可取:
before:表示在数据库动作之前触发</div>
                                </li>
                                <li><a href="/article/279.htm"
                                       title="[时空与探索]穿越时空的一些问题" target="_blank">[时空与探索]穿越时空的一些问题</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E9%97%AE%E9%A2%98/1.htm">问题</a>
                                    <div> 
      我们还没有进行过任何数学形式上的证明,仅仅是一个猜想..... 
 
      这个猜想就是; 任何有质量的物体(哪怕只有一微克)都不可能穿越时空,该物体强行穿越时空的时候,物体的质量会与时空粒子产生反应,物体会变成暗物质,也就是说,任何物体穿越时空会变成暗物质..(暗物质就我的理</div>
                                </li>
                                <li><a href="/article/406.htm"
                                       title="easy ui datagrid上移下移一行" target="_blank">easy ui datagrid上移下移一行</a>
                                    <span class="text-muted">商人shang</span>
<a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/%E4%B8%8A%E7%A7%BB%E4%B8%8B%E7%A7%BB/1.htm">上移下移</a><a class="tag" taget="_blank" href="/search/easyui/1.htm">easyui</a><a class="tag" taget="_blank" href="/search/datagrid/1.htm">datagrid</a>
                                    <div>/**
 * 向上移动一行
 * 
 * @param dg
 * @param row
 */
function moveupRow(dg, row) {
	var datagrid = $(dg);
	var index = datagrid.datagrid("getRowIndex", row);
	if (isFirstRow(dg, row)) {</div>
                                </li>
                                <li><a href="/article/533.htm"
                                       title="Java反射" target="_blank">Java反射</a>
                                    <span class="text-muted">oloz</span>
<a class="tag" taget="_blank" href="/search/%E5%8F%8D%E5%B0%84/1.htm">反射</a>
                                    <div>本人菜鸟,今天恰好有时间,写写博客,总结复习一下java反射方面的知识,欢迎大家探讨交流学习指教 
 
首先看看java中的Class 
 
package demo;

public class ClassTest {
	
	/*先了解java中的Class*/
	
	public static void main(String[] args) {
		
    //任何一个类都</div>
                                </li>
                                <li><a href="/article/660.htm"
                                       title="springMVC 使用JSR-303 Validation验证" target="_blank">springMVC 使用JSR-303 Validation验证</a>
                                    <span class="text-muted">杨白白</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a>
                                    <div>JSR-303是一个数据验证的规范,但是spring并没有对其进行实现,Hibernate Validator是实现了这一规范的,通过此这个实现来讲SpringMVC对JSR-303的支持。 
 JSR-303的校验是基于注解的,首先要把这些注解标记在需要验证的实体类的属性上或是其对应的get方法上。 
 
登录需要验证类 
 
public class Login {

	@NotEmpty</div>
                                </li>
                                <li><a href="/article/787.htm"
                                       title="log4j" target="_blank">log4j</a>
                                    <span class="text-muted">香水浓</span>
<a class="tag" taget="_blank" href="/search/log4j/1.htm">log4j</a>
                                    <div>
log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, HTML, DATABASE
#log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, ROLLINGFILE, HTML

#console
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4</div>
                                </li>
                                <li><a href="/article/914.htm"
                                       title="使用ajax和history.pushState无刷新改变页面URL" target="_blank">使用ajax和history.pushState无刷新改变页面URL</a>
                                    <span class="text-muted">agevs</span>
<a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/chrome/1.htm">chrome</a>
                                    <div>表现 
如果你使用chrome或者firefox等浏览器访问本博客、github.com、plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发生了了改变。并且能够很好的支持浏览器前进和后退。 
是什么有这么强大的功能呢? 
HTML5里引用了新的API,history.pushState和history.replaceState,就是通过</div>
                                </li>
                                <li><a href="/article/1041.htm"
                                       title="centos中文乱码" target="_blank">centos中文乱码</a>
                                    <span class="text-muted">AILIKES</span>
<a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/OS/1.htm">OS</a><a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a>
                                    <div>一、CentOS系统访问 g.cn ,发现中文乱码。 
于是用以前的方式:yum -y install fonts-chinese 
CentOS系统安装后,还是不能显示中文字体。我使用 gedit 编辑源码,其中文注释也为乱码。     
  
      
  
后来,终于找到以下方法可以解决,需要两个中文支持的包: 
fonts-chinese-3.02-12.</div>
                                </li>
                                <li><a href="/article/1168.htm"
                                       title="触发器" target="_blank">触发器</a>
                                    <span class="text-muted">baalwolf</span>
<a class="tag" taget="_blank" href="/search/%E8%A7%A6%E5%8F%91%E5%99%A8/1.htm">触发器</a>
                                    <div>触发器(trigger):监视某种情况,并触发某种操作。 
触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete) 
语法: 
create trigger triggerName 
after/before </div>
                                </li>
                                <li><a href="/article/1295.htm"
                                       title="JS正则表达式的i m g" target="_blank">JS正则表达式的i m g</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a>
                                    <div>        g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止。         i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写。         m:表示</div>
                                </li>
                                <li><a href="/article/1422.htm"
                                       title="HTML5模式和Hashbang模式" target="_blank">HTML5模式和Hashbang模式</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/Hashbang%E6%A8%A1%E5%BC%8F/1.htm">Hashbang模式</a><a class="tag" taget="_blank" href="/search/HTML5%E6%A8%A1%E5%BC%8F/1.htm">HTML5模式</a>
                                    <div>        我们可以用$locationProvider来配置$location服务(可以采用注入的方式,就像AngularJS中其他所有东西一样)。这里provider的两个参数很有意思,介绍如下。 
html5Mode 
        一个布尔值,标识$location服务是否运行在HTML5模式下。 
ha</div>
                                </li>
                                <li><a href="/article/1549.htm"
                                       title="[Maven学习笔记六]Maven生命周期" target="_blank">[Maven学习笔记六]Maven生命周期</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a>
                                    <div>从mvn test的输出开始说起 
  
当我们在user-core中执行mvn test时,执行的输出如下: 
  
/software/devsoftware/jdk1.7.0_55/bin/java -Dmaven.home=/software/devsoftware/apache-maven-3.2.1 -Dclassworlds.conf=/software/devs</div>
                                </li>
                                <li><a href="/article/1676.htm"
                                       title="【Hadoop七】基于Yarn的Hadoop Map Reduce容错" target="_blank">【Hadoop七】基于Yarn的Hadoop Map Reduce容错</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a>
                                    <div>运行于Yarn的Map Reduce作业,可能发生失败的点包括 
 
 Task Failure 
 Application Master Failure 
 Node Manager Failure 
 Resource Manager Failure 
 1. Task Failure 
任务执行过程中产生的异常和JVM的意外终止会汇报给Application Master。僵死的任务也会被A</div>
                                </li>
                                <li><a href="/article/1803.htm"
                                       title="记一次数据推送的异常解决端口解决" target="_blank">记一次数据推送的异常解决端口解决</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%B0%E4%B8%80%E6%AC%A1%E6%95%B0%E6%8D%AE%E6%8E%A8%E9%80%81%E7%9A%84%E5%BC%82%E5%B8%B8%E8%A7%A3%E5%86%B3/1.htm">记一次数据推送的异常解决</a>
                                    <div>   需求:从db获取数据然后推送到B 
        程序开发完成,上jboss,刚开始报了很多错,逐一解决,可最后显示连接不到数据库。机房的同事说可以ping 通。 
    自已画了个图,逐一排除,把linux 防火墙 和 setenforce 设置最低。 
   service iptables stop 
</div>
                                </li>
                                <li><a href="/article/1930.htm"
                                       title="巧用视错觉-UI更有趣" target="_blank">巧用视错觉-UI更有趣</a>
                                    <span class="text-muted">brotherlamp</span>
<a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/ui%E8%A7%86%E9%A2%91/1.htm">ui视频</a><a class="tag" taget="_blank" href="/search/ui%E6%95%99%E7%A8%8B/1.htm">ui教程</a><a class="tag" taget="_blank" href="/search/ui%E8%87%AA%E5%AD%A6/1.htm">ui自学</a><a class="tag" taget="_blank" href="/search/ui%E8%B5%84%E6%96%99/1.htm">ui资料</a>
                                    <div>我们每个人在生活中都曾感受过视错觉(optical illusion)的魅力。 
视错觉现象是双眼跟我们开的一个玩笑,而我们往往还心甘情愿地接受我们看到的假象。其实不止如此,视觉错现象的背后还有一个重要的科学原理——格式塔原理。 
格式塔原理解释了人们如何以视觉方式感觉物体,以及图像的结构,视角,大小等要素是如何影响我们的视觉的。 
在下面这篇文章中,我们首先会简单介绍一下格式塔原理中的基本概念,</div>
                                </li>
                                <li><a href="/article/2057.htm"
                                       title="线段树-poj1177-N个矩形求边长(离散化+扫描线)" target="_blank">线段树-poj1177-N个矩形求边长(离散化+扫描线)</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E6%AE%B5%E6%A0%91/1.htm">线段树</a>
                                    <div>package com.ljn.base;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;

/**
 * POJ 1177 (线段树+离散化+扫描线),题目链接为http://poj.org/problem?id=1177
</div>
                                </li>
                                <li><a href="/article/2184.htm"
                                       title="HTTP协议详解" target="_blank">HTTP协议详解</a>
                                    <span class="text-muted">chicony</span>
<a class="tag" taget="_blank" href="/search/http%E5%8D%8F%E8%AE%AE/1.htm">http协议</a>
                                    <div>引言                                 </div>
                                </li>
                                <li><a href="/article/2311.htm"
                                       title="Scala设计模式" target="_blank">Scala设计模式</a>
                                    <span class="text-muted">chenchao051</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a>
                                    <div>Scala设计模式 
        
       我的话: 在国外网站上看到一篇文章,里面详细描述了很多设计模式,并且用Java及Scala两种语言描述,清晰的让我们看到各种常规的设计模式,在Scala中是如何在语言特性层面直接支持的。基于文章很nice,我利用今天的空闲时间将其翻译,希望大家能一起学习,讨论。翻译</div>
                                </li>
                                <li><a href="/article/2438.htm"
                                       title="安装mysql" target="_blank">安装mysql</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85/1.htm">安装</a>
                                    <div>安装mysql 
  (1)删除linux上已经安装的mysql相关库信息。rpm  -e  xxxxxxx   --nodeps (强制删除) 
     执行命令rpm -qa |grep mysql 检查是否删除干净 
  (2)执行命令  rpm -i MySQL-server-5.5.31-2.el</div>
                                </li>
                                <li><a href="/article/2565.htm"
                                       title="HTTP状态码大全" target="_blank">HTTP状态码大全</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/http%E7%8A%B6%E6%80%81%E7%A0%81/1.htm">http状态码</a>
                                    <div>完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅。HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0。你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request</div>
                                </li>
                                <li><a href="/article/2692.htm"
                                       title="asihttprequest上传图片" target="_blank">asihttprequest上传图片</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/ASIHTTPRequest/1.htm">ASIHTTPRequest</a>
                                    <div>NSURL *url =@"yourURL";
    ASIFormDataRequest*currentRequest =[ASIFormDataRequest requestWithURL:url];
    [currentRequest setPostFormat:ASIMultipartFormDataPostFormat];[currentRequest se</div>
                                </li>
                                <li><a href="/article/2819.htm"
                                       title="C语言中,关键字static的作用" target="_blank">C语言中,关键字static的作用</a>
                                    <span class="text-muted">e200702084</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a>
                                    <div>在C语言中,关键字static有三个明显的作用: 
 
1)在函数体,局部的static变量。生存期为程序的整个生命周期,(它存活多长时间);作用域却在函数体内(它在什么地方能被访问(空间))。 
一个被声明为静态的变量在这一函数被调用过程中维持其值不变。因为它分配在静态存储区,函数调用结束后并不释放单元,但是在其它的作用域的无法访问。当再次调用这个函数时,这个局部的静态变量还存活,而且用在它的访</div>
                                </li>
                                <li><a href="/article/2946.htm"
                                       title="win7/8使用curl" target="_blank">win7/8使用curl</a>
                                    <span class="text-muted">geeksun</span>
<a class="tag" taget="_blank" href="/search/win7/1.htm">win7</a>
                                    <div>1.  WIN7/8下要使用curl,需要下载curl-7.20.0-win64-ssl-sspi.zip和Win64OpenSSL_Light-1_0_2d.exe。  下载地址:  
http://curl.haxx.se/download.html   请选择不带SSL的版本,否则还需要安装SSL的支持包       2.  可以给Windows增加c</div>
                                </li>
                                <li><a href="/article/3073.htm"
                                       title="Creating a Shared Repository; Users Sharing The Repository" target="_blank">Creating a Shared Repository; Users Sharing The Repository</a>
                                    <span class="text-muted">hongtoushizi</span>
<a class="tag" taget="_blank" href="/search/git/1.htm">git</a>
                                    <div>转载自:  
http://www.gitguys.com/topics/creating-a-shared-repository-users-sharing-the-repository/  Commands discussed in this section: 
 
 git init –bare 
 git clone 
 git remote 
 git pull 
 git p</div>
                                </li>
                                <li><a href="/article/3200.htm"
                                       title="Java实现字符串反转的8种或9种方法" target="_blank">Java实现字符串反转的8种或9种方法</a>
                                    <span class="text-muted">Josh_Persistence</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%82%E6%88%96%E5%8F%8D%E8%BD%AC/1.htm">异或反转</a><a class="tag" taget="_blank" href="/search/%E9%80%92%E5%BD%92%E5%8F%8D%E8%BD%AC/1.htm">递归反转</a><a class="tag" taget="_blank" href="/search/%E4%BA%8C%E5%88%86%E4%BA%A4%E6%8D%A2%E5%8F%8D%E8%BD%AC/1.htm">二分交换反转</a><a class="tag" taget="_blank" href="/search/java%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%8F%8D%E8%BD%AC/1.htm">java字符串反转</a><a class="tag" taget="_blank" href="/search/%E6%A0%88%E5%8F%8D%E8%BD%AC/1.htm">栈反转</a>
                                    <div>注:对于第7种使用异或的方式来实现字符串的反转,如果不太看得明白的,可以参照另一篇博客: 
http://josh-persistence.iteye.com/blog/2205768 
  
/**
 * 
 */
package com.wsheng.aggregator.algorithm.string;

import java.util.Stack;

/**
</div>
                                </li>
                                <li><a href="/article/3327.htm"
                                       title="代码实现任意容量倒水问题" target="_blank">代码实现任意容量倒水问题</a>
                                    <span class="text-muted">home198979</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%80%92%E6%B0%B4/1.htm">倒水</a>
                                    <div>形象化设计模式实战             HELLO!架构                     redis命令源码解析 
  
倒水问题:有两个杯子,一个A升,一个B升,水有无限多,现要求利用这两杯子装C</div>
                                </li>
                                <li><a href="/article/3454.htm"
                                       title="Druid datasource" target="_blank">Druid datasource</a>
                                    <span class="text-muted">zhb8015</span>
<a class="tag" taget="_blank" href="/search/druid/1.htm">druid</a>
                                    <div>推荐大家使用数据库连接池 DruidDataSource. http://code.alibabatech.com/wiki/display/Druid/DruidDataSource DruidDataSource经过阿里巴巴数百个应用一年多生产环境运行验证,稳定可靠。 它最重要的特点是:监控、扩展和性能。 下载和Maven配置看这里: http</div>
                                </li>
                                <li><a href="/article/3581.htm"
                                       title="两种启动监听器ApplicationListener和ServletContextListener" target="_blank">两种启动监听器ApplicationListener和ServletContextListener</a>
                                    <span class="text-muted">spjich</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><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a>
                                    <div>引言:有时候需要在项目初始化的时候进行一系列工作,比如初始化一个线程池,初始化配置文件,初始化缓存等等,这时候就需要用到启动监听器,下面分别介绍一下两种常用的项目启动监听器 
  
ServletContextListener  
特点: 依赖于sevlet容器,需要配置web.xml 
使用方法: 
public class StartListener implements </div>
                                </li>
                                <li><a href="/article/3708.htm"
                                       title="JavaScript Rounding Methods of the Math object" target="_blank">JavaScript Rounding Methods of the Math object</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/Math/1.htm">Math</a>
                                    <div>    The next group of methods has to do with rounding decimal values into integers. Three methods — Math.ceil(),  Math.floor(), and  Math.round() — handle rounding in differen</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>