- 浏览: 34937 次
- 性别:
- 来自: 北京
文章列表
在windows环境下使用nginx做负载均衡,只能作为测试和练手用,在生产环境中,会出现问题,因为主要是考虑到window对连接数1024的限制,同时对epoll的支持不是很好,所以只做学习介绍下如何配置多台tomcat server。
tomcat server运行在本地,比如要启动两台server甚至更多,假设哈,把原来的tomcat文件目录复制一份到硬盘上,命名为tomcat-8090.
之后进入到tomcat-8090中,conf目录下修改sever.xml 主要修改,以前那个是8005,现在修改为8006,之前Connector 为8080 该为8090,之前是8009 改为801 ...
在一些高并发的场景中,比如秒杀,抢票,抢购这些场景,都存在对核心资源,商品库存的争夺,控制不好,库存数量可能被减少到负数,出现超卖的情况,或者 产生唯一的一个递增ID,由于web应用部署在多个机器上,简单的同步加锁是无法实现的,给数据库加锁的话,对于高并发,1000/s的并发,数据库可能由行锁变成表锁,性能下降会厉害。那相对而言,redis的分布式锁,相对而言,是个很好的选择,redis官方推荐使用的Redisson就提供了分布式锁和相关服务。
下面介绍下如何使用Redisson。
<dependency>
<groupId>org.redisson ...
Tomcat并发性能优化的初探
- 博客分类:
- tomcat web
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
默认设置对于1000/s的并发,甚至更大的一些就会出现连接拒绝的情况,下面介绍下如何提高tomcat的并发连接数,首先是server.xml中Connector的设置
protocol默认是http/1.1 修改为protocol="org.apache.coyote.http11.Http11NioProtocol&quo ...
<div class="iteye-blog-content-contain" style="font-size: 14px"></div>
不知不觉在SSM相关的开发时间比较长了,但是都是基于平台的开发,慢慢地自己也被平台化了,跟面试其他人一样,对底层架构的了解开始模糊,关注业务开发,下面整合下如何搭建基础的SSM+redis开发框架。
首先是新建一个MAVEN的项目,代码内容可以见附件,下面介绍下主要的配置段落
web.xml中,配置spring,mybatis 和 springmvc的配置
<context-par ...
作为一个android开发者,我现在正在整理一份android的入门的教程,下面是我写一些教程实例,希望您能看看,在文章下直接给出评论,写上意见与建议
android控件学习之十五 GridView实例
http://t.cn/RZ0fg88
android控件学习之十四 ImageSwitcher实例
http://t.cn/RZ0AHTX
android控件学习之十三 Gallery拖动效果
http://t.cn/RZ0v9iG
android控件学习之十二 ImageButton与Button
http://t.cn/RZpgI6c
android控件学习之十一 ImageV ...
JSP页面传参数方法
- 博客分类:
- java
JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数。下面介绍一下实现的方法。
(1)直接在URL请求后添加
如:< a href="thexuan.jsp?action=transparams&detail=directe">直接传递参数< /a>
特 ...
析构函数 设置为虚函数
- 博客分类:
- C/C++
#include <iostream>#include <stdlib.h>using namespace std;
class A{ public : A() { cout<<"A"<<endl; ptr = new int[10]; } ~A() { delete ptr; cout<<"delete A"<<endl; } ...
构造函数不能声明为虚函数的原因:
1,所谓虚函数就是多态情况下只执行一个,而从继承的概念来讲,总是先构造父类对象,然后才能使子类对象,如果构造函数设为虚函数,那么你在构造父类的构造函数时就不得不显式的调用构造,还有一个原因就是为了防错误的发生,试想如果你在子类中一不小心重写了个跟父类构造函数一样的函数,那么你的父类构造函数将被覆盖,也即不能完成父类的构造,就会出错。
class A{ public : virtual A() { cout<<"A"<<endl; } ...
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
#include <math.h>
#include <string.h>
int thresh = 50;
IplImage* img = 0;
IplImage* img0 = 0;
CvMemStorage* storage = 0;
CvPoint pt[4];
const char* wndname = &q ...
下面便是string类所包含的常用函数:
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常
string类的字符操作:const char &operator[](int n)const;const char &at(int n)c ...
最近一直在学习opencv和图像处理,自己作个总结吧
int Corner(int i) { int totalnum; cvSetCaptureProperty(capture,CV_CAP_PROP_POS_FRAMES,i); IplImage* imageB = cvQueryFrame(capture); cvSetImageROI(imageB, cvRect(Size,Size, imageB->width-Size, imageB->height-Size)); //提取帧中的(size,size)为点,高为imageB->height-Size //宽为i ...
谬误1.个人只能被现实改变 如果你变得足够强大,别人就无法拒绝你;如果你可以命令自己,困难就无法阻碍你……只要首先改变了你自己,你才能去改变你的世界,改变你的生活。 谬误2.为何怀才不遇的总是我 世上没 ...
计算10000以内的阶乘
/* Factorial.c -- 计算大数的阶乘
* Author: Space
* Date: 2007/07/03
* Version: 1.0
*/
#include<stdio.h>
#include<stdlib.h> // for malloc()
#include<string.h> // for memset()
#define QUOTIETY 4
...
看了java 每日一题这个系列,看到其中的第二题
“1到11有4个“1”,1中一个“1”,10中一个“1”,11中两个“1”,1000中,有多少个“1” ”
看了这个题,想起了编程之美里第一章,题目的要求挺类似的。
它的算法思路是:通 ...
[size=x-small]凡事都不是能够预料到的,出现差错,先想想怎么办,而不是想到可怕的结果,不用急。想补救的措施而不是着急[/size]