重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
java项目的负载均衡可以借助一些别的软硬件去实现:
我们拥有十余年网页设计和网站建设经验,从网站策划到网站制作,我们的网页设计师为您提供的解决方案。为企业提供网站制作、做网站、微信开发、成都微信小程序、手机网站开发、成都h5网站建设、等业务。无论您有什么样的网站设计或者设计方案要求,我们都将富于创造性的提供专业设计服务并满足您的需求。
常见的有F5,LVS,Nginx,Apache都可以做到负载均衡。
输入java和javac都会有相关的一大堆东西输出说明配置正确,否则就是配置错误。
如果输入java命令出现如下的情况:
bash: /usr/lib/jvm/java-7-sun/bin/java: 没有那个文件或目录
分主机跑,有两种情况,一种是分布式系统,前端,服务端,数据库分别跑在不同的主机上,分担了压力。一种是集群,每一台上跑的都是一样的程序,一样的配置。同样的访问请求被分发到了不同的机器上响应,这才是负载均衡所追求的。
分布式和集群可以独立使用,也可以混合使用。
HAProxy是一款反向代理服务器工具,通过它,可以实现负载均衡。它支持双机热备支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。新的1.3引入了frontend,backend,frontend根据任意HTTP请求头内容做规则匹配,然后把请求定向到相关的backend.
利用HAPorxy实现负载均衡
1. 利用HAProxy实现负载均衡
192.168.169.137 (haproxy)———负载均衡———-(192.168.169.117;192.168.169.118)
安装配置HAproxy
cd /usr/local/
wget
tar zxvf haproxy-1.3.14.2.tar.gz
mv haproxy-1.3.14.2 haproxy
cd haproxy
make TARGET=linux26
2. 创建配置文件
# vi haproxy.cfg
global
maxconn 5120
chroot /usr/local/haproxy
uid 99
gid 99
daemon
quiet
nbproc 2 #通过nbproc多设置几个haproxy并发进程,这样每个进程的task_queue相对就会短很多,性能自然就能提高不少
#pidfile /var/run/haproxy-private.pid
defaults
log global
mode http
option httplog
option dontlognull
log 127.0.0.1 local3
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webfarm 0.0.0.0:80
mode http
stats uri /haproxy-stats #监控haproxy状态
stats realm Haproxy\ statistics
stats auth netseek:52netseek #设置状态监控的用户名为netseek密码为52netseek
balance roundrobin #负载均衡算法
cookie SERVERID insert indirect
option httpclose #
option forwardfor #apache日志转发功能
option httpchk HEAD /check.txt HTTP/1.0 #健康检测
server app_bbs1 192.168.169.117:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server app_bbs2 192.168.169.118:80 cookie app1inst2 check inter 2000 rise 2 fall 5
syslog.conf里加一行
local3.* /var/log/haproxy.log
# touch /var/log/haproxy.log
# chown haproxy:haproxy /var/log/haproxy.log
# chmod u+x /var/log/haproxy.log
# tail –f /var/log/harpoxy.log 监控日志
# ./haproxy -f haproxy.cfg 启动服务.
监控状态图示 ,输入用户名密码查看状态。
后端apache日志处理
配置httpd.conf
LogFormat “%{X-Forwarded-For}i %l %u %t \”%r\” %s %b ” combined
CustomLog /var/log/httpd/access_log combined
虚拟主机不记录检测日志:
SetEnvIf Request_URI “^/check\.txt$” dontlog
LogLevel warn
ErrorLog /var/log/httpd/vhost_error.log
CustomLog /var/log/httpd/vhost_access.log combined env=!dontlog
相关介绍
#./haproxy –help //haproxy相关命令参数介绍.
haproxy -f 配置文件 [-n 最大并发连接总数] [-N 每个侦听的最大并发数] [-d] [-D] [-q] [-V] [-c] [-p pid文件] [-s] [-l] [-dk]
[-ds] [-de] [-dp] [-db] [-m 内存限制M] [{-sf|-st} pidlist...]
-d 前台,debug模式
-D daemon模式启动
-q 安静模式,不输出信息
-V 详细模式
-c 对配置文件进行语法检查
-s 显示统计数据
-l 显示详细统计数据
-dk 不使用kqueue
-ds 不使用speculative epoll
-de 不使用epoll
-dp 不使用poll
-db 禁用后台模式,程序跑在前台
-sf pidlist
程序启动后向pidlist里的进程发送FINISH信号,这个参数放在命令行的最后
-st pidlist
程序启动后向pidlist里的进程发送TERMINATE信号,这个参数放在命令行的最后
负载是针对于请求来说的
你的sync是针对线程来说的
两个机子的负载由于你的配置 session是共享的 但内部变量不是
所以 要看你的sync是对什么加的锁,目的是什么
如果说 你用一个数字去记录登录的人数 每次有请求+1
我们假设有两个节点 A,B 两个是互不干涉的, 也就是 可能A到了10 B还是1
如果说 你只是针对某一操作防止其线程冲突
那么 你可以认为 A,B完全是两个不相干的程序
如果是针对session做的限制类的sync 由于一个session普遍情况下只会针对一个节点发送,sync在单个节点内会有效,多个节点无效。。
纯手打 望采纳