锁定老帖子 主题:Internet的数据库信息推送技术实现
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-23
最后修改:2011-06-24
最近在做实时的监控系统,好多人都推荐采用服务器推送的方式来实现,于是乎,看了一个“基于Internet的数据库信息推送技术的研究和实现”的文章,貌似还是个小硕的论文,嘿嘿!
认为这种推送需要由当数据库有新数据时及时告知服务器,然后服务器在通过推送的方式告知和服务器保持连接的客户端,也就是浏览器页面。。 先来说说服务器推送到页面的方式吧,从服务器到WEB端页面有好多种实现方式,像什么Socket、Flash的Socket,基于Iframe的实现,AJAX长连接方式吧, 而从数据库向服务器推送数据,数据库有变化调用触发器,通过扩展的存储过程(外部过程,dll)向服务器发送数据,这个扩展存储过程本质是一个函数,随同sqlserver注册,从属于微软的ODS(开放数据服务),方便在扩展存储过程传入和传出数据,不知道有没有人用过这种从数据库推送的方式,这种方式可靠不。 而我问了一个XX培训的老师(不是此培训学校弟子,只是去玩,顺便探讨 ),他貌似很果断的都说了,他说触发器这种的是什么数据库级别的,不可靠云云,这是真的不。。。 对于这个获取到数据经过计算之后马上推送到客户端,我想阐述一下:这里面有两个服务器,一个C++服务器向数据库里面插入,还有一个是Java这边得一个网页上服务器,C++的服务器已经写好了在这放着呢,不可能在更改他的内容了,而他只管向数据库里面插入数据,而不会在告知我这个Java服务器有新数据来了或者有新数据的信息, 所以我才说能不能使用数据库获取到新数据主动推送到Java服务器这边,通过java服务器在推送到和他保持连接的页面上, 而数据库获取到新数据告知服务器,我想只有触发器才能做到吧。。。。 所以我想知道数据库触发器来推送新的数据信息这个是否可靠, 当程序有新数据往内存里面存,这个是行不通的,1、两个不在一个服务器,一个是插入的C++服务器,处理数据信息,这个已经做好,因为一些原因,这个不会在变更了 2、java服务器,主管读取数据信息 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-06-23
有没有谁做过类似的东东
|
|
返回顶楼 | |
发表时间:2011-06-23
奥义之舞 写道 有没有谁做过类似的东东 难道木有人做过类似的东西啊,交流一下呗 嘿嘿 |
|
返回顶楼 | |
发表时间:2011-06-24
没有人做 还是木有人 交流啊。。。。
|
|
返回顶楼 | |
发表时间:2011-06-24
奥义之舞 写道 没有人做 还是木有人 交流啊。。。。 淡定吧,楼主, 数据库我是没用过,不过按理说 触发器应该也是可以使用的吧,至于你说的调dll,我就不知道了 |
|
返回顶楼 | |
发表时间:2011-06-24
浮生如斯 写道 奥义之舞 写道 没有人做 还是木有人 交流啊。。。。
淡定吧,楼主, 数据库我是没用过,不过按理说 触发器应该也是可以使用的吧,至于你说的调dll,我就不知道了 |
|
返回顶楼 | |
发表时间:2011-06-24
一般也不会用数据库的,数据库只是存储介质。
消息推的时候一般是数据库做一次存储,同时放入内存容器。然后再从服务器推送出去。至于基于什么技术推就看你用什么了,长连接和falsh socket比较常见于基于web的即时消息 |
|
返回顶楼 | |
发表时间:2011-06-24
dancewhyw 写道 一般也不会用数据库的,数据库只是存储介质。
消息推的时候一般是数据库做一次存储,同时放入内存容器。然后再从服务器推送出去。至于基于什么技术推就看你用什么了,长连接和falsh socket比较常见于基于web的即时消息 我也想往内存里面放,直接推送出去,可是向数据库插入数据的是另外一个服务器的,总不能让他通过WEBService在发过来信息吧, 所以 我想问一下 使用微软的ODS 能否通过sqlserver 向我服务器里面发送消息的。。。 |
|
返回顶楼 | |
发表时间:2011-06-24
有什么关系吗?内存服务器可以是一个集群。用个内存池存放消息,轮询返回的速度非常快,还没明白意思吗?
数据库光是触发器就一般都不推荐使用,何况是在高并发的场景中。 |
|
返回顶楼 | |
发表时间:2011-06-24
dancewhyw 写道 有什么关系吗?内存服务器可以是一个集群。用个内存池存放消息,轮询返回的速度非常快,还没明白意思吗? 数据库光是触发器就一般都不推荐使用,何况是在高并发的场景中。 内存池存放消息,这个消息从哪来,自己去数据库里面取么? 向数据库里面添加实时数据的是C++服务器,而读取的是Java服务器,向WEB端发送。。 |
|
返回顶楼 | |