最近半年一直做分布式系统开发,刚刚开发完成一个小型分布式系统,现总结一下分布式系统设计的经验。1. 能不做分布式就不用分布式 分布式系统带来很多数据同步、数据不一致、数据延迟等问题。网络链接是不可靠的,分布式系统过于依赖RPC,对同一机房内部问题还不大,如果出现跨机房问题数据的不一致问题就比较突出。...
分类:
其他好文 时间:
2015-11-23 13:07:12
阅读次数:
95
这几天业务遭到黑产业链的攻击,狂刷注册中心。而后台开发竟然爆出bug,架构搭建的不合理以及开发逻辑等问题,造成后端服务器并发竟然不能抗到300只能靠前端代理以及缓存进行限制在进行限制的时候,发现nginx有一个模块很好用limit_conn_zone以及limit_req_zone但是在我配置好l..
分类:
其他好文 时间:
2015-11-09 14:02:01
阅读次数:
195
#让RS记录客户端的真实IP#1.先在haproxy.cfg中加入下面参数。listenwww
...
optionforwardfor
#如果后端服务器需要获得客户端真实ip需要配置的参数,必须要放在listen模块下#2.如果是apache,则加入下面参数LogFormat“\”%{X-Forwarded-For}i\”%l%t\"%r\"%>s%b\"%{Referer..
分类:
其他好文 时间:
2015-11-07 06:52:36
阅读次数:
459
nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个。 nginx的upstream目前支持的5种方式的分配 1、轮询...
分类:
其他好文 时间:
2015-11-05 20:52:42
阅读次数:
239
默认nginx是没有安装ssl模块的,需要编译安装nginx时加入--with-http_ssl_module选项。 关于SSL/TLS原理请参考 这里,如果你只是想测试或者自签发ssl证书,参考 这里 。 提示:nignx到后端服务器由于一般是内网,...
分类:
Web程序 时间:
2015-10-30 19:08:19
阅读次数:
276
Windows Azure的负载均衡器默认是5元组的hash:源地址,源端口,目的地址,目的端口,协议。即:只有上述五个元组完全一致的会话数据包才会被转发到同一个后端服务器。显然,对于绝大多数通过NAT上网的用户来说,5元组基本上就不具备会话保持功能了。IPv4越来越少,IPv6还在飘着。从应用角度...
上篇博客介绍了lvs,前面提到lvs是基于tcp4层,不具备健康检查功能,对于前端的访问,lvs不管后端服务状态,直接把请求扔给后端。如果后端服务不可用,lvs仍然会把访问请求扔给不可用的后端,对于高可用服务来说,无疑是不可接受的。keepalive为lvs应运而生,keepalive可对后端..
分类:
其他好文 时间:
2015-10-17 19:16:54
阅读次数:
2088
问题分析:1. 一开始请求过来,没有带session信息,jvm_route就根据round robin的方法,发到一台tomcat上面。2. tomcat添加上session 信息,并返回给客户。 3. 用户再此请求,jvm_route看到session中有后端服务器的名称,它就把请求转到对应的服务器上。暂时jvm_route模块还不支持默认fair的模式。jvm_route的工作模式和fair...
分类:
其他好文 时间:
2015-10-13 17:20:00
阅读次数:
260
后端服务器nat共享上网网关服务器外网IPeth0:10.0.0.1eth1:192.168.1.11.在网关服务器开启转发功能sysctl-pgrep"net.ipv4.ip_forward=0"/etc/sysctl.confsed-i‘s/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/g‘/etc/sysctl.confsysctl-p2.设置网关服务器iptables的nat转换/et..
分类:
其他好文 时间:
2015-09-23 12:00:45
阅读次数:
226
当启动web应用后端服务时,有时需要预先从数据库或者配置文件等读取信息来配置一些全局变量之类的这时可以用ServletContextListener,在启动服务时,加载设置基本配置实现如下:(1)创建一个类,命名为ServletListener(放在com.settings包中), 可以在cont....
分类:
编程语言 时间:
2015-09-17 11:47:05
阅读次数:
158