c*****s 发帖数: 214 | 1 这不会是你想要多少就有多少的。要看你的Oracle license允许多少个并发连接。过去遇
到的几个客户一般是50~1000个链接的license,允许我们的应用占5~20个。
同时在线人很多不一定就需要很多链接。最少需要多少链接要看你的程序了,有没有故意
并发打开连接的代码,有也不会太多。过去我做的项目一般最小连接需要是3个,做压力
测试时把连接池设成3,20个线程每线程启动300个session,只要代码没错就没问题。
实施时看客户dbadmin愿意分给我多少连接,改连接池大小。当然越大越快。
CPU, 内存不是主要因素,毕竟数据库就一个。连接数是瓶颈。
一般的程序一个连接也可以满足1000人同时提交数据, 就是慢点, 大家排一个队。 |
|
z**0 发帖数: 618 | 2 Linux不大清楚,记得Windows里面TCP连接关掉后系统不是马上回收,如果短时间内有
很多连接就不行了。可以用连接池吧? |
|
t********k 发帖数: 808 | 3 开1000?
那要多好的硬件水平了?
客户现有的是一台4CPU 2G RAM的机器
在旧系统中4000人在线就要当机
当然旧系统好象是在提交数据后马上进行处理
我们现在做是提交后不马上处理
处理让另外一个程序去做
因而用户提交数据后连接可以马上释放
这可能能缓解好多问题
但不知能不能最终解决提交数据等待问题
谢谢各位的帮助 |
|
xt 发帖数: 17532 | 4
这种可能性有多大?能持续多久? 你完全可以弄个message queue把
他们排起队来处理.10000个DB Transaction用不多久的.我认为如果
256个连接不够,你的程序设计肯定有问题. |
|
z****e 发帖数: 54598 | 5 那也得1.6才行,我不希望把我的jdk版本弄得太高
因为我很有可能会使用applet,不能对客户机要求太高
fb才10m啦,很小了,可以了,我对本机上的数据库要求不高
只要是个数据库,能建立连接池就行,我会用hibernate封装的
在网络上搜索了一下,看到对mysql是恶评如潮
倒是很多人对其它两个数据库好评有加
当年mysql作为一家“开源”公司好像也是被人骂的,说是假开源 |
|
t********k 发帖数: 808 | 6 连接池的分配与释放,对系统的性能有很大的影响。合理的分配与释放,可以提高
连接的复用度,从而降低建立新连接的开销,
同时还可以加快用户的访问速度。
对于连接的管理可使用空闲池。即把已经创建但尚未分配出去的连接按创建时间存
放到一个空闲池中。每当用户请求一个连接时,
系统首先检查空闲池内有没有空闲连接。如果有就把建立时间最长(通过容器的顺序存
放实现)的那个连接分配给他(实际是先做连接是否有效的判断,
如果可用就分配给用户,如不可用就把这个连接从空闲池删掉,重新检测空闲池是否还
有连接);如果没有则检查当前所开连接池是否达到连接池
所允许的最大连接数(maxConn),如果没有达到,就新建一个连接,如果已经达到,就
等待一定的时间(timeout)。
如果在等待的时间内有连接被释放出来就可以把这个连接分配给等待的用户,如果等待
时间超过预定时间timeout,则返回空值(null)。
系统对已经分配出去正在使用的连接只做计数,当使用完后再返还给空闲池。对于空闲
连接的状态,可开辟专门的线程定时检测,
这样会花费一定的系统开销,但可以保证较快的响应速度。也可采取不开辟专门线程,
只是在分配 |
|
j*******e 发帖数: 22 | 7 记得前面有人问过connnection pool 的问题。
用连接池提高Servlet访问数据库的效率
作者:好兵
Java Servlet作为首选的服务器端数据处理技术,正在迅速取代CGI脚本。Servlet超越CGI的优势之一在于,不仅多个请求可以共享公用资源,而且还可以在不同用户请求之间保留持续数据。本文介绍一种充分发挥该特色的实用技术,即数据库连接池。
一、实现连接池的意义
动态Web站点往往用数据库存储的信息生成Web页面,每一个页面请求导致一次数据库访问。连接数据库不仅要开销一定的通讯和内存资源,还必须完成用户验证、安全上下文配置这类任务,因而往往成为最为耗时的操作。当然,实际的连接时间开销千变万化,但1到2秒延迟并非不常见。如
果某个基于数据库的Web应用只需建立一次初始连接,不同页面请求能够共享同一连接,就能获得显著的性能改善。
Servlet是一个Java类。Servlet引擎(它可能是Web服务软件的一部分,也可能是一个独立的附加模块)在系统启动或Servlet第一次被请求时将该类装入Java虚拟机并创建它的一个实例。不同用户请求由同一Servlet实例的多个独立线 |
|
g******t 发帖数: 11249 | 8 精气神806
大风蓝色预警下的一阵邪风
前几天,气象台发布大风蓝色预警。
到位于德州的北校区查看,同事告知:昨天校园大风特别大,竟然把锁着的教学楼大门
连门带锁一起吹开,太阳能路灯被吹落好几个,带沙袋固定的广告栏全部给吹倒,甚至
足球场上的塑胶草皮也给掀的一块一块鼓起来。
我问:见过这样的大风吗?怎么这里好像风特别大。同事来了一句:庙小妖风大,池浅
王八多。
当时觉得只是说风大,没有多想。因为校园占地面积比较大,没有高层建筑群挡风,所
以风刮起来肆无忌惮,横行无阻。另外就是,校园周遭更是一片平原,处于城区近郊空
旷地带,没有其它单位的建筑群可以抱团挡风。两相加起来,还真是庙小妖风大。
后来想想,似有所指,余味悠长。
庙小妖风大
一个单位的人事调整风波
回来后,同另一位同事闲聊起这句民间俗语。同事笑谈,他们原先单位就有一个真实的
例子。
这家国企的书记和总经理互相尿不到一个壶里去,于是各拉一套人马,各自为是,各开
各的会。
有的时候,通知下属开会的时间重叠,下属不知所从。请示之后,无一例外都是自己的
会议重要。总经理抓生产,在企业生产效益是第一位的,因为企业要生存。但是,下属
参加了总... 阅读全帖 |
|
s*******h 发帖数: 3219 | 9 【 以下文字转载自 Military 讨论区 】
发信人: zhonghangyue (中行说), 信区: Military
标 题: 密码界天才奇勋池步洲
发信站: BBS 未名空间站 (Mon Jan 12 02:27:50 2015, 美东)
http://hx.cnd.org/?p=106565
池步洲与妻子白滨英子。
他,曾经破译过日本将要偷袭珍珠港的密电,他,还曾破译日军密电导致日本“海军之
花”山本五十六被截杀。他一生虽从未亲临战阵,却抵得过数十万大军。他,就是中国
密码界的天才人物——池步洲。
池步洲(1908年2月18日-2003年2月4日),中国著名的密码破译专家,其在幼时即显
现出过人能力,仅用三年时间便完成小学课程。1927年前往日本,先是在东京大学机电
专业学习。1934年毕业后又在早稻田大学工学部学习,在此期间,池步洲与日本女子白
滨英子结为夫妇。
1937年卢沟桥事变之后,池步洲携妻挈子于1937年于7月25日返回祖国。在留日同学陈
固亭介绍下,池步洲加入中国国民党中央执行委员会调查统计局(简称中统),编入总
务组机密二股,侦收日军密电码并加以破译。
池... 阅读全帖 |
|
z**********e 发帖数: 22064 | 10 http://hx.cnd.org/?p=106565
池步洲与妻子白滨英子。
他,曾经破译过日本将要偷袭珍珠港的密电,他,还曾破译日军密电导致日本“海军之
花”山本五十六被截杀。他一生虽从未亲临战阵,却抵得过数十万大军。他,就是中国
密码界的天才人物——池步洲。
池步洲(1908年2月18日-2003年2月4日),中国著名的密码破译专家,其在幼时即显
现出过人能力,仅用三年时间便完成小学课程。1927年前往日本,先是在东京大学机电
专业学习。1934年毕业后又在早稻田大学工学部学习,在此期间,池步洲与日本女子白
滨英子结为夫妇。
1937年卢沟桥事变之后,池步洲携妻挈子于1937年于7月25日返回祖国。在留日同学陈
固亭介绍下,池步洲加入中国国民党中央执行委员会调查统计局(简称中统),编入总
务组机密二股,侦收日军密电码并加以破译。
池步洲是当时中统局机关内唯一的留日学生。此时的池步洲并没有破译密码的经验。但
是天才是无需经验的。在这一从前陌生的领域,池步洲仿佛回到了自己老家般熟悉自如。
他通过统计发现收到的日军密电,基本是英文字母、数字、日文的混合体,字符与字符
紧密连接,多为(M... 阅读全帖 |
|
z****e 发帖数: 54598 | 11 因为现有的数据库操作会blocked
如果你不用worker的话,你整个thread会被blocked住
这样就跟tomcat什么没有区别了
所以需要用上worker,然后释放启动操作的thread
这么做目的就只有一个,释放当前线程,否则就会被blocked住
你不需要启动10个worker instance,也就是10个worker thread
因为数据库连接是有线程数量访问上限的,如果一万个thread同时启动的话
db也只能host那么有限的几个,比如设置了访问上限是100个
那么一万个就只能100个100个地访问,一定要排队
你可以在worker里面启动一个线程pool,然后设置连接池这些
目前数据库访问都不是异步的,没有那么傻瓜的做法
这么做目的就是把同步搞成异步,无它,要么就干脆不用,换nosql
但是trade off就是各种文档欠缺同时没有transaction, index这些的支持
well,也不是完全没有,但是明显会少很多,相对db而言
要么就干脆同步,同步的话写起来就很简单,怎么做就怎么写
但是同步也还是需要搞连接池这些,只不过简单很多,因为文档有很多
这么... 阅读全帖 |
|
o*******m 发帖数: 154 | 12 申请CS Master当然是must,但是自己的学习也不能放松,老马讲的挺好的。
原创 - 尚学堂科技 - 马士兵老师]
JAVA自学之路 一:学会选择
[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_1.html]
为了就业,不少同学参加各种各样的培训。
决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机、嵌入式、游戏
、3G、测试等。
那么究竟应该选择什么方向呢?
我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向
社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的
眼睛去观察,去了解这个世界吧。
每个培训机构都会宣传自己的好处,并不能说明大的趋势。
一些新闻文章很有可能是枪手写的,不必太过相信。
国外背景的教师和课程,未必适合你。
那么怎么才能确定自己将来的方向?如何才能从纷繁复杂、或真或假的数据世界中挖出
一条路?
我讲一个通过招聘网站的观察方法。
可以到各种招聘的网站上查询信息(可以到google上查询招聘的网站),例如:
http://www.51job.c... 阅读全帖 |
|
z*******g 发帖数: 132 | 13 看了些东东,还没明白, 我想import javax.servlet.* 怎么找不到呢。。。
————
在这个专题中我们由浅入深地向大家介绍Java Servlet的基本特征、开发环境的配置
以及Servlet的一些主要API类。
Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面
一、概述
Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。
Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的
Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet
的Java虚拟机。
Java Servlet 与 Applet 的比较:
相似之处:
* 它们不是独立的应用程序,没有main()方法。
* 它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用。
* 它们都有一个生存周期,包含init()和destroy()方法。
不同之处:
* Applet具有很好的图形界面(AWT),与浏览器一起,在客户端运行。
* Serv... 阅读全帖 |
|
z****e 发帖数: 54598 | 14 另外你的这个module可以优化跟数据库连接的效率
有很多第三方的连接池什么的
你可以直接下下来用,这样你的module每次跟数据库的操作就可以加速了
否则每次操作都建立连接的话,会比较慢
面 |
|
a*******g 发帖数: 832 | 15 【 以下文字转载自 CQU 讨论区 】
发信人: zhugewm (zhuge), 信区: CQU
标 题: 【大学往事】暗恋的大学四年
发信站: BBS 未名空间站 (Wed Apr 25 15:24:07 2012, 美东)
从进学校军训的时候开始我就注意到她了,她长的很清秀,也挺文静的,那时候我也很
腼腆,只敢在站军姿的时候偷偷的瞄她,每次她眼睛扫过来的时候我都不敢与她对视。
就在偷偷瞄她和怕被她发现中,军训就不知不觉的过去了。
从那个时候开始我心里就记住了她,不论什么时候她出现在我的视野里,我就很紧张,
大一是新奇的一年,很快就过去了。大一的期末考试我成绩平平,她各科都考的很好,
还拿了甲等奖学金。
她平时很少很班上的人来往,出了上课很少能看到她,后来我从班上一个女生那里知道
她每天晚上7点去理学院自习,9点去奥场跑步,从那以后我每天7点半就去理学院,然
后一间教室一间教室的找,找到她的那个教室后就坐在角落里自习,然后看她,9点钟
的时候我也去奥场锻炼,不过当时我只敢在一旁的单杆那里练一练,不敢上跑道,跑碰
见她,自己会害羞,只是看着她一圈一圈的跑,她跑步的时候姿势其实挺不好... 阅读全帖 |
|
c*****n 发帖数: 14445 | 16 【 以下文字转载自 CQU 讨论区 】
发信人: zhugewm (zhuge), 信区: CQU
标 题: 【大学往事】暗恋的大学四年
发信站: BBS 未名空间站 (Wed Apr 25 15:24:07 2012, 美东)
从进学校军训的时候开始我就注意到她了,她长的很清秀,也挺文静的,那时候我也很
腼腆,只敢在站军姿的时候偷偷的瞄她,每次她眼睛扫过来的时候我都不敢与她对视。
就在偷偷瞄她和怕被她发现中,军训就不知不觉的过去了。
从那个时候开始我心里就记住了她,不论什么时候她出现在我的视野里,我就很紧张,
大一是新奇的一年,很快就过去了。大一的期末考试我成绩平平,她各科都考的很好,
还拿了甲等奖学金。
她平时很少很班上的人来往,出了上课很少能看到她,后来我从班上一个女生那里知道
她每天晚上7点去理学院自习,9点去奥场跑步,从那以后我每天7点半就去理学院,然
后一间教室一间教室的找,找到她的那个教室后就坐在角落里自习,然后看她,9点钟
的时候我也去奥场锻炼,不过当时我只敢在一旁的单杆那里练一练,不敢上跑道,跑碰
见她,自己会害羞,只是看着她一圈一圈的跑,她跑步的时候姿势其实挺不好... 阅读全帖 |
|
z*****m 发帖数: 34 | 17 从进学校军训的时候开始我就注意到她了,她长的很清秀,也挺文静的,那时候我也很
腼腆,只敢在站军姿的时候偷偷的瞄她,每次她眼睛扫过来的时候我都不敢与她对视。
就在偷偷瞄她和怕被她发现中,军训就不知不觉的过去了。
从那个时候开始我心里就记住了她,不论什么时候她出现在我的视野里,我就很紧张,
大一是新奇的一年,很快就过去了。大一的期末考试我成绩平平,她各科都考的很好,
还拿了甲等奖学金。
她平时很少很班上的人来往,出了上课很少能看到她,后来我从班上一个女生那里知道
她每天晚上7点去理学院自习,9点去奥场跑步,从那以后我每天7点半就去理学院,然
后一间教室一间教室的找,找到她的那个教室后就坐在角落里自习,然后看她,9点钟
的时候我也去奥场锻炼,不过当时我只敢在一旁的单杆那里练一练,不敢上跑道,跑碰
见她,自己会害羞,只是看着她一圈一圈的跑,她跑步的时候姿势其实挺不好看的,可
能是因为不得要领吧,她每次跑半个小时以后,就会在排球场边坐半个小时,排球场旁
边有个路灯,每次这个时候也是我最喜欢的时候,她就静静的坐着,我就在50米开外的
地方注视她,她安静下来的时候很迷人。这样的日子持续了有一个学期。... 阅读全帖 |
|
l*****f 发帖数: 2198 | 18 FLAG 那些算法数据结构题跟这个比就是小儿科
阿里面试题:
一面:电话面试:80分32秒)
1.自我介绍?
2.做过哪些项目?项目中遇到哪些难点,你是怎样解决的?单点登录系统说一下?分布
式缓存的使用场景?(说好的基础呢,上来就是项目,毫无准备,导致好多东西都记不
起来了。面试官还说“那你说一个你记得的项目”,手动无奈。。。)
3.你实习的时候JDK用的是那个版本,这个版本有什么新的特性?
4.G1回收器和其他回收器有什么区别?
5.垃圾回收为什么会停顿?哪些对象可能作为GCRoots?
6.垃圾回收分代收集算法?为什么会有两个Survivor区?new一个对象会保存在哪里?
7.Java内存模型?volatile关键字,使用场景?原子性的理解?先行发生原则?
8.场景题:现在有三个线程,同时start,用什么方法可以保证线程执行的顺序,线程
一执行完线程二执行,线程二执行完线程三执行?
9.你是怎么理解线程安全的?HashMap是线程安全的么?如果多个线程同时修改HashMap
时会发生什么情况?
10.ConcurrentHashMap底层原理?每个版本的实现上有什么区别?
11... 阅读全帖 |
|
l*****f 发帖数: 2198 | 19 FLAG 那些算法数据结构题跟这个比就是小儿科
阿里面试题:
一面:电话面试:80分32秒)
1.自我介绍?
2.做过哪些项目?项目中遇到哪些难点,你是怎样解决的?单点登录系统说一下?分布
式缓存的使用场景?(说好的基础呢,上来就是项目,毫无准备,导致好多东西都记不
起来了。面试官还说“那你说一个你记得的项目”,手动无奈。。。)
3.你实习的时候JDK用的是那个版本,这个版本有什么新的特性?
4.G1回收器和其他回收器有什么区别?
5.垃圾回收为什么会停顿?哪些对象可能作为GCRoots?
6.垃圾回收分代收集算法?为什么会有两个Survivor区?new一个对象会保存在哪里?
7.Java内存模型?volatile关键字,使用场景?原子性的理解?先行发生原则?
8.场景题:现在有三个线程,同时start,用什么方法可以保证线程执行的顺序,线程
一执行完线程二执行,线程二执行完线程三执行?
9.你是怎么理解线程安全的?HashMap是线程安全的么?如果多个线程同时修改HashMap
时会发生什么情况?
10.ConcurrentHashMap底层原理?每个版本的实现上有什么区别?
11... 阅读全帖 |
|
z****e 发帖数: 54598 | 20 你这个integration是db那一层还是系统集成?
front end跟client的打交道就是xhtml啊
然后hibernate跟db的处理,可以通过建立连接池来优化
而且db跟java的衔接在tcp协议上已经比较成熟了
所以这一层反而可以不要xml
现在唯一的问题就是ejb这一层跟web server之间的通信
只要效率接近,没有理由不上xml
而iiop跟http本身都是建立在tcp上的连接
无非就是虚拟机转换xml这种东西效率的问题
我个人感觉,这种差距不应该太大,而效率上如果差距被缩小
那么xml显然是一个更好的解决方案,而非rmi
实际上这么多年,rmi并不是很成功,倒是xml有愈烧愈旺之势
bpel是有局限,本身是工作流的升级,所以有
bpel vs esb一说,看情况决定整体结构
remote |
|
z****e 发帖数: 54598 | 21 也不一定
rails濒临被淘汰,被grails所取代一个很重要的原因是grails跑在jvm上
可以利用上现有的hibernate那些东西,所以比rails要流行
而且spring,jboss也都有自己的前端
并不见得会比grails要复杂多少,更不要说weblogic和websphere了
我倒是觉得php将来可以好好利用上
尤其是随着浏览器越来越强大,如果能有效减少页面代码的话
php价格上的优势会变得不可阻挡
java等jvm上的动态语言耗资源,收费的就更不要说了
web service做前后端集成还不是很成熟,比如缺乏象连接池一样的优化空间
每一次都建立连接所消耗的资源尤其是时间资源是巨大的
对于高并发的应用还不是很现实
所以多数时候还情愿用rmi,ejb,jca这些强耦合的方式以保证效率
另外就是,一个公司,同时雇用两个不同语言的developer
从成本上说就不太合适,有些公司的组员是流动的
不同的组员在不同的时候会到不同的组里面去做事
如果前段用groovy,后端用java,那么很自然这有学习曲线
不是没有这样的公司,但是我看这些公司里面大多数人
还是把java当成本行,... 阅读全帖 |
|
z****e 发帖数: 54598 | 22 网络的东西比较底层,平常搞软工的不太常接触这么底层的东西
rest是一个简化的复用了各种现有工具的web service
其实在我看来rest还可以再进一步简化,完全可以抛弃web service
直接搞http就行了,或者进一步到tcp协议,因为tcp协议可以保证状态
而rest则强调无状态的连接,这就无法建立像jdbc连接池一样的优化
不过外部网用不到这种优化,我们就利用了这个思想
在很早以前,大概是我上初中时候,这个公司的人就利用现有的http协议
模拟了httprequest和response
然后做成我们的最主要的网络服务,一直卖到现在 |
|
z*******3 发帖数: 13709 | 23 "包括大量的Database IO和大量的数学运算,处理20G数据只需
要20分钟。"
这个就是你们系统跟楼主系统的差别之处
用db跟不用db差距很明显
db帮你优化了很多东西,无论是查找还是排序还是存储
甚至包括io,db连接可以建连接池,自己写的就麻烦了
所以主张尽可能多地使用现有软件,而不是自己从头写起
自己写的东西,理论上可能做得比现有软件更好
但是实际上,绝大多数人的水平差得很远
这也是搞core java最痛苦的地方
不用标准化的软件产品,一旦系统变大,瓶颈马上就呈现出来了
楼主这种系统应该是legacy code,构架师比较水
以前偷懒不用标准化软件,现在还点回去,不过这种需要parse的数据
用nosql比较好,db主要给那些需要transaction的时候用
上hadoop |
|
z****e 发帖数: 54598 | 24 不容易啊
经过几个月的讨论,你总算看到了这一点
也总算意识到这里对比的语言是在一个很低层面上的对比
都在看各种语法的对比,缺乏大视野
都在比较糖水
我记得几个月前一个id里面含有hotspot的人就明确说过
jvm尤其是hotspot可能是目前为止做得最好的虚拟机
其地位堪比linux和unix,很多东西到后来都压根不打算自己搞一套
都以跑在jvm上目的,从而搞出了scala和groovy这种语言
而java本身的进化是非常缓慢的,因为java是博弈的结果
加了就别想去掉,像m$那样动不动就不支持这个不支持那个的行劲
在java上是不可能出现的,到现在awt和swing还吭哧吭哧地跑得起劲
applet也还能用,相比之下什么silverlight都被抛弃了
所以这就很好地诠释了一个语言应该怎样做最好
java是结构最合理的语言,其它语言要么很灵活,要么很不灵活
要么很容易读,要么就很不容易读,perl和python都有自己自身致命的弱点
前者太灵活,不便于阅读,后者太不灵活,但又便于阅读
那么最好的方式就是让高手用灵活的,初心者用便于阅读但是不灵活的部分
看java做得多漂亮,jcp控... 阅读全帖 |
|
z****e 发帖数: 54598 | 25 我说的是rest的连接池
你不会不知道http是无状态的瞬时连接吧? |
|
z****e 发帖数: 54598 | 26 忘了说一点
java对于file system的管理
的确是要打开关闭各种stream
however
java对于file system的管理
是交给database去做
db管理数据的persistence远比你自己打开关闭file要有效率
所以建立一个对db的统一接口就显得尤为重要起来
这就是著名的jdbc
然后通过建立连接池的方式来优化连接效率
这样就基本上能满足了大多数企业的需要了
后期在这个基础之上又发展出了nosql那些
楼主,其实我一直想说一点
你应该看看j2ee,尤其是j2ee里面各种组件的定义
j2ee的理念很先进,明显比同期其他语言要高n个时代,你说的很多问题
我现在看vert.x什么,怎么看怎么像是一个简化的ejb
甚至container什么概念,一模一样,包括event bus也是工作流的简化版
java本身只是起步,j2ee对于java programmer来说
则是一个training,一个从new grad.转换到一个合格的程序员的过程
会java就好比一个人应召入伍前会打枪一样,是个美国人都会开枪
但是j2ee的训练,则是入伍之后的各种训练,训练一个只... 阅读全帖 |
|
z*******3 发帖数: 13709 | 27 手头上有oracle license的
测一下500m计数器,线性增长
大概oracle需要多长时间
记得把连接池建一下
否则频繁连接太慢 |
|
f*****w 发帖数: 2602 | 28 请问那么JDBC的连接池呢 在vertx下如何才能最优化jdbc的并发?
能不能指教下我这麽做对不对
假设我有三个数据库操作 增删改。 我把每个数据库操作的模块 M(每个模块包括了
所有可能的数据库操作 ),设置成worker 。 我打算起10个thread的话,我就把M 启
动10个instance,每个instance都维持各自的一个数据库连接,并且监听同一个vertx
地址 K。 然后如果其他web service需要操作数据库的时候就发送相应的JSON object
到K。(也就是说JSON object需要能完整描述我需要做的数据操作是什么)
这样是不是听上去有点stupid? 因为本来可以调用一个函数解决的问题需要先encode
成JSON,然后在模块M里面还要理解JSON 并作相应的操作。 有没有大家已经比较常用
的更好的pattern? |
|
z****e 发帖数: 54598 | 29 机器都不用加
直接掏钱就行了
jboss什么人家都有现成的
直接往上放就行了
只要有流量就可以
连接池要早建,这样可以节省层与层之间的io操作
spring最好也要早点用上去,这种东西就是越大优势越明显
我现在还剩下两步
一个是把spring mvc给弄进去,hibernate已经搞好了
另外一个就是把整个站点搬到刚买的服务器上去 |
|
z****e 发帖数: 54598 | 30 最后一个我想到一个另外的方法
最新版本的jdk有一个小型的db derby
直接扔进去,然后让derby来排序就好了
频繁文件io操作应该比频繁jdbc的io要浪费
如果有必要的话,可以自己实现一个连接池优化效率
不过如果这题跟前面两问紧密关联的话,再做这种转变显然不太合适
sort |
|
z****e 发帖数: 54598 | 31 用什么做存储的问题,java版现在有两cow正在大讨论
topic是hbase vs cassandra
我正在其中慢慢汲取营养
anyway
现在nosql很火,但是transaction的问题搞不定
所以涉及到不允许错的部分,比如财务还有账户信息,重要性比较高
还是放在传统的db中比较安全,错了可以滚回去,可以用的工具也多
比如建立连接池之类的,剩下的
比如做了多少题这种数据,就放在nosql里面吧
要么cassandra要么hbase,我倾向于cassandra
这样可以迅速扩容,不会受太多的限制
毕竟这是一个web系统 |
|
z****e 发帖数: 54598 | 32 用什么做存储的问题,java版现在有两cow正在大讨论
topic是hbase vs cassandra
我正在其中慢慢汲取营养
anyway
现在nosql很火,但是transaction的问题搞不定
所以涉及到不允许错的部分,比如财务还有账户信息,重要性比较高
还是放在传统的db中比较安全,错了可以滚回去,可以用的工具也多
比如建立连接池之类的,剩下的
比如做了多少题这种数据,就放在nosql里面吧
要么cassandra要么hbase,我倾向于cassandra
这样可以迅速扩容,不会受太多的限制
毕竟这是一个web系统 |
|
g*****g 发帖数: 34805 | 33 我猜想你是指一个监控服务监控10几万个VM吧,本身可能跑在几十到几百个VM上。
我没见过什么Cassandra cluster能够同时给10几万服务器开连接池的。 |
|
z****e 发帖数: 54598 | 34
nosql会用的越来越多,就跟你用hibernate一样
虽然你不是dba,但是你总得会点怎么连数据库,建连接池,crud,orm这些事情吧?
cassandra搞一搞咯,还有redis之类的cache
然后streaming,看看rxjava |
|
发帖数: 1 | 35 你用JDBC怎么解决网络不稳定时自动重连的问题?
那些连接池怎么配没有hibernate都无法自动重连
可以 |
|
f*******l 发帖数: 8811 | 36 考。我也找到那个连接了。
但是没用vpn,连不上。 |
|
z****e 发帖数: 54598 | 37 你这么一大段看着累,来,我用关键字来给你总结一下
“nosql = not only sql,从诞生之日,就没有人说sql是over design,扔了算了。
事实上很多新兴的db公司都在nosql system上罩一层sql,然后作query optimization。
为什么要这么麻烦呢?这个原因就要从app server说起。
微软的legacy也是很多IT公司的legacy。”
错误的,微软的产品都是非标准的产品,问题多多
比如你在ibm的产品的使用经验,尤其是app server的使用经验,可以直接用在oracle
的weblogic上
.net不行
“这些公司invest了很多tools在sql上,最常见的就是在app server里面有一层data
access layer,管理data sources,connection pool,statement cache之类的资源。
这层之上数据都是以object形态出现,跟底层的数据存储结构无关。
app sever可以配置各种ORM tool。”
这个叫做dao或者是repository
有个非常好用annotation,... 阅读全帖 |
|
z****e 发帖数: 54598 | 38 你这么一大段看着累,来,我用关键字来给你总结一下
“nosql = not only sql,从诞生之日,就没有人说sql是over design,扔了算了。
事实上很多新兴的db公司都在nosql system上罩一层sql,然后作query optimization。
为什么要这么麻烦呢?这个原因就要从app server说起。
微软的legacy也是很多IT公司的legacy。”
错误的,微软的产品都是非标准的产品,问题多多
比如你在ibm的产品的使用经验,尤其是app server的使用经验,可以直接用在oracle
的weblogic上
.net不行
“这些公司invest了很多tools在sql上,最常见的就是在app server里面有一层data
access layer,管理data sources,connection pool,statement cache之类的资源。
这层之上数据都是以object形态出现,跟底层的数据存储结构无关。
app sever可以配置各种ORM tool。”
这个叫做dao或者是repository
有个非常好用annotation,... 阅读全帖 |
|
t********k 发帖数: 808 | 39 在一般的server上的话能开多少?
如果在有四个CPU,2G的小型机上又能开多少?
能够满足多少人在线(BS上)提交数据到数据库? |
|
k*******d 发帖数: 237 | 40 You can set up the number of the connections in the pool. I think the maximun
is unlimited.
The more you set it to, the less the pool will be re-used.
You need to find the balanced point, based on expected number of online users |
|
t********k 发帖数: 808 | 41 比如我有1万左右的在线用户
有时提交数据比较频繁
但在平时很空闲
一年中可能就一二个月会有大量用户访问
在繁忙时只要提交数据成功
不要让用户等待很久
后台处理放在另外的程序中进行
这样的话一台数据库服务器不知能不能承担 |
|
k*******d 发帖数: 237 | 42 Still depending on the comparison between the resource your application needs
to run and the overhead of building connection.
If your app is simple and uses very little resource, you will be better off if
you limit the connection pool, to force reusing.
Otherwise, if your app is huge and uses a lot of resource, then the conn pool
doesn't matter any more, 'cause it's not the bottleneck.
You need to do some burden testing on your apps and server. Microsoft has a
very neat tool called application t |
|
t********k 发帖数: 808 | 43 谢谢
现在还想到一个解决的方法就是
1.在繁忙时(一年中就只有几天时间,一个月左右吧)用高级复制
这样有二台oracle,一台用来读,一台用来写或是二台都能读写
用高级复制的话对硬件的要求不是太高
但听说如果写数据量大的话,高级复制会有很多问题出现
2.用Logical Standby
Logical Standby、的Standby的数据库可以给应用程序读访问
那也行啊,可以缓解好大的压力
但用Standby技术对硬件要求太高
有点儿为难
3.干脆用一个MySQL,e用来进行写
用户提交的数据(只有在一张表中)都先保存到这
而另一程序同时从MySQL中读数据到Oracle里
数据处理放在主数据库Oracle中
但这还是有一个数据不一致性问题
因为数据处理有较强的实时性
根据提交时间的先后排队处理的
上面三个方案哪一个更可行? |
|
v**o 发帖数: 64 | 44 import java.sql.*;
import java.util.*;
/**
* 连接池的实现
* @author: vago
*/
public class ConnectionPool implements Runnable {
private String driver, url, username, password;
private int maxConnections;
private boolean waitIfBusy;
private Vector availableConnections, busyConnections;
private boolean connectionPending = false;
/**
* 构造子
* @param driver java.lang.String
* @param url java.lang.String
* @param username java.lang.String
* @param password jav |
|
t********k 发帖数: 808 | 45 【 以下文字转载自 Database 讨论区 】
【 原文由 threestick 所发表 】
在一般的server上的话能开多少?
如果在有四个CPU,2G的小型机上又能开多少?
能够满足多少人在线(BS上)提交数据到数据库? |
|
w*r 发帖数: 2421 | 46 I guess the oracle administrator has to tuning this value based on real
time statistics. The server side should set the maximum connection allow
ed. My companies server now set it to 120, we are still testing to see t
he real performance. Sometime, the pool size is not quite important, the
application can use multi-thread mechanism to synchronizely get the con
nection from pool, if the server's performance is good enough, a relativ
ely smaller pool size wont kill too much performance. For the da |
|
t********k 发帖数: 808 | 47 比如我有1万左右的在线用户
有时提交数据比较频繁
但在平时很空闲
一年中可能就一二个月会有大量用户访问
在繁忙时只要提交数据成功
不要让用户等待很久
后台处理放在另外的程序中进行
这样的话一台数据库服务器不知能不能承担 |
|
xt 发帖数: 17532 | 48
才10,000? 我认为1000的Connection pool足以胜任.随便哪个DBMS
都能开这么多. |
|
w*r 发帖数: 2421 | 49 Well, to solve this problem is totally depend on your implementation.
Generally, I would just use a sql execution threadpool and a sqlTaskQueue to
getInstances of the connection and release the instances of connection as soon
as possible in your transaction. Oracle has a connection implementation in its
JDBC pacakage. To gain the maximum throughput, the sql execution threadpool
could be tuned to keep running as fast as possible by keep its connection
instances and only release the connection whe |
|
t********k 发帖数: 808 | 50 谢谢
现在还想到一个解决的方法就是
1.在繁忙时(一年中就只有几天时间,一个月左右吧)用高级复制
这样有二台oracle,一台用来读,一台用来写或是二台都能读写
用高级复制的话对硬件的要求不是太高
但听说如果写数据量大的话,高级复制会有很多问题出现
2.用Logical Standby
Logical Standby、的Standby的数据库可以给应用程序读访问
那也行啊,可以缓解好大的压力
但用Standby技术对硬件要求太高
有点儿为难
3.干脆用一个MySQL,e用来进行写
用户提交的数据(只有在一张表中)都先保存到这
而另一程序同时从MySQL中读数据到Oracle里
数据处理放在主数据库Oracle中
但这还是有一个数据不一致性问题
因为数据处理有较强的实时性
根据提交时间的先后排队处理的
上面三个方案哪一个更可行? |
|