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/1835508130268672000.htm"
                           title="消息中间件有哪些常见类型" target="_blank">消息中间件有哪些常见类型</a>
                        <span class="text-muted">xmh-sxh-1314</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>消息中间件根据其设计理念和用途,可以大致分为以下几种常见类型:点对点消息队列(Point-to-PointMessagingQueues):在这种模型中,消息被发送到特定的队列中,消费者从队列中取出并处理消息。队列中的消息只能被一个消费者消费,消费后即被删除。常见的实现包括IBM的MQSeries、RabbitMQ的部分使用场景等。适用于任务分发、负载均衡等场景。发布/订阅消息模型(Pub/Sub</div>
                    </li>
                    <li><a href="/article/1835432358141063168.htm"
                           title="深入浅出 -- 系统架构之负载均衡Nginx的性能优化" target="_blank">深入浅出 -- 系统架构之负载均衡Nginx的性能优化</a>
                        <span class="text-muted">xiaoli8748_软件开发</span>
<a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%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/nginx/1.htm">nginx</a>
                        <div>一、Nginx性能优化到这里文章的篇幅较长了,最后再来聊一下关于Nginx的性能优化,主要就简单说说收益最高的几个优化项,在这块就不再展开叙述了,毕竟影响性能都有多方面原因导致的,比如网络、服务器硬件、操作系统、后端服务、程序自身、数据库服务等,对于性能调优比较感兴趣的可以参考之前《JVM性能调优》中的调优思想。优化一:打开长连接配置通常Nginx作为代理服务,负责分发客户端的请求,那么建议开启H</div>
                    </li>
                    <li><a href="/article/1835321295861018624.htm"
                           title="Gobelieve 架构" target="_blank">Gobelieve 架构</a>
                        <span class="text-muted">weixin_34099526</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a>
                        <div>Gobelievegithub地址声明:转简书JackieF的文章,为了自己方便copy了一份,加一些自己的东西.链接:https://www.jianshu.com/p/8121d6e85282IMCore主要分三大块:im客户连接服务器(可分布式部署,暂无负载均衡模块)imr路由查询服务器(主要解决im分布式部署的问题)ims存储服务器(主从部署)基础模块1.数据包协议包:header(12)</div>
                    </li>
                    <li><a href="/article/1835188748925628416.htm"
                           title="Spring Boot 请求处理流程:从负载均衡到多实例并发 - 电子商务网站实例" target="_blank">Spring Boot 请求处理流程:从负载均衡到多实例并发 - 电子商务网站实例</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/boot/1.htm">boot</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%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>SpringBoot请求处理流程:从负载均衡到多实例并发-电子商务网站实例SpringBoot请求处理流程:从负载均衡到多实例并发SpringBoot作为一个强大的Java应用开发框架,能够有效地处理高并发请求。本文将基于三个关键流程图,详细分析SpringBoot应用如何从负载均衡到请求处理,再到多实例并发处理的整个过程。1.负载均衡和多实例处理首先,让我们看一下描述负载均衡和多实例处理的流程图</div>
                    </li>
                    <li><a href="/article/1835182528839905280.htm"
                           title="Open Feign 实战笔记" target="_blank">Open Feign 实战笔记</a>
                        <span class="text-muted">自强-X</span>
<a class="tag" taget="_blank" href="/search/spring-cloud/1.htm">spring-cloud</a><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/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/ribbon/1.htm">ribbon</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a>
                        <div>OpenFeign笔记概念声明式的web服务客户端。使用接口加注解的形式编程。它是对RestTemplate和ribbon做了进一步封装。Feign已经停更,OpenFeign是在Feign的基础上又做了进一步的封装。Feign:Feign是SpringCloud组件中的一个轻量级RESTful的HTTP服务客户端Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。Fei</div>
                    </li>
                    <li><a href="/article/1835021913093664768.htm"
                           title="9.单细胞 RNA-seq:聚类分析" target="_blank">9.单细胞 RNA-seq:聚类分析</a>
                        <span class="text-muted">denghb001</span>

                        <div>学习目标:利用多种方法来评估聚类选择的PC基于重要的PC执行单细胞聚类单细胞RNA-seq聚类分析现在我们已经整合了高质量的细胞,我们想知道我们的细胞群中存在的不同细胞类型。image目标:为了生成特定细胞类型的簇,并使用已知的细胞类型的标志基因来确定的簇的身份。为了确定分群是否代表真实的细胞类型或由于生物或技术差异而形成的群集,如在细胞周期的S期的细胞群,特定批次的簇,或具有高线粒体含量的细胞。</div>
                    </li>
                    <li><a href="/article/1834967949044183040.htm"
                           title="微服务之服务注册与发现:Etcd、Zookeeper、Consul 与 Nacos 比较" target="_blank">微服务之服务注册与发现:Etcd、Zookeeper、Consul 与 Nacos 比较</a>
                        <span class="text-muted">陌北v1</span>
<a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/etcd/1.htm">etcd</a><a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a><a class="tag" taget="_blank" href="/search/Consul/1.htm">Consul</a><a class="tag" taget="_blank" href="/search/Nacos/1.htm">Nacos</a>
                        <div>在微服务架构中,服务注册与发现是实现服务动态管理和负载均衡的关键。本文将对四款主流的服务注册与发现工具——Etcd、Zookeeper、Consul、Nacos进行深入对比,从功能、性能、一致性、生态集成、应用场景等多个维度展开分析,帮助您选择最适合的工具。核心概念服务注册:服务实例启动时将自身信息(IP地址、端口、健康状态等)注册到注册中心。服务发现:服务消费者通过注册中心查询所需服务的地址列表</div>
                    </li>
                    <li><a href="/article/1834967192169443328.htm"
                           title="论文分享系列(二)——论微服务架构及其应用" target="_blank">论文分享系列(二)——论微服务架构及其应用</a>
                        <span class="text-muted">马斯洛金字塔下的小灵猴儿</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E8%80%83%E9%AB%98%E9%A1%B9%E6%9E%B6%E6%9E%84%E5%B8%88/1.htm">软考高项架构师</a><a class="tag" taget="_blank" href="/search/%E8%AE%BA%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84%E5%8F%8A%E5%85%B6%E5%BA%94%E7%94%A8/1.htm">论微服务架构及其应用</a><a class="tag" taget="_blank" href="/search/%E8%AE%BA%E6%96%87/1.htm">论文</a>
                        <div>论微服务架构及其应用摘要2023年5月,我司启动了精彩购电商系统的开发工作,该项目组中我担任系统架构师岗位,主要负责整体架构设计与中间件选型。本文以该电商平台为例,将介绍微服务架构的特点、应用场景以及实现方法。系统以SpringCloud微服务框架开发,分为前端Web服务、平台保障服务、业务服务三部分。前端Web服务由负载均衡与服务器集群结合,实现高并发的前台界面;平台保障服务以Eureka为中心</div>
                    </li>
                    <li><a href="/article/1834963034653683712.htm"
                           title="React 前端应用结合 Nginx 部署指南及常见错误排查" target="_blank">React 前端应用结合 Nginx 部署指南及常见错误排查</a>
                        <span class="text-muted">蜗牛去旅行吧</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/react.js/1.htm">react.js</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a>
                        <div>在现代Web开发中,React已成为构建用户界面的流行选择,而Nginx则是一个高性能的Web服务器,广泛用于静态文件的托管和负载均衡。在本篇博客中,我们将详细介绍如何将一个React应用部署到Nginx上,并探讨在部署过程中可能遇到的常见错误及其解决方案。部署步骤1.准备React应用首先,确保你已经创建了一个React应用。如果还没有,可以使用CreateReactApp快速生成一个基础项目:</div>
                    </li>
                    <li><a href="/article/1834921172186263552.htm"
                           title="RocketMQ 架构简析,看这篇就够了!" target="_blank">RocketMQ 架构简析,看这篇就够了!</a>
                        <span class="text-muted">V搜编程进阶路</span>
<a class="tag" taget="_blank" href="/search/Java%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">Java程序员</a><a class="tag" taget="_blank" href="/search/java-rocketmq/1.htm">java-rocketmq</a><a class="tag" taget="_blank" href="/search/rocketmq/1.htm">rocketmq</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a>
                        <div>生产者组(ProducerGroup)同一类Producer的集合,这类Producer发送同一类消息且发送逻辑一致。如果发送的是事务消息且原始生产者在发送之后崩溃,则Broker服务器会联系同一生产者组的其他生产者实例以提交或回溯消费。消费者组(ConsumerGroup)同一类Consumer的集合,这类Consumer通常消费同一类消息且消费逻辑一致。消费者组使得在消息消费方面,实现负载均衡</div>
                    </li>
                    <li><a href="/article/1834904286258098176.htm"
                           title="微服务架构下的服务治理实现方案详解" target="_blank">微服务架构下的服务治理实现方案详解</a>
                        <span class="text-muted">星辰@Sea</span>
<a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><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/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a>
                        <div>在微服务架构中,服务治理是确保系统稳定运行、提高服务间通信效率和灵活性的关键环节。它涉及服务的发现、负载均衡、容错、监控等多个方面。本文将深入探讨几种常见的服务治理实现方案:Zookeeper、Nacos、Consul、以及Eureka,分析它们的特点、工作原理及应用场景,帮助开发者根据实际需求选择合适的工具。一、服务治理概述服务治理,简而言之,就是对微服务架构中的服务进行有效管理的过程,包括服务</div>
                    </li>
                    <li><a href="/article/1834780049505611776.htm"
                           title="Hbase - 迁移数据[导出,导入]" target="_blank">Hbase - 迁移数据[导出,导入]</a>
                        <span class="text-muted">kikiki5</span>

                        <div>>有没有这样一样情况,把一个集群中的某个表导到另一个群集中,或者hbase的表结构发生了更改,但是数据还要,比如预分区没做,导致某台RegionServer很吃紧,Hbase的导出导出都可以很快的完成这些操作。![](https://upload-images.jianshu.io/upload_images/9028759-4fb9aa8ca3777969.png?imageMogr2/auto</div>
                    </li>
                    <li><a href="/article/1834777848154517504.htm"
                           title="在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——聚合与搜索(三)" target="_blank">在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——聚合与搜索(三)</a>
                        <span class="text-muted">不会编程的小孩子</span>
<a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</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/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a>
                        <div>#在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——聚合与搜索(三)前言文章目录前言-聚合和分析-执行聚合操作-1.使用JavaAPI执行聚合操作-2.使用CURL命令执行聚合操作-1.使用JavaAPI执行度量操作-2.使用CURL命令执行度量操作-使用缓存-调整分片大小和数量-使用搜索建议-结论-节点发现-负载均衡-故障转移-结论-访问控制-加密-身份验证-结论-RESTA</div>
                    </li>
                    <li><a href="/article/1834630606718332928.htm"
                           title="【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡" target="_blank">【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡</a>
                        <span class="text-muted">爱代码也爱生活</span>
<a class="tag" taget="_blank" href="/search/linux%E8%BF%90%E7%BB%B4/1.htm">linux运维</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a><a class="tag" taget="_blank" href="/search/Keepalived/1.htm">Keepalived</a><a class="tag" taget="_blank" href="/search/lvs/1.htm">lvs</a>
                        <div>一、负载均衡:必不可少的基础手段1.1找更多的牛来拉车吧当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等。古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车。在实际应用中,在Web服务器集群之前总会有一台负载均衡服务</div>
                    </li>
                    <li><a href="/article/1834391899826384896.htm"
                           title="大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡方法选择全攻略(2-2)" target="_blank">大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡方法选择全攻略(2-2)</a>
                        <span class="text-muted">青云交</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%96%B0%E8%A7%86%E7%95%8C/1.htm">大数据新视界</a><a class="tag" taget="_blank" href="/search/Java%E6%8A%80%E6%9C%AF%E6%A0%88/1.htm">Java技术栈</a><a class="tag" taget="_blank" href="/search/Java%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">Java性能优化</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/%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7%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/%E4%B8%9A%E5%8A%A1%E8%A7%84%E6%A8%A1/1.htm">业务规模</a><a class="tag" taget="_blank" href="/search/%E9%A2%84%E7%AE%97%E9%99%90%E5%88%B6/1.htm">预算限制</a><a class="tag" taget="_blank" href="/search/%E5%8F%AF%E6%89%A9%E5%B1%95%E6%80%A7/1.htm">可扩展性</a><a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E5%9B%A2%E9%98%9F%E8%83%BD%E5%8A%9B/1.htm">技术团队能力</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%AE%89%E5%85%A8%E6%80%A7/1.htm">数据安全性</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E5%A4%8D%E6%9D%82%E6%80%A7/1.htm">系统复杂性</a><a class="tag" taget="_blank" href="/search/%E8%A1%8C%E4%B8%9A%E7%89%B9%E7%82%B9/1.htm">行业特点</a><a class="tag" taget="_blank" href="/search/%E7%A1%AC%E4%BB%B6%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8/1.htm">硬件负载均衡器</a><a class="tag" taget="_blank" href="/search/Nginx/1.htm">Nginx</a><a class="tag" taget="_blank" href="/search/HAProxy/1.htm">HAProxy</a>
                        <div>亲爱的朋友们,热烈欢迎你们来到青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而我的博客,正是这样一个温暖美好的所在。在这里,你们不仅能够收获既富有趣味又极为实用的内容知识,还可以毫无拘束地畅所欲言,尽情分享自己独特的见解。我真诚地期待着你们的到来,愿我们能在这片小小的天地里共同成长,共同进步。本博客的精华专栏:Ja</div>
                    </li>
                    <li><a href="/article/1834216379457302528.htm"
                           title="web.xml and server.xml-03-11" target="_blank">web.xml and server.xml-03-11</a>
                        <span class="text-muted">封_绝</span>

                        <div>web.xml加载顺序:ServletContext→context-param→listener→filter→servletserver.xmlAJP服务器群集热部署:不需要每次做修改都重启服务器,//下//如果该路径下没有项目,则会报错(其余项目依旧会正常加载),如果是使用冷部署则不会报错?idea中的设置如下:image.png</div>
                    </li>
                    <li><a href="/article/1834187798614208512.htm"
                           title="L4-7硬件负载均衡记录上一跳(last hop)原理分析" target="_blank">L4-7硬件负载均衡记录上一跳(last hop)原理分析</a>
                        <span class="text-muted">木尘zero</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><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>目前随着L4-7层国产硬件负载均衡设备涌入市场,硬件负载均衡产品的各项功能的介绍也是很多,本文对目前主流的硬件负载均衡产品在负载过程记录上一跳的功能原理进行大致的分析。硬件负载均衡产品大家估计想到的有很多;有主机类型的也有交换类型的硬件负载均衡产品,例如:F5(云科)、深信服(SANGFORAD)、迪普(DPtech)、弘积(horizon-adn)信安世纪(NSAE)等等是基于交换类型的的负载均</div>
                    </li>
                    <li><a href="/article/1834143428301123584.htm"
                           title="Oracle数据库中的Oracle Real Application Clusters是什么" target="_blank">Oracle数据库中的Oracle Real Application Clusters是什么</a>
                        <span class="text-muted">2401_85812053</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a>
                        <div>OracleRealApplicationClusters(简称OracleRAC)是Oracle数据库的一个关键特性,它允许多个数据库实例同时访问和管理同一个数据库。这种架构设计的目的是为了提高数据库系统的可扩展性、可用性和性能。OracleRAC的核心特点包括:高可用性:如果任何一个节点发生故障,其他节点可以继续处理请求,从而保持应用程序的连续运行。数据库实例之间的负载均衡可以自动进行,减少单</div>
                    </li>
                    <li><a href="/article/1834123892411691008.htm"
                           title="Gateway Timeout504: 网关超时的完美解决方法" target="_blank">Gateway Timeout504: 网关超时的完美解决方法</a>
                        <span class="text-muted">潘多编程</span>
<a class="tag" taget="_blank" href="/search/gateway/1.htm">gateway</a>
                        <div>引言在Web开发中,遇到HTTP状态码504(GatewayTimeout)是相当常见的。这个状态码表示前端服务器(如负载均衡器或代理服务器)作为网关工作时,在尝试访问后端服务器处理请求时未能及时得到响应。本文将探讨导致504错误的原因以及如何有效地诊断和解决这类问题。GatewayTimeout是什么?HTTP状态码504表示前端服务器已经收到了客户端的请求,并且知道应该由哪个后端服务器来处理该</div>
                    </li>
                    <li><a href="/article/1833948550925479936.htm"
                           title="静态住宅代理的优化策略" target="_blank">静态住宅代理的优化策略</a>
                        <span class="text-muted">weixin_51069555</span>
<a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a>
                        <div>静态住宅代理是一种比较常见的代理服务技术,通过缓存请求、数据转发和负载均衡,显著提升了系统性能和用户体验。为了最大化静态住宅代理的效能,优化策略显得尤为重要。本文将深入探讨静态住宅代理的优化策略,包括性能优化、缓存管理、数据压缩、延迟减少等方面,以帮助网络工程师和系统管理员提升静态住宅代理的性能和可靠性。性能优化策略请求合并是一种将多个小的请求合并为一个大请求的技术。静态住宅代理可以通过请求合并减</div>
                    </li>
                    <li><a href="/article/1833821961822760960.htm"
                           title="构建高效微服务架构:Spring Cloud中的注册中心与负载均衡实践" target="_blank">构建高效微服务架构:Spring Cloud中的注册中心与负载均衡实践</a>
                        <span class="text-muted">Disper_</span>
<a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/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/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a>
                        <div>一、注册中心的重要性服务发现:服务注册/注销:注册中心维护着所有服务提供者和服务消费者的元数据信息。服务订阅/取消订阅:服务消费者可以通过订阅来获取服务提供者的信息,并且注册中心应当支持实时推送更新。服务路由:某些注册中心提供了额外的功能,比如根据条件对服务实例进行筛选和整合。服务配置:配置订阅:服务实例可以订阅配置中心来接收最新的配置信息。配置下发:注册中心可以主动将新的配置推送到服务实例中。服</div>
                    </li>
                    <li><a href="/article/1833795106122067968.htm"
                           title="Nginx的5种负载均衡配置" target="_blank">Nginx的5种负载均衡配置</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/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>Nginx在web应用的部署中,作为一种轻量级的负载均衡服务器,起到很强大的作用,其中的常见5种负载均衡的模式也是我们最常用的,下面给大家介绍一下相关的配置。Nginx负载的5种策略设置方法:轮询(默认)指定权重IP绑定ip_hashfairurl_hash1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。轮询:nginx默认就是轮询其权重都默认为</div>
                    </li>
                    <li><a href="/article/1833780868104155136.htm"
                           title="nginx配置负载均衡的几种方式" target="_blank">nginx配置负载均衡的几种方式</a>
                        <span class="text-muted">itbigold</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>
                        <div>1,轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。   #反向代理配置   upstreamserver_list{    #这个是tomcat的访问路径    serverlocalhost:8080;    serverlocalhost:9999;   }   server{       listen   80;       server_n</div>
                    </li>
                    <li><a href="/article/1833738371827068928.htm"
                           title="Spring Cloud Gateway:现代微服务架构中的API网关解决方案" target="_blank">Spring Cloud Gateway:现代微服务架构中的API网关解决方案</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/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a><a class="tag" taget="_blank" href="/search/gateway/1.htm">gateway</a>
                        <div>引言在微服务架构中,API网关作为客户端与后端服务之间的中介,承担着请求路由、负载均衡、认证授权等重要职责。SpringCloudGateway是Spring生态系统中的一款强大且灵活的API网关解决方案,本文将深入探讨其工作原理、核心功能及应用场景。什么是SpringCloudGateway?SpringCloudGateway是SpringCloud项目的一部分,旨在为微服务架构提供高效的AP</div>
                    </li>
                    <li><a href="/article/1833671044267864064.htm"
                           title="ActiveMQ集群、负载均衡、消息回流" target="_blank">ActiveMQ集群、负载均衡、消息回流</a>
                        <span class="text-muted">星星都没我亮</span>
<a class="tag" taget="_blank" href="/search/ActiveMQ/1.htm">ActiveMQ</a><a class="tag" taget="_blank" href="/search/activemq/1.htm">activemq</a>
                        <div>文章目录集群配置主备集群SharedFileSystemMasterSlavefailover故障转移协议TransportOptions负载均衡静态网络配置可配置属性URI的几个属性NetworkConnectorProperties动态网络配置消息回流消息副本集群配置官方文档http://activemq.apache.org/clustering主备集群http://activemq.apa</div>
                    </li>
                    <li><a href="/article/1833549086708559872.htm"
                           title="Nginx" target="_blank">Nginx</a>
                        <span class="text-muted">砌月东谷</span>

                        <div>一、Nginx简介1.Nginx是什么??Nginx(enginex)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器?Nginx可以作为一个Web服务器进行网站的发布,也可以作为反向代理服务器进行负载均衡的实现?常见的Web服务器:Tomcat、Apache、Nginx、Weblogic等2.特点占用内存少、并发能力强二、搭建Nginx环境1.安装nginx?两</div>
                    </li>
                    <li><a href="/article/1833534762401230848.htm"
                           title="【脚手架 第一篇章】介绍一下若依微服务版框架" target="_blank">【脚手架 第一篇章】介绍一下若依微服务版框架</a>
                        <span class="text-muted">蜗牛 | ICU</span>
<a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%89%8B%E6%9E%B6%E4%B8%93%E6%A0%8F/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>
                        <div>若依框架(RuoYi)是一个广泛使用的开源框架,它提供了多种版本以满足不同开发需求。以下是关于若依框架微服务版(RuoYi-Cloud)的详细介绍:一、概述RuoYi-Cloud是基于SpringCloud和SpringBoot的分布式微服务架构平台,专为构建大型分布式系统提供完整的解决方案。它集成了众多微服务特性,如服务发现、配置管理、负载均衡等,适合需要高可扩展性和高可用性的企业级应用。二、技</div>
                    </li>
                    <li><a href="/article/1833477530372370432.htm"
                           title="《Nginx 负载均衡详解》" target="_blank">《Nginx 负载均衡详解》</a>
                        <span class="text-muted">陈在天box</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/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>一、引言在当今互联网时代,随着业务的不断发展和用户量的持续增长,单一服务器往往难以满足高并发的访问需求。为了提高系统的可用性、可靠性和性能,负载均衡技术应运而生。Nginx作为一款高性能的Web服务器和反向代理服务器,提供了强大的负载均衡功能。本文将深入探讨Nginx负载均衡的原理、配置方法、算法以及实际应用中的注意事项,帮助读者更好地理解和运用Nginx负载均衡技术。二、负载均衡概述(一)负载均</div>
                    </li>
                    <li><a href="/article/1833408798451134464.htm"
                           title="分布式计算任务调度算法总结" target="_blank">分布式计算任务调度算法总结</a>
                        <span class="text-muted">一条鱼2017</span>
<a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F%E8%AE%A1%E7%AE%97%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6%E7%AE%97%E6%B3%95%E6%80%BB%E7%BB%93/1.htm">分布式计算任务调度算法总结</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F%E8%AE%A1%E7%AE%97%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6%E7%AE%97%E6%B3%95%E6%80%BB%E7%BB%93/1.htm">分布式计算任务调度算法总结</a>
                        <div>一、影响分布式系统性能的因素主要有这些因素影响着分布式系统的性能:网络延迟、数据通信效能、计算节点处理能力、任务的分割、无法预算处理时间、任务的颠簸等等。我们在寻求分布式计算调度算法时,就是有针对性的以解决这些问题为目的,从各个角度,不同侧面,利用一种或者集中方法结合起来的形式,从而达到最优解,使得系统效率相对最高。二、几种基本的调度算法获得网络负载均衡有几个基本的方法。这些方法可以结合使用,形成</div>
                    </li>
                    <li><a href="/article/1833362923754450944.htm"
                           title="Nginx负载均衡与后端服务器自动扩展:实现高可用性架构" target="_blank">Nginx负载均衡与后端服务器自动扩展:实现高可用性架构</a>
                        <span class="text-muted">2402_85758349</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/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>引言在现代云计算环境中,应用程序的伸缩性变得至关重要。随着用户请求的增减,后端服务器需要自动扩展以适应负载变化。Nginx作为流行的负载均衡器,可以与多种自动扩展技术配合使用,实现高效的服务伸缩。本文将探讨如何在Nginx负载均衡中处理后端服务器的自动扩展。自动扩展的概念自动扩展,也称为弹性伸缩,是指根据实时负载动态调整资源(如服务器实例)的数量,以保持应用性能和响应时间。自动扩展的两种类型:垂直</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>