Nginx反向代理,动静分离,搭建 Nginx+Tomcat 集群负载均衡部署!!

个人整理,点个赞吧

  • 一,部署Nginx+tomcat反向代理,动静分离
  • 二,准备环境
    • 2.1 搭建tomcat服务器1
    • 2.2 搭建tomcat服务器2
    • 2.3 安装Nginx服务器
    • 2.4验证

一,部署Nginx+tomcat反向代理,动静分离

Nginx 是一个非常强大的静态 web 服务,Tomcat 处理动态请求效率不高,而一般网站大
多数的内容都是静态文件(如图片、html、css、js 等),经过 Nginx 前端的反向代理加速 和过滤;
后端 Tomcat 处理请求的压力便可大大减少,只需负责处理动态内容就可以了。在 性能与稳定性的权衡下,使用 Nginx+Tomcat 搭配便可让它们在各自擅长的领域发挥功能;

二,准备环境

  • nginx静态网页服务器实现反向代理
  • tomcat 动态网页服务器,只处理动态网页信息,静态信息交给nginx,实现动静分离
nginx服务器 192.168.100.25 centos7.6 编译安装
tomcat服务器1 192.168.100.26 centos7.6 安装JDK环境,启动tomcat
tomcat服务器2 192.168.100.27 centos7.6 安装JDK环境,启动tomcat

2.1 搭建tomcat服务器1

 1.将JDK软件包放到/opt目录下
cd /opt
tar -zxf jdk-8u144-linux-x64.tar.gz                ##### 解压安装包
cp -rv jdk1.8.0_144/ /usr/local/java               #####复制文件到/usr/local/java  

2.定义变量环境

vi /etc/profile                                             #####编辑环境变量

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

source /etc/profile                                     #####让刚才编辑的环境变量生效

java -version                                              #####检查java版本


3、安装配置Tomcat

●解压 apache-tomcat-8.5.16.tar.gz 包

tar -zxf apache-tomcat-8.5.16.tar.gz

●解压后生成 apache-tomcat-8.5.16 文件夹,将该文件夹移动到/usr/local/下,并 改名为 tomcat8。
[root@localhost ~]# mv apache-tomcat-8.5.16/ /usr/local/tomcat8.5

做启动,关闭脚本软连接
ln -s /usr/local/tomcat8.5/bin/startup.sh /usr/bin/tomcatup                           
ln -s /usr/local/tomcat8.5/bin/shutdown.sh /usr/bin/tomcatdown   

tomcatup    启动
tomcatdown  关闭      



4.启动tomcat

tomcatup

Using CATALINA_BASE:   /usr/local/tomcat8.5
Using CATALINA_HOME:   /usr/local/tomcat8.5
Using CATALINA_TMPDIR: /usr/local/tomcat8.5/temp
Using JRE_HOME:        /usr/local/java/jre
Using CLASSPATH:       /usr/local/tomcat8.5/bin/bootstrap.jar:/usr/local/tomcat8.5/bin/tomcat-juli.jar
Tomcat started.      

netstat -anpt | grep 8080                                   #####检测是否启动,8080端口是否工作正常
tcp6       0      0 :::8080                 :::*                    LISTEN      68238/java  

5.建立 Java 的 Web 站点
在根目录下建立一个 web 目录,并在里面建立一个 web1 目录,用于存放网站文件。
 mkdir -p  /web/web1

目录下建立一个 index.jsp 的测试页面。

vi   /web/web1/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

        
                JSP test1 page<<span class="token operator">/</span>title>
        <<span class="token operator">/</span>head>
        <body>
                <<span class="token operator">%</span> out<span class="token punctuation">.</span>println<span class="token punctuation">(</span><span class="token string">"这是tomcat动态页面1!  访问的是index.jsp的!"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token operator">%</span>>
        <<span class="token operator">/</span>body>
        <body>
                <div>静态页面nginx的图片1<<span class="token operator">/</span>div><br><img src=<span class="token string">"nginx.jpg"</span>>
        <<span class="token operator">/</span>body>
<<span class="token operator">/</span>html>


6<span class="token punctuation">.</span>在tomcat主配置文件下添加
 vi <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>tomcat8<span class="token operator">/</span>conf<span class="token operator">/</span>server<span class="token punctuation">.</span>xml     <span class="token comment">#在host name配置区域下,添加咱们刚才配置的jsp</span>

      <Host name=<span class="token string">"localhost"</span>  appBase=<span class="token string">"webapps"</span>
            unpackWARs=<span class="token string">"true"</span> autoDeploy=<span class="token string">"true"</span>>

      <Context docBase=<span class="token string">"/web/web1"</span> path=<span class="token string">""</span> reloadable=<span class="token string">"false"</span> >
      <<span class="token operator">/</span>Context>

<span class="token comment">###docBase:web 应用的文档基准目录 </span>
<span class="token comment">###reloadable :设置监视"类"是否变化 </span>
<span class="token comment">###path="" 设置默认"类"</span>

7<span class="token punctuation">.</span>关闭tomcat,再开启toncat

tomcatup    启动
tomcatdown  关闭   

</code></pre> 
  <h2>2.2 搭建tomcat服务器2</h2> 
  <p>同tomcat服务器1部署一样,只不过,目录1,还有测试页面的内容更改为2,方便识别,这里就不在写出了,参考tomcat服务器1就行;</p> 
  <h2>2.3 安装Nginx服务器</h2> 
  <p>在 Nginx 服务器 192.168.100.21上安装 Nginx,反向代理到两个 Tomcat 站点,并实现 负载均衡<br> (1)关闭防火墙。<br> (2)安装相关软件包。</p> 
  <pre><code class="prism language-powershell">
1<span class="token punctuation">.</span>安装环境依赖关系
yum <span class="token operator">-</span>y install  gcc<span class="token operator">-</span>c+<span class="token operator">+</span>  gcc  make pcre<span class="token operator">-</span>devel zlib<span class="token operator">-</span>devel openssl<span class="token operator">-</span>devel

2<span class="token punctuation">.</span>创建程序账户
useradd <span class="token operator">-</span>M <span class="token operator">-</span>s <span class="token operator">/</span>sbin<span class="token operator">/</span>nologin  nginx

3<span class="token punctuation">.</span>解压软件包,编译安装
软件包在<span class="token operator">/</span>opt目录下

cd  <span class="token operator">/</span>opt
tar xzvf nginx<span class="token operator">-</span>1<span class="token punctuation">.</span>15<span class="token punctuation">.</span>9<span class="token punctuation">.</span>tar<span class="token punctuation">.</span>gz
cd nginx<span class="token operator">-</span>1<span class="token punctuation">.</span>15<span class="token punctuation">.</span>9<span class="token operator">/</span>
<span class="token punctuation">.</span><span class="token operator">/</span>configure <span class="token operator">--</span>prefix=<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>nginx <span class="token operator">--</span>user=nginx <span class="token operator">--</span><span class="token function">group</span>=nginx <span class="token operator">--</span>with<span class="token operator">-</span>file<span class="token operator">-</span>aio <span class="token operator">--</span>with<span class="token operator">-</span>http_stub_status_module <span class="token operator">--</span>with<span class="token operator">-</span>http_gzip_static_module <span class="token operator">--</span>with<span class="token operator">-</span>http_flv_module



<span class="token operator">/</span>-<span class="token operator">-</span>user=<span class="token punctuation">,</span><span class="token operator">--</span><span class="token function">group</span>= 
<span class="token operator">/</span>/<span class="token operator">--</span>with<span class="token operator">-</span>file<span class="token operator">-</span>aio 
<span class="token operator">/</span>/<span class="token operator">--</span>with<span class="token operator">-</span>http_stub_status_module 
<span class="token operator">/</span>/<span class="token operator">--</span>with<span class="token operator">-</span>http_gzip_static_module 
<span class="token operator">/</span>/<span class="token operator">--</span>with<span class="token operator">-</span>http_flv_module 
<span class="token operator">/</span>/<span class="token operator">--</span>with<span class="token operator">-</span>http_ssl_module
<span class="token comment">#指定运行的用户和组</span>
<span class="token comment">#启用文件修改支持</span>
<span class="token comment">#启动状态统计</span>
<span class="token comment">#启用gzip静态压缩</span>
<span class="token comment">#启用flv模块,提供寻求内存使用基于时间的偏移量文件</span>
<span class="token comment">#启用SSL模块</span>


4<span class="token punctuation">.</span>安装kiall命令  我是最小化安装的
yum <span class="token operator">-</span>y install psmisc

5<span class="token punctuation">.</span>开启nginx,关闭,测试
nginx                                <span class="token comment">####启动</span>
netstat <span class="token operator">-</span>anpt <span class="token punctuation">|</span> grep nginx
tcp 0 0 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:80 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:<span class="token operator">*</span> LISTEN7180<span class="token operator">/</span>nginx: master

killall <span class="token operator">-</span>3 nginx                                                     <span class="token comment">###停止服务</span>
6<span class="token punctuation">.</span>添加 Nginx 系统服务,使用centos的systemctl命令

vi <span class="token operator">/</span>lib<span class="token operator">/</span>systemd<span class="token operator">/</span>system<span class="token operator">/</span>nginx<span class="token punctuation">.</span>service

<span class="token namespace">[Unit]</span>
Description=nginx
After=network<span class="token punctuation">.</span>target
<span class="token namespace">[Service]</span>
<span class="token function">Type</span>=forking 
PIDFile=<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>nginx<span class="token operator">/</span>logs<span class="token operator">/</span>nginx<span class="token punctuation">.</span>pid
ExecStart=<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>nginx<span class="token operator">/</span>sbin<span class="token operator">/</span>nginx
ExecReload=<span class="token operator">/</span>usr<span class="token operator">/</span>bin<span class="token operator">/</span><span class="token function">kill</span> <span class="token operator">-</span>s HUP <span class="token variable">$MAINPID</span>
ExecStop=<span class="token operator">/</span>usr<span class="token operator">/</span>bin<span class="token operator">/</span><span class="token function">kill</span> <span class="token operator">-</span>s QUIT <span class="token variable">$MAINPID</span>
PrivateTmp=true
<span class="token namespace">[Install]</span>
WantedBy=multi<span class="token operator">-</span>user<span class="token punctuation">.</span>target


7<span class="token punctuation">.</span>设置权限,启动nginx
chmod 754 <span class="token operator">/</span>lib<span class="token operator">/</span>systemd<span class="token operator">/</span>system<span class="token operator">/</span>nginx<span class="token punctuation">.</span>service
systemctl  <span class="token function">start</span> nginx
systemctl enable nginx<span class="token punctuation">.</span>


</code></pre> 
  <pre><code class="prism language-powershell">

下面在 Nginx 上准备静态图片。

mkdir <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>nginx<span class="token operator">/</span>html<span class="token operator">/</span>img 		<span class="token comment">###创建静态文件目录 </span>
存放图片的目录,nginx<span class="token punctuation">.</span>jpg



配置nginx<span class="token punctuation">.</span>conf文件
把 Nginx 的默认站点通过 proxy_pass 方法代理到了设定好的 tomcat_server 负载均衡
服务器组上。配置完成的 nginx<span class="token punctuation">.</span>conf 文件内容如下。
 …… <span class="token operator">/</span><span class="token operator">/</span>省略部分内容 

http <span class="token punctuation">{
     </span> 
…… 		<span class="token comment">###省略部分内容</span>
<span class="token comment">#gzip on;</span>
upstream tomcat_server <span class="token punctuation">{
     </span>
	server 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>100<span class="token punctuation">.</span>26:8080 weight=1<span class="token punctuation">;</span>
	server 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>100<span class="token punctuation">.</span>27:8080 weight=1<span class="token punctuation">;</span>
	<span class="token punctuation">}</span>

server <span class="token punctuation">{
     </span>
	listen 80<span class="token punctuation">;</span>
	server_name localhost<span class="token punctuation">;</span>
	<span class="token comment">#charset koi8-r;</span>
	<span class="token comment">#access_log logs/host.access.log main;</span>
	location ~ <span class="token punctuation">.</span><span class="token operator">*</span><span class="token punctuation">.</span>jsp$ <span class="token punctuation">{
     </span>
		proxy_set_header HOST <span class="token variable">$host</span><span class="token punctuation">;</span>
		proxy_set_header X<span class="token operator">-</span>Real<span class="token operator">-</span>IP <span class="token variable">$remote_addr</span><span class="token punctuation">;</span>
		proxy_set_header Client<span class="token operator">-</span>IP <span class="token variable">$remote_addr</span><span class="token punctuation">;</span>
		proxy_set_header X<span class="token operator">-</span>Forwarded<span class="token operator">-</span><span class="token keyword">For</span> <span class="token variable">$proxy_add_x_forwarded_for</span><span class="token punctuation">;</span>
		proxy_pass http:<span class="token operator">/</span><span class="token operator">/</span>tomcat_server<span class="token punctuation">;</span>   <span class="token comment">#反向代理,跳转到上面的upstream配置</span>
		<span class="token punctuation">}</span>

location ~ <span class="token punctuation">.</span><span class="token operator">*</span>\<span class="token punctuation">.</span><span class="token punctuation">(</span>gif<span class="token punctuation">|</span>jpg<span class="token punctuation">|</span>jpeg<span class="token punctuation">|</span>png<span class="token punctuation">|</span>bmp<span class="token punctuation">|</span>swf<span class="token punctuation">|</span>css<span class="token punctuation">)</span>$ <span class="token punctuation">{
     </span>
	root <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>nginx<span class="token operator">/</span>html<span class="token operator">/</span>img<span class="token punctuation">;</span>
	expires 30d<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

location <span class="token operator">/</span> <span class="token punctuation">{
     </span>
	root html<span class="token punctuation">;</span>
	index index<span class="token punctuation">.</span>html index<span class="token punctuation">.</span>htm<span class="token punctuation">;</span>
<span class="token punctuation">}</span>



验证配置文件语法

nginx <span class="token operator">-</span>t
nginx: the configuration file <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>nginx<span class="token operator">/</span>conf<span class="token operator">/</span>nginx<span class="token punctuation">.</span>conf syntax is ok 
nginx: configuration file <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>nginx<span class="token operator">/</span>conf<span class="token operator">/</span>nginx<span class="token punctuation">.</span>conf test is successful


重启服务
systemctl  restart  nginx


</code></pre> 
  <h2>2.4验证</h2> 
  <p>输入192.168.100.25/index.jsp ;</p> 
  <blockquote> 
   <p>tomcat的网页,nignx服务器上的静态图片,<br> 通过nignx反向代理,实现tomcat负载均衡<br> 通过nginx将配置location段,做动静分离后的jsp等程序文件分发到tomcat集群上</p> 
  </blockquote> 
  <p><a href="http://img.e-com-net.com/image/info8/d343865021694dc58129085ababff4d7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d343865021694dc58129085ababff4d7.jpg" alt="Nginx反向代理,动静分离,搭建 Nginx+Tomcat 集群负载均衡部署!!_第1张图片" width="650" height="633" style="border:1px solid black;"></a></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1458979018626871296"></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">你可能感兴趣的:(负载均衡,群集)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1950222723200380928.htm"
                           title="LVS+Keepalived实现高可用和负载均衡" target="_blank">LVS+Keepalived实现高可用和负载均衡</a>
                        <span class="text-muted">2401_84412895</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/lvs/1.htm">lvs</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>2、开启网卡子接口配置VIP[root@a~]#cd/etc/sysconfig/network-scripts/[root@anetwork-scripts]#cp-aifcfg-ens32ifcfg-ens32:0[root@anetwork-scripts]#catifcfg-ens32:0BOOTPROTO=staticDEVICE=ens32:0ONBOOT=yesIPADDR=10.1</div>
                    </li>
                    <li><a href="/article/1950167758767452160.htm"
                           title="负载均衡-加权随机算法" target="_blank">负载均衡-加权随机算法</a>
                        <span class="text-muted">BP白朴</span>
<a class="tag" taget="_blank" href="/search/Nginx/1.htm">Nginx</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/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><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>负载均衡-加权随机算法由于访问概率大致相同,所以如果部分服务器性能不一致的话,容易导致性能差的服务器压力过大,所以要根据服务器性能不一致的情况,给性能好的服务器多处理请求,给差的少分配请求(能者多劳)所以就需要在随机算法的基础上给每台服务器设置权重,延伸为加权随机算法1、将应用服务器集群的IP存到Map里,每个IP对应有一个权重2、创建一个List,来将所有权重下的IP存到list里面如:192.</div>
                    </li>
                    <li><a href="/article/1950052911442620416.htm"
                           title="最详细!教你学习haproxy七层代理" target="_blank">最详细!教你学习haproxy七层代理</a>
                        <span class="text-muted">969库库库</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>一、工作原理(1)包括监听端口:HAProxy会在指定的端口上监听客户端的请求。例如,它可以监听常见的HTTP和HTTPS端口,等待客户端连接。请求接收:当客户端发起请求时,HAProxy接收到请求。它会解析请求的内容,包括请求的方法(如GET、POST等)、目标URL等。负载均衡决策:根据预先配置的负载均衡策略,决定将请求转发到后端的哪个服务器。常见的负载均衡算法有轮询、加权轮询、最少连接等。比</div>
                    </li>
                    <li><a href="/article/1949915473982320640.htm"
                           title="HAProxy 负载均衡指南" target="_blank">HAProxy 负载均衡指南</a>
                        <span class="text-muted">心上之秋</span>
<a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>一、HAProxy简介HAProxy(HighAvailabilityProxy)是一款高性能、开源的负载均衡器和代理服务器。它以其高并发处理能力、灵活的配置选项和强大的功能而闻名,广泛应用于各种Web服务场景,如:负载均衡:将流量分配到多个后端服务器,提高系统可用性和性能。反向代理:隐藏真实服务器,提供安全防护、缓存内容等功能。SSL/TLS终止:处理HTTPS请求,提高网站安全性。Web性能优</div>
                    </li>
                    <li><a href="/article/1949803748192743424.htm"
                           title="探讨 Node.js 中微服务架构的实践,包括服务注册与发现、负载均衡、API Gateway 和消息队列的应用。" target="_blank">探讨 Node.js 中微服务架构的实践,包括服务注册与发现、负载均衡、API Gateway 和消息队列的应用。</a>
                        <span class="text-muted"></span>

                        <div>各位观众老爷们,大家好!今天咱们来聊聊Node.js在微服务架构里头的那些事儿。别害怕,虽然听起来高大上,其实没那么玄乎,咱们争取用大白话把这玩意儿给整明白。开场白:为啥要搞微服务?想象一下,你开了一家小饭馆,一开始生意不错,就只有一个厨房,一个厨师(也就是你的单体应用)。后来生意火爆了,顾客越来越多,厨师一个人忙不过来了,炒菜慢,上菜慢,顾客抱怨声不断。怎么办?这时候,你灵机一动,把厨房拆分成几</div>
                    </li>
                    <li><a href="/article/1949752934577270784.htm"
                           title="【C#工业上位机高级应用】3. C#与西门子PLC高级通信 - S7CommPlus协议深度优化:TPL Dataflow构建流水线" target="_blank">【C#工业上位机高级应用】3. C#与西门子PLC高级通信 - S7CommPlus协议深度优化:TPL Dataflow构建流水线</a>
                        <span class="text-muted"></span>

                        <div>摘要:在工业自动化领域,尤其是汽车制造等大规模生产场景中,西门子PLC的高效通信是保证生产效率的关键。本文针对传统S7通信方式在200+台S7-1500PLC同时监控时存在的串行阻塞、CPU利用率不均和突发流量处理能力差等问题,提出了基于TPLDataflow的四阶流水线架构解决方案。该方案通过报文组装、协议加密、网络发送和响应解析四个并行处理阶段,结合硬件加速加密、智能连接池和动态负载均衡等技术</div>
                    </li>
                    <li><a href="/article/1949731369336762368.htm"
                           title="【ELasticsearch】搭建有负载均衡 ELB 的 ES 集群" target="_blank">【ELasticsearch】搭建有负载均衡 ELB 的 ES 集群</a>
                        <span class="text-muted">大数据与AI实验室</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Elastic/1.htm">Elastic</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a><a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a><a class="tag" taget="_blank" href="/search/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a><a class="tag" taget="_blank" href="/search/ELB/1.htm">ELB</a><a class="tag" taget="_blank" href="/search/%E5%85%AC%E6%9C%89%E4%BA%91/1.htm">公有云</a><a class="tag" taget="_blank" href="/search/%E9%9B%86%E7%BE%A4/1.htm">集群</a>
                        <div>搭建有负载均衡ELB的ES集群1.为什么要这样设计(封装ELB)?2.如果没有这层负载均衡呢?3.外来的请求会打到集群哪一个节点上?4.优先是专属协调节点吗?5.ELB需要对接所有节点吗,还是协调节点就可以了?在公有云上为Elasticsearch集群封装一层ELB(ElasticLoadBalancer)或类似的负载均衡器,核心目的是解耦、简化客户端访问、提高可用性、增强可维护性。1.为什么要这</div>
                    </li>
                    <li><a href="/article/1949713471545339904.htm"
                           title="历年高校招生计划数据 API 数据接口" target="_blank">历年高校招生计划数据 API 数据接口</a>
                        <span class="text-muted">2301_78772565</span>
<a class="tag" taget="_blank" href="/search/%E9%AB%98%E8%80%83/1.htm">高考</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>历年高校招生计划数据API数据接口基础数据/高校招生,各高校历年招生计划数据,高校招生数据/历年计划。1.产品功能支持历年高校招生计划数据查询;包含各高校招生计划详细数据;多维度查询条件支持;毫秒级查询性能;全接口支持HTTPS(TLSv1.0/v1.1/v1.2/v1.3);全面兼容AppleATS;全国多节点CDN部署;接口极速响应,多台服务器构建API接口负载均衡;接口调用状态与状态监控2.</div>
                    </li>
                    <li><a href="/article/1949713344734752768.htm"
                           title="1_api_intro_barcode_barcode" target="_blank">1_api_intro_barcode_barcode</a>
                        <span class="text-muted">2301_78772565</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>通用条形码生成API接口通用条形码生成接口。1.产品功能支持40种条形码;支持生成自定义的条码尺寸;直接生成条码图片CDN链接,方便引用;全接口支持HTTPS(TLSv1.0/v1.1/v1.2/v1.3);全面兼容AppleATS;全国多节点CDN部署;接口极速响应,多台服务器构建API接口负载均衡。2.API文档API详情地址:https://www.gugudata.com/api/deta</div>
                    </li>
                    <li><a href="/article/1949660382222151680.htm"
                           title="IP 证书全面解析:功能、类型与申请指南" target="_blank">IP 证书全面解析:功能、类型与申请指南</a>
                        <span class="text-muted">Arwen303</span>
<a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a>
                        <div>一、IP证书的核心功能身份验证:验证IP地址的所有权,防止非法用户冒充服务端,适用于无域名或域名不可靠的场景。数据加密:通过SSL/TLS协议对传输数据进行加密,支持RSA、ECC及国密算法(如SM2),保障通信机密性。防域名劫持:当域名解析被篡改时,用户可直接通过IP访问安全服务,避免流量重定向风险。动态网络支持:适配负载均衡、云迁移等场景,支持多IP绑定或IP范围证书。二、IP证书与域名证书的</div>
                    </li>
                    <li><a href="/article/1949649423504044032.htm"
                           title="搭建集群架构" target="_blank">搭建集群架构</a>
                        <span class="text-muted"></span>

                        <div>环境搭建进行规划(磨刀不误砍柴工).集群架构组成说明.负载均衡服务器使用Nginx做搭建,(nginx反向代理软件)Nginx01Nginx023台Web网站服务器,Nginx网站web服务功能2台负载均衡服务器(对网站的流量进行分流,减少流量对某台服务器的压力)3台web服务器,(处理用户网页页面访问请求)1台数据库服务器(Mysql服务器,提供动态变化数据存储)1台存储服务器()NFS存储--</div>
                    </li>
                    <li><a href="/article/1949628623107452928.htm"
                           title="三、搭建springCloudAlibaba2021.1版本分布式微服务-springcloud loadbalancer负载均衡" target="_blank">三、搭建springCloudAlibaba2021.1版本分布式微服务-springcloud loadbalancer负载均衡</a>
                        <span class="text-muted"></span>

                        <div>什么是负责均衡SpringCloudLoadBalancer是一个客户端负载均衡器,类似于Ribbon,但是由于Ribbon已经进入维护模式,并且Ribbon2并不与Ribbon1相互兼容,所以SpringCloud全家桶在SpringCloudCommons项目中,添加了SpringcloudLoadbalancer作为新的负载均衡器,并且做了向前兼容,就算你的项目中继续用SpringCloud</div>
                    </li>
                    <li><a href="/article/1949615259031498752.htm"
                           title="秋招Day20 - 微服务 - 概念" target="_blank">秋招Day20 - 微服务 - 概念</a>
                        <span class="text-muted">Java初学者小白</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/%E5%85%AB%E8%82%A1/1.htm">八股</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>什么是微服务?将一个大型的单体项目分割成一个个可以独立开发和部署的小服务,服务之间松耦合,可以通过轻量级通信机制(比如HTTP)相互协作微服务带来了哪些挑战?介绍一下一下Dubbo?Dubbo是一个高性能、轻量级的Java微服务框架,它提供了服务的注册与发现(配合注册中心)、服务间调用(RPC)、负载均衡(权重)、容错(重试、快速失败)等功能Dubbo使用是基于RPC的通信模型,支持多种传输协议,</div>
                    </li>
                    <li><a href="/article/1949501640872620032.htm"
                           title="微服务架构下的服务发现与负载均衡策略" target="_blank">微服务架构下的服务发现与负载均衡策略</a>
                        <span class="text-muted">AI天才研究院</span>
<a class="tag" taget="_blank" href="/search/Agentic/1.htm">Agentic</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E6%88%98/1.htm">实战</a><a class="tag" taget="_blank" href="/search/LLM%E5%A4%A7%E6%A8%A1%E5%9E%8B%E8%90%BD%E5%9C%B0%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97/1.htm">LLM大模型落地实战指南</a><a class="tag" taget="_blank" href="/search/AI%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%BA%94%E7%94%A8%E5%85%A5%E9%97%A8%E5%AE%9E%E6%88%98%E4%B8%8E%E8%BF%9B%E9%98%B6/1.htm">AI大模型应用入门实战与进阶</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E7%A7%91%E5%AD%A6/1.htm">计算科学</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E8%AE%A1%E7%AE%97/1.htm">神经计算</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/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/%E5%A4%A7%E5%9E%8B%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">大型语言模型</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/AGI/1.htm">AGI</a><a class="tag" taget="_blank" href="/search/LLM/1.htm">LLM</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">架构设计</a><a class="tag" taget="_blank" href="/search/Agent/1.htm">Agent</a><a class="tag" taget="_blank" href="/search/RPA/1.htm">RPA</a>
                        <div>微服务架构下的服务发现与负载均衡策略作者:禅与计算机程序设计艺术1.背景介绍微服务架构作为一种新兴的软件设计模式,正在被越来越多的企业所采用。在微服务架构中,整个应用被拆分成多个独立的服务,这些服务通过轻量级的通信机制(如HTTP/RPC)相互连接。每个服务都可以独立部署、扩展和维护,这极大地提高了应用的灵活性和可扩展性。然而,微服务架构也带来了一些新的挑战,其中最主要的就是服务发现和负载均衡。在</div>
                    </li>
                    <li><a href="/article/1949501137082183680.htm"
                           title="docker compose部署rabbitmq集群,并使用haproxy负载均衡" target="_blank">docker compose部署rabbitmq集群,并使用haproxy负载均衡</a>
                        <span class="text-muted">现实、太残忍</span>
<a class="tag" taget="_blank" href="/search/rabbitmq/1.htm">rabbitmq</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/rabbitmq/1.htm">rabbitmq</a><a class="tag" taget="_blank" href="/search/haproxy/1.htm">haproxy</a>
                        <div>一、创建rabbitmq的data目录mkdirdatamkdirdata/rabbit1mkdirdata/rabbit2mkdirdata/rabbit3二、创建.erlang.cookie文件(集群cookie用)echo"secretcookie">.erlang.cookie三、创建haproxy.cfg配置文件globallogstdoutformatrawlocal0defaults</div>
                    </li>
                    <li><a href="/article/1949498616934625280.htm"
                           title="Kafka消费者负载均衡策略" target="_blank">Kafka消费者负载均衡策略</a>
                        <span class="text-muted"></span>

                        <div>⼀个消费者组中的⼀个分⽚对应⼀个消费者成员,他能保证每个消费者成员都能访问,如果组中成员太多会有空闲的成员Kafka消费者负载均衡策略详解从分区分配算法到Rebalance机制,全面解析Kafka如何实现消费者间的负载均衡,并提供调优建议和问题解决方案。1.核心概念术语作用类比ConsumerGroup共享消费任务的消费者组外卖骑手团队PartitionTopic的物理分片配送区域划分Rebala</div>
                    </li>
                    <li><a href="/article/1949493566770311168.htm"
                           title="3种LVS/Nginx/HAProxy负载均衡器的对比分析" target="_blank">3种LVS/Nginx/HAProxy负载均衡器的对比分析</a>
                        <span class="text-muted">Witch_Soya</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a>
                        <div>3种LVS/Nginx/HAProxy负载均衡器的对比分析现在网站发展的趋势对网络负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术:一种是通过硬件来进行进行,常见的硬件有比较昂贵的NetScaler、F5、Radware和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用;另外一种就是类</div>
                    </li>
                    <li><a href="/article/1949493314705223680.htm"
                           title="0基础纯新手小白也能成大神 之 LVS负载均衡" target="_blank">0基础纯新手小白也能成大神 之 LVS负载均衡</a>
                        <span class="text-muted">Wezzer</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a><a class="tag" taget="_blank" href="/search/lvs/1.htm">lvs</a>
                        <div>LVS负载均衡集群理论目录LVS负载均衡集群理论一、概述1、集群概述1.1、集群介绍1.2、集群类型1.3、负载均衡技术类型1.4、负载均衡实现方式2、LVS介绍3、LVS和nginx区别4、LVS相关术语5、LVS负载均衡算法5.1、静态负载均衡5.2、动态负载均衡二、三种LVS工作模式详解1、基于NAT的LVS模式负载均衡1.1、工作原理1.2、LVS-NAT模型的特性1.3、NAT的优点1.</div>
                    </li>
                    <li><a href="/article/1949491673499234304.htm"
                           title="高性能反向代理与负载均衡 HAProxy 与 Nginx" target="_blank">高性能反向代理与负载均衡 HAProxy 与 Nginx</a>
                        <span class="text-muted">程序员乐逍遥</span>
<a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E4%B8%93%E9%A2%98/1.htm">系统架构专题</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>在现代高并发Web架构中,HAProxy和Nginx是两个非常重要的工具。它们在反向代理、负载均衡、SSL终止、缓存、限流等方面发挥着关键作用。一、HAProxy与Nginx简介1.HAProxy简介HAProxy(HighAvailabilityProxy)是一个使用C语言编写的高性能TCP/HTTP负载均衡器和代理服务器,广泛用于企业级Web架构中。它专注于提供高可用性、负载均衡和代理服务,尤</div>
                    </li>
                    <li><a href="/article/1949491042793353216.htm"
                           title="Kafka消费者负载均衡和数据积压问题" target="_blank">Kafka消费者负载均衡和数据积压问题</a>
                        <span class="text-muted">抱紧大佬大腿不松开</span>
<a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a>
                        <div>在大数据领域中,ApacheKafka是一个常用的分布式消息队列系统,它被广泛应用于实时数据处理和流式数据处理场景。Kafka的消费者负载均衡机制和数据积压问题是使用Kafka时需要关注和解决的重要议题。消费者负载均衡机制是指如何将消息分配给多个消费者,以实现高吞吐量和高可扩展性。Kafka通过使用消费者组(consumergroup)的概念来实现负载均衡。一个消费者组可以包含多个消费者,每个消费</div>
                    </li>
                    <li><a href="/article/1949486005627187200.htm"
                           title="在 Windows 使用 Nginx/HAProxy 实现负载均衡" target="_blank">在 Windows 使用 Nginx/HAProxy 实现负载均衡</a>
                        <span class="text-muted">程序员乐逍遥</span>
<a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E4%B8%93%E9%A2%98/1.htm">系统架构专题</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a>
                        <div>在本实验中,我们将在Windows系统上使用Python编写一个TCP服务器,并启动两个服务实例。然后使用Nginx或HAProxy作为负载均衡器,将来自多个客户端的请求分发到这两个服务实例上,验证负载均衡效果。环境准备操作系统:Windows10/Windows11Python3.x(建议使用Python3.10+)NginxforWindows或HAProxyforWindows10个客户端(</div>
                    </li>
                    <li><a href="/article/1949486006294081536.htm"
                           title="四层负载均衡与七层负载均衡详解" target="_blank">四层负载均衡与七层负载均衡详解</a>
                        <span class="text-muted"></span>

                        <div>负载均衡(LoadBalancing)是实现高可用性、可扩展性和性能优化的关键技术之一。根据其工作在OSI模型中的层级不同,负载均衡可以分为四层负载均衡(L4)和七层负载均衡(L7)。本文将详细介绍这两种负载均衡的工作原理、优缺点以及适用场景。一、什么是负载均衡?负载均衡是一种将网络请求分发到多个服务器的技术,目的是避免单点故障、提高系统可用性、提升性能和实现弹性扩展。二、OSI模型与网络分层简介</div>
                    </li>
                    <li><a href="/article/1949485879403802624.htm"
                           title="使用vllm创建相同模型的多个实例,使用nginx进行负载均衡,提高模型吞吐量" target="_blank">使用vllm创建相同模型的多个实例,使用nginx进行负载均衡,提高模型吞吐量</a>
                        <span class="text-muted"></span>

                        <div>背景要提高vllm部署的大模型吞吐量,可以从显存利用率优化、多实例部署、参数调优和流程优化等多个维度入手,以下是具体建议:一、提高gpu-memory-utilization的效果与操作gpu-memory-utilization控制vllm预分配的GPU内存比例(默认0.9),当前值0.35预留了过多显存,是吞吐量低的重要原因。提升空间:合理提高该值可显著增加批处理能力。例如从0.35提升到0.</div>
                    </li>
                    <li><a href="/article/1949485500947558400.htm"
                           title="kafka的消费者负载均衡机制" target="_blank">kafka的消费者负载均衡机制</a>
                        <span class="text-muted">不辉放弃</span>
<a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>Kafka的消费者负载均衡机制是保证消息高效消费的核心设计,通过将分区合理分配给消费者组内的消费者,实现并行处理和负载均衡。以下从核心概念、分配策略、重平衡机制等方面详细讲解。一、核心概念理解消费者负载均衡前,需明确三个关键概念:消费者组(ConsumerGroup)多个消费者组成的逻辑组,共同消费一个或多个主题的消息。组内消费者共享一个group.id标识,Kafka通过该标识区分不同消费组。分</div>
                    </li>
                    <li><a href="/article/1949172050086129664.htm"
                           title="PM2使用" target="_blank">PM2使用</a>
                        <span class="text-muted"></span>

                        <div>使用进程管理器PM2PM2是一个为Node.js应用设计的、带有负载均衡功能的生产环境进程管理器。用它来管理npx执行的命令是最佳实践。优点:✅进程守护:程序崩溃后会自动重启。✅开机自启:可以配置,让服务器重启后自动运行你的服务。✅日志管理:自动分割和管理日志,方便查看。✅性能监控:可以监控CPU和内存占用。✅跨平台:在Linux,macOS和Windows上都能用。操作步骤:1.全局安装PM2如</div>
                    </li>
                    <li><a href="/article/1948869583624531968.htm"
                           title="Kamailio SIP+RTP双网卡SBC呼叫流程与媒体处理说明" target="_blank">Kamailio SIP+RTP双网卡SBC呼叫流程与媒体处理说明</a>
                        <span class="text-muted">求真得真</span>
<a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF-VOIP/1.htm">技术-VOIP</a><a class="tag" taget="_blank" href="/search/%E5%AA%92%E4%BD%93/1.htm">媒体</a><a class="tag" taget="_blank" href="/search/voip/1.htm">voip</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a>
                        <div>本文档旨在详细解释基于提供的kamailio_sbc_dual_nic.cfg配置文件,在双网卡SBC(SessionBorderController)场景下,Kamailio(5.8.3)如何与rtpengine协同工作,处理SIP信令以及音频、视频和RTCP媒体流的转发。该方案利用dispatcher模块实现对公网和私网多网关的负载均衡。1.系统概览核心组件包括:Kamailio(5.8.3)</div>
                    </li>
                    <li><a href="/article/1948869584333369344.htm"
                           title="Kamailio 5.8.3与rtpengine双网卡SBC集成要点" target="_blank">Kamailio 5.8.3与rtpengine双网卡SBC集成要点</a>
                        <span class="text-muted"></span>

                        <div>本文档总结了将Kamailio5.8.3与rtpengine(配置为双网卡模式)集成以实现SIP+RTP媒体流转发(包括音视频和RTCP)的关键配置要点和最佳实践。用户场景包括:无NAT、公私网双向呼叫、通过dispatcher模块对公私网两侧的多网关进行负载均衡。1.Kamailiortpengine模块核心配置与使用1.1.模块加载与参数loadmodule"rtpengine.so"modp</div>
                    </li>
                    <li><a href="/article/1948839083895746560.htm"
                           title="IO密集型、CPU密集型、负载、负载均衡" target="_blank">IO密集型、CPU密集型、负载、负载均衡</a>
                        <span class="text-muted">凉祈</span>
<a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>0、引入从宏观上来讲,计算机可以抽象为【输入>计算>输出】这三部分输入输出自然就是io,而计算部分自然归cpu管不同的任务,对io和cpu的依赖程度不同,由此有了cpu密集型任务和io密集型任务1、IO密集型更依赖输入输出比如说,我的逻辑是发送请求,然后等待别人计算后返回给我,那我几乎不用计算,就是输入,等待,接收返回值,输出。这样的业务对机器负载不高,几乎不占CPU的资源。但是时间上来说,会更耗</div>
                    </li>
                    <li><a href="/article/1948822689456123904.htm"
                           title="AI-调查研究-38-多模态大模型量化 主流视觉语言任务的量化评估策略分析" target="_blank">AI-调查研究-38-多模态大模型量化 主流视觉语言任务的量化评估策略分析</a>
                        <span class="text-muted">武子康</span>
<a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/DeepSearch/1.htm">DeepSearch</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/ai/1.htm">ai</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%8F%91%E5%B1%95/1.htm">职场发展</a><a class="tag" taget="_blank" href="/search/%E4%B8%AA%E4%BA%BA%E5%BC%80%E5%8F%91/1.htm">个人开发</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/1.htm">程序人生</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a>
                        <div>点一下关注吧!!!非常感谢!!持续更新!!!AI篇持续更新中!(长期更新)AI炼丹日志-30-新发布【1T万亿】参数量大模型!Kimi‑K2开源大模型解读与实践,持续打造实用AI工具指南!Java篇正式开启!(300篇)目前2025年07月21日更新到:Java-77深入浅出RPCDubbo负载均衡全解析:策略、配置与自定义实现实战MyBatis已完结,Spring已完结,Nginx已完结,Tom</div>
                    </li>
                    <li><a href="/article/1948582150378942464.htm"
                           title="Spring Cloud Netflix 技术总结" target="_blank">Spring Cloud Netflix 技术总结</a>
                        <span class="text-muted">谭俊杰Jerry</span>
<a class="tag" taget="_blank" href="/search/C%23%2F.NETCore/1.htm">C#/.NETCore</a><a class="tag" taget="_blank" href="/search/IOT/1.htm">IOT</a><a class="tag" taget="_blank" href="/search/%E7%A0%94%E7%A9%B6/1.htm">研究</a><a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a>
                        <div>SpringCloudNetflix是SpringCloud项目的一部分,提供了一套用于构建分布式系统和微服务架构的工具和库。它主要集成了Netflix的开源项目,如Eureka、Ribbon、Hystrix和Zuul,提供了服务发现、负载均衡、断路器、API网关等功能。以下是对SpringCloudNetflix技术的详细总结。概述SpringCloudNetflix:是SpringCloud项</div>
                    </li>
                                <li><a href="/article/2.htm"
                                       title="Java序列化进阶篇" target="_blank">Java序列化进阶篇</a>
                                    <span class="text-muted">g21121</span>
<a class="tag" taget="_blank" href="/search/java%E5%BA%8F%E5%88%97%E5%8C%96/1.htm">java序列化</a>
                                    <div>        1.transient 
        类一旦实现了Serializable 接口即被声明为可序列化,然而某些情况下并不是所有的属性都需要序列化,想要人为的去阻止这些属性被序列化,就需要用到transient 关键字。 
</div>
                                </li>
                                <li><a href="/article/129.htm"
                                       title="escape()、encodeURI()、encodeURIComponent()区别详解 " target="_blank">escape()、encodeURI()、encodeURIComponent()区别详解 </a>
                                    <span class="text-muted">aigo</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a>
                                    <div>原文:http://blog.sina.com.cn/s/blog_4586764e0101khi0.html 
  
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:,decodeURI,decodeURIComponent 。 
下面简单介绍一下它们的区别 
1 escape()函</div>
                                </li>
                                <li><a href="/article/256.htm"
                                       title="ArcgisEngine实现对地图的放大、缩小和平移" target="_blank">ArcgisEngine实现对地图的放大、缩小和平移</a>
                                    <span class="text-muted">Cb123456</span>
<a class="tag" taget="_blank" href="/search/%E6%B7%BB%E5%8A%A0%E7%9F%A2%E9%87%8F%E6%95%B0%E6%8D%AE/1.htm">添加矢量数据</a><a class="tag" taget="_blank" href="/search/%E5%AF%B9%E5%9C%B0%E5%9B%BE%E7%9A%84%E6%94%BE%E5%A4%A7%E3%80%81%E7%BC%A9%E5%B0%8F%E5%92%8C%E5%B9%B3%E7%A7%BB/1.htm">对地图的放大、缩小和平移</a><a class="tag" taget="_blank" href="/search/Engine/1.htm">Engine</a>
                                    <div>ArcgisEngine实现对地图的放大、缩小和平移: 
 个人觉得是平移,不过网上的都是漫游,通俗的说就是把一个地图对象从一边拉到另一边而已。就看人说话吧. 
 具体实现: 
一、引入命名空间 
   using ESRI.ArcGIS.Geometry; 
   using ESRI.ArcGIS.Controls; 
二、代码实现.</div>
                                </li>
                                <li><a href="/article/383.htm"
                                       title="Java集合框架概述" target="_blank">Java集合框架概述</a>
                                    <span class="text-muted">天子之骄</span>
<a class="tag" taget="_blank" href="/search/Java%E9%9B%86%E5%90%88%E6%A1%86%E6%9E%B6%E6%A6%82%E8%BF%B0/1.htm">Java集合框架概述</a>
                                    <div>   集合框架 
集合框架可以理解为一个容器,该容器主要指映射(map)、集合(set)、数组(array)和列表(list)等抽象数据结构。 
从本质上来说,Java集合框架的主要组成是用来操作对象的接口。不同接口描述不同的数据类型。 
  
简单介绍: 
  
Collection接口是最基本的接口,它定义了List和Set,List又定义了LinkLi</div>
                                </li>
                                <li><a href="/article/510.htm"
                                       title="旗正4.0页面跳转传值问题" target="_blank">旗正4.0页面跳转传值问题</a>
                                    <span class="text-muted">何必如此</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a>
                                    <div>跳转和成功提示 
a)        成功字段非空forward 
成功字段非空forward,不会弹出成功字段,为jsp转发,页面能超链接传值,传输变量时需要拼接。接拼接方式list.jsp?test="+strweightUnit+"或list.jsp?test="+weightUnit+&qu</div>
                                </li>
                                <li><a href="/article/637.htm"
                                       title="全网唯一:移动互联网服务器端开发课程" target="_blank">全网唯一:移动互联网服务器端开发课程</a>
                                    <span class="text-muted">cocos2d-x小菜</span>
<a class="tag" taget="_blank" href="/search/web%E5%BC%80%E5%8F%91/1.htm">web开发</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E7%AB%AF%E5%BC%80%E5%8F%91/1.htm">移动端开发</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E4%BA%92%E8%81%94/1.htm">移动互联</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a>
                                    <div>    移动互联网时代来了!     App市场爆发式增长为Web开发程序员带来新一轮机遇,近两年新增创业者,几乎全部选择了移动互联网项目!传统互联网企业中超过98%的门户网站已经或者正在从单一的网站入口转向PC、手机、Pad、智能电视等多端全平台兼容体系。据统计,AppStore中超过85%的App项目都选择了PHP作为后端程</div>
                                </li>
                                <li><a href="/article/764.htm"
                                       title="Log4J通用配置|注意问题 笔记" target="_blank">Log4J通用配置|注意问题 笔记</a>
                                    <span class="text-muted">7454103</span>
<a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/log4j/1.htm">log4j</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a>
                                    <div>关于日志的等级 那些去 百度就知道了! 
这几天 要搭个新框架  配置了 日志 记下来 !做个备忘! 
 

 #这里定义能显示到的最低级别,若定义到INFO级别,则看不到DEBUG级别的信息了~!
log4j.rootLogger=INFO,allLog

# DAO层 log记录到dao.log 控制台 和 总日志文件
log4j.logger.DAO=INFO,dao,C</div>
                                </li>
                                <li><a href="/article/891.htm"
                                       title="SQLServer TCP/IP 连接失败问题 ---SQL Server Configuration Manager" target="_blank">SQLServer TCP/IP 连接失败问题 ---SQL Server Configuration Manager</a>
                                    <span class="text-muted">darkranger</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a><a class="tag" taget="_blank" href="/search/XP/1.htm">XP</a>
                                    <div>当你安装完之后,连接数据库的时候可能会发现你的TCP/IP 没有启动.. 
发现需要启动客户端协议 : TCP/IP  
需要打开 SQL Server Configuration Manager... 
却发现无法打开 SQL Server Configuration Manager..?? 
 
解决方法:  C:\WINDOWS\system32目录搜索framedyn.</div>
                                </li>
                                <li><a href="/article/1018.htm"
                                       title="[置顶] 做有中国特色的程序员" target="_blank">[置顶] 做有中国特色的程序员</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a>
                                    <div>从出版业说起   网络作品排到靠前的,都不会太难看,一般人不爱看某部作品也是因为不喜欢这个类型,而此人也不会全不喜欢这些网络作品。究其原因,是因为网络作品都是让人先白看的,看的好了才出了头。而纸质作品就不一定了,排行榜靠前的,有好作品,也有垃圾。   许多大牛都是写了博客,后来出了书。这些书也都不次,可能有人让为不好,是因为技术书不像小说,小说在读故事,技术书是在学知识或温习知识,有些技术书读得可</div>
                                </li>
                                <li><a href="/article/1145.htm"
                                       title="document.domain 跨域问题" target="_blank">document.domain 跨域问题</a>
                                    <span class="text-muted">avords</span>
<a class="tag" taget="_blank" href="/search/document/1.htm">document</a>
                                    <div>document.domain用来得到当前网页的域名。比如在地址栏里输入:javascript:alert(document.domain); //www.315ta.com我们也可以给document.domain属性赋值,不过是有限制的,你只能赋成当前的域名或者基础域名。比如:javascript:alert(document.domain = "315ta.com"); </div>
                                </li>
                                <li><a href="/article/1272.htm"
                                       title="关于管理软件的一些思考" target="_blank">关于管理软件的一些思考</a>
                                    <span class="text-muted">houxinyou</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%A1%E7%90%86/1.htm">管理</a>
                                    <div>  
工作好多看年了,一直在做管理软件,不知道是我最开始做的时候产生了一些惯性的思维,还是现在接触的管理软件水平有所下降.换过好多年公司,越来越感觉现在的管理软件做的越来越乱. 
在我看来,管理软件不论是以前的结构化编程,还是现在的面向对象编程,不管是CS模式,还是BS模式.模块的划分是很重要的.当然,模块的划分有很多种方式.我只是以我自己的划分方式来说一下. 
做为管理软件,就像现在讲究MVC这</div>
                                </li>
                                <li><a href="/article/1399.htm"
                                       title="NoSQL数据库之Redis数据库管理(String类型和hash类型)" target="_blank">NoSQL数据库之Redis数据库管理(String类型和hash类型)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/NoSQL/1.htm">NoSQL</a>
                                    <div>一.Redis的数据类型 
1.String类型及操作 
        String是最简单的类型,一个key对应一个value,string类型是二进制安全的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象。 
        Set方法:设置key对应的值为string类型的value </div>
                                </li>
                                <li><a href="/article/1526.htm"
                                       title="Tomcat 一些技巧" target="_blank">Tomcat 一些技巧</a>
                                    <span class="text-muted">征客丶</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/dos/1.htm">dos</a>
                                    <div>以下操作都是在windows 环境下 
 
一、Tomcat 启动时配置 JAVA_HOME 
在 tomcat 安装目录,bin 文件夹下的 catalina.bat 或 setclasspath.bat 中添加 
 
set JAVA_HOME=JAVA 安装目录 
set JRE_HOME=JAVA 安装目录/jre 
 
即可; 
 
二、查看Tomcat 版本 
在 tomcat 安装目</div>
                                </li>
                                <li><a href="/article/1653.htm"
                                       title="【Spark七十二】Spark的日志配置" target="_blank">【Spark七十二】Spark的日志配置</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a>
                                    <div>在测试Spark Streaming时,大量的日志显示到控制台,影响了Spark Streaming程序代码的输出结果的查看(代码中通过println将输出打印到控制台上),可以通过修改Spark的日志配置的方式,不让Spark Streaming把它的日志显示在console 
  
在Spark的conf目录下,把log4j.properties.template修改为log4j.p</div>
                                </li>
                                <li><a href="/article/1780.htm"
                                       title="Haskell版冒泡排序" target="_blank">Haskell版冒泡排序</a>
                                    <span class="text-muted">bookjovi</span>
<a class="tag" taget="_blank" href="/search/%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F/1.htm">冒泡排序</a><a class="tag" taget="_blank" href="/search/haskell/1.htm">haskell</a>
                                    <div>面试的时候问的比较多的算法题要么是binary search,要么是冒泡排序,真的不想用写C写冒泡排序了,贴上个Haskell版的,思维简单,代码简单,下次谁要是再要我用C写冒泡排序,直接上个haskell版的,让他自己去理解吧。 
  
  
sort [] = []
sort [x] = [x]
sort (x:x1:xs)
    | x>x1 = x1:so</div>
                                </li>
                                <li><a href="/article/1907.htm"
                                       title="java 路径 配置文件读取" target="_blank">java 路径 配置文件读取</a>
                                    <span class="text-muted">bro_feng</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>这几天做一个项目,关于路径做如下笔记,有需要供参考。 
 
取工程内的文件,一般都要用相对路径,这个自然不用多说。 
 
在src统计目录建配置文件目录res,在res中放入配置文件。 
读取文件使用方式: 
1. MyTest.class.getResourceAsStream("/res/xx.properties") 
2. properties.load(MyTest.</div>
                                </li>
                                <li><a href="/article/2034.htm"
                                       title="读《研磨设计模式》-代码笔记-简单工厂模式" target="_blank">读《研磨设计模式》-代码笔记-简单工厂模式</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
                                    <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ 
 
 


package design.pattern;

/*
 * 个人理解:简单工厂模式就是IOC;
 * 客户端要用到某一对象,本来是由客户创建的,现在改成由工厂创建,客户直接取就好了
 */
interface IProduct {
	</div>
                                </li>
                                <li><a href="/article/2161.htm"
                                       title="SVN与JIRA的关联" target="_blank">SVN与JIRA的关联</a>
                                    <span class="text-muted">chenyu19891124</span>
<a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a>
                                    <div>SVN与JIRA的关联一直都没能装成功,今天凝聚心思花了一天时间整合好了。下面是自己整理的步骤: 
一、搭建好SVN环境,尤其是要把SVN的服务注册成系统服务 
二、装好JIRA,自己用是jira-4.3.4破解版 
三、下载SVN与JIRA的插件并解压,然后拷贝插件包下lib包里的三个jar,放到Atlassian\JIRA 4.3.4\atlassian-jira\WEB-INF\lib下,再</div>
                                </li>
                                <li><a href="/article/2288.htm"
                                       title="JWFDv0.96 最新设计思路" target="_blank">JWFDv0.96 最新设计思路</a>
                                    <span class="text-muted">comsci</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/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E5%BA%94%E7%94%A8/1.htm">企业应用</a><a class="tag" taget="_blank" href="/search/%E5%85%AC%E5%91%8A/1.htm">公告</a>
                                    <div>                   
 
 
随着工作流技术的发展,工作流产品的应用范围也不断的在扩展,开始进入了像金融行业(我已经看到国有四大商业银行的工作流产品招标公告了),实时生产控制和其它比较重要的工程领域,而</div>
                                </li>
                                <li><a href="/article/2415.htm"
                                       title="vi 保存复制内容格式粘贴" target="_blank">vi 保存复制内容格式粘贴</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/vi/1.htm">vi</a><a class="tag" taget="_blank" href="/search/%E7%B2%98%E8%B4%B4/1.htm">粘贴</a><a class="tag" taget="_blank" href="/search/%E5%A4%8D%E5%88%B6/1.htm">复制</a><a class="tag" taget="_blank" href="/search/%E4%BF%9D%E5%AD%98%E5%8E%9F%E6%A0%BC%E5%BC%8F/1.htm">保存原格式</a><a class="tag" taget="_blank" href="/search/%E4%B8%8D%E5%8F%98%E5%BD%A2/1.htm">不变形</a>
                                    <div>    vi是linux中非常好用的文本编辑工具,功能强大无比,但对于复制带有缩进格式的内容时,粘贴的时候内容错位很严重,不会按照复制时的格式排版,vi能不能在粘贴时,按复制进的格式进行粘贴呢? 答案是肯定的,vi有一个很强大的命令可以实现此功能 。 
 
    在命令模式输入:set paste,则进入paste模式,这样再进行粘贴时</div>
                                </li>
                                <li><a href="/article/2542.htm"
                                       title="shell脚本运行时报错误:/bin/bash^M: bad interpreter 的解决办法" target="_blank">shell脚本运行时报错误:/bin/bash^M: bad interpreter 的解决办法</a>
                                    <span class="text-muted">dongwei_6688</span>
<a class="tag" taget="_blank" href="/search/shell%E8%84%9A%E6%9C%AC/1.htm">shell脚本</a>
                                    <div>出现原因:windows上写的脚本,直接拷贝到linux系统上运行由于格式不兼容导致 
解决办法: 
 1. 比如文件名为myshell.sh,vim myshell.sh 
 2. 执行vim中的命令 : set ff?查看文件格式,如果显示fileformat=dos,证明文件格式有问题 
 3. 执行vim中的命令 :set fileformat=unix 将文件格式改过来就可以了,然后:w</div>
                                </li>
                                <li><a href="/article/2669.htm"
                                       title="高一上学期难记忆单词" target="_blank">高一上学期难记忆单词</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/word/1.htm">word</a><a class="tag" taget="_blank" href="/search/english/1.htm">english</a>
                                    <div>honest 诚实的;正直的 
argue 争论 
classical 古典的 
hammer 锤子 
share  分享;共有 
sorrow 悲哀;悲痛 
adventure 冒险 
error 错误;差错 
closet 壁橱;储藏室 
pronounce 发音;宣告 
repeat 重做;重复 
majority 大多数;大半 
  
native 本国的,本地的,本国</div>
                                </li>
                                <li><a href="/article/2923.htm"
                                       title="hibernate查询返回DTO对象,DTO封装了多个pojo对象的属性" target="_blank">hibernate查询返回DTO对象,DTO封装了多个pojo对象的属性</a>
                                    <span class="text-muted">frankco</span>
<a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a><a class="tag" taget="_blank" href="/search/hibernate%E6%9F%A5%E8%AF%A2/1.htm">hibernate查询</a><a class="tag" taget="_blank" href="/search/DTO/1.htm">DTO</a>
                                    <div>      DTO-数据传输对象;pojo-最纯粹的java对象与数据库中的表一一对应。 
      简单讲:DTO起到业务数据的传递作用,pojo则与持久层数据库打交道。 
  
      有时候我们需要查询返回DTO对象,因为DTO</div>
                                </li>
                                <li><a href="/article/3050.htm"
                                       title="Partition List" target="_blank">Partition List</a>
                                    <span class="text-muted">hcx2013</span>
<a class="tag" taget="_blank" href="/search/partition/1.htm">partition</a>
                                    <div>Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x. 
You should preserve the original relative order of th</div>
                                </li>
                                <li><a href="/article/3177.htm"
                                       title="Spring MVC测试框架详解——客户端测试" target="_blank">Spring MVC测试框架详解——客户端测试</a>
                                    <span class="text-muted">jinnianshilongnian</span>

                                    <div>上一篇《Spring MVC测试框架详解——服务端测试》已经介绍了服务端测试,接下来再看看如果测试Rest客户端,对于客户端测试以前经常使用的方法是启动一个内嵌的jetty/tomcat容器,然后发送真实的请求到相应的控制器;这种方式的缺点就是速度慢;自Spring 3.2开始提供了对RestTemplate的模拟服务器测试方式,也就是说使用RestTemplate测试时无须启动服务器,而是模拟一</div>
                                </li>
                                <li><a href="/article/3304.htm"
                                       title="关于推荐个人观点" target="_blank">关于推荐个人观点</a>
                                    <span class="text-muted">liyonghui160com</span>
<a class="tag" taget="_blank" href="/search/%E6%8E%A8%E8%8D%90%E7%B3%BB%E7%BB%9F/1.htm">推荐系统</a><a class="tag" taget="_blank" href="/search/%E5%85%B3%E4%BA%8E%E6%8E%A8%E8%8D%90%E4%B8%AA%E4%BA%BA%E8%A7%82%E7%82%B9/1.htm">关于推荐个人观点</a>
                                    <div>    回想起来,我也做推荐了3年多了,最近公司做了调整招聘了很多算法工程师,以为需要多么高大上的算法才能搭建起来的,从实践中走过来,我只想说【不是这样的】 
 
    第一次接触推荐系统是在四年前入职的时候,那时候,机器学习和大数据都是没有的概念,什么大数据处理开源软件根本不存在,我们用多台计算机web程序记录用户行为,用.net的w</div>
                                </li>
                                <li><a href="/article/3431.htm"
                                       title="不间断旋转的动画" target="_blank">不间断旋转的动画</a>
                                    <span class="text-muted">pangyulei</span>
<a class="tag" taget="_blank" href="/search/%E5%8A%A8%E7%94%BB/1.htm">动画</a>
                                    <div>
CABasicAnimation* rotationAnimation;
    rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
    rotationAnimation.toValue = [NSNumber numberWithFloat: M</div>
                                </li>
                                <li><a href="/article/3558.htm"
                                       title="自定义annotation" target="_blank">自定义annotation</a>
                                    <span class="text-muted">sha1064616837</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/annotation/1.htm">annotation</a><a class="tag" taget="_blank" href="/search/reflect/1.htm">reflect</a>
                                    <div>对象有的属性在页面上可编辑,有的属性在页面只可读,以前都是我们在页面上写死的,时间一久有时候会混乱,此处通过自定义annotation在类属性中定义。越来越发现Java的Annotation真心很强大,可以帮我们省去很多代码,让代码看上去简洁。 
下面这个例子 主要用到了 
1.自定义annotation:@interface,以及几个配合着自定义注解使用的几个注解 
2.简单的反射 
3.枚举 </div>
                                </li>
                                <li><a href="/article/3685.htm"
                                       title="Spring 源码" target="_blank">Spring 源码</a>
                                    <span class="text-muted">up2pu</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>1.Spring源代码 
https://github.com/SpringSource/spring-framework/branches/3.2.x 
注:兼容svn检出 
 
2.运行脚本 
import-into-eclipse.bat 
注:需要设置JAVA_HOME为jdk 1.7 
 
build.gradle 
 compileJava { 
 sourceCompatibilit</div>
                                </li>
                                <li><a href="/article/3812.htm"
                                       title="利用word分词来计算文本相似度" target="_blank">利用word分词来计算文本相似度</a>
                                    <span class="text-muted">yangshangchuan</span>
<a class="tag" taget="_blank" href="/search/word/1.htm">word</a><a class="tag" taget="_blank" href="/search/word%E5%88%86%E8%AF%8D/1.htm">word分词</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E6%9C%AC%E7%9B%B8%E4%BC%BC%E5%BA%A6/1.htm">文本相似度</a><a class="tag" taget="_blank" href="/search/%E4%BD%99%E5%BC%A6%E7%9B%B8%E4%BC%BC%E5%BA%A6/1.htm">余弦相似度</a><a class="tag" taget="_blank" href="/search/%E7%AE%80%E5%8D%95%E5%85%B1%E6%9C%89%E8%AF%8D/1.htm">简单共有词</a>
                                    <div>word分词提供了多种文本相似度计算方式: 
方式一:余弦相似度,通过计算两个向量的夹角余弦值来评估他们的相似度 
实现类:org.apdplat.word.analysis.CosineTextSimilarity 
用法如下: 
String text1 = "我爱购物";
String text2 = "我爱读书";
String text3 = </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>