锁定老帖子 主题:Internet的数据库信息推送技术实现
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-24
我觉得问题的入手点是这样的,数据库何时知道数据有更新,只有数据库知道了才会推出去。那么如何办?触发器是其一,因为触发器可以知道更新。第二个办法,当往数据库进行操作的时候,由程序发出信号,另外的监听程序得到信号后,再去推送数据。这个可以用异步消息实现。
|
|
返回顶楼 | |
发表时间:2011-06-24
dancewhyw 写道 有什么关系吗?内存服务器可以是一个集群。用个内存池存放消息,轮询返回的速度非常快,还没明白意思吗?
数据库光是触发器就一般都不推荐使用,何况是在高并发的场景中。 还有为什么不推荐使用触发器呢,使用触发器有什么弊病可以说一下么 谢谢 |
|
返回顶楼 | |
发表时间:2011-06-24
silence1214 写道 我觉得问题的入手点是这样的,数据库何时知道数据有更新,只有数据库知道了才会推出去。那么如何办?触发器是其一,因为触发器可以知道更新。第二个办法,当往数据库进行操作的时候,由程序发出信号,另外的监听程序得到信号后,再去推送数据。这个可以用异步消息实现。
入手点都同意,不过你说的第二个点,应该是向数据库更新的程序同时都通知我这边吧, (因为一方面原因这个程序不会向Java服务器这边发出通知的。。) 如果只是从Java服务器这边考虑呢,是不是只能让数据库推过来了。。。 |
|
返回顶楼 | |
发表时间:2011-06-24
Node.js
|
|
返回顶楼 | |
发表时间:2011-06-24
你的服务器不是先接收到数据吗? 服务端有两个功能,一个功能是存储即时数据到数据库,另一个就是把即时数据推送到客户端。 |
|
返回顶楼 | |
发表时间:2011-06-24
lxm63972012 写道 你的服务器不是先接收到数据吗? 服务端有两个功能,一个功能是存储即时数据到数据库,另一个就是把即时数据推送到客户端。 我服务器 接收不到数据,这是有两个服务的,那个C++服务器是直接发送到数据库的,Java服务器接受不了任何东西,只有自己主动的去获取才能知道数据库更新了,或者让数据库主动推送, |
|
返回顶楼 | |
发表时间:2011-06-24
用一个比较折中的方法好了。存储分为2个部分,一部分存储到数据库中,一部分存储到缓存组件中(类似redis,memcache) 然后专门用一个组件定时(极其短的时间)去访问缓存.组装数据,然后把数据推给客户端
|
|
返回顶楼 | |
发表时间:2011-06-24
监控。。。获取到实时数据后,写入数据库,再靠数据库的触发机制去提醒。。。这本身就是个问题。
应该获取到数据经过计算之后马上推送到客户端再,顺便用一个线程往DB或者文件里存储。 |
|
返回顶楼 | |
发表时间:2011-06-24
lxm63972012 写道 你的服务器不是先接收到数据吗? 服务端有两个功能,一个功能是存储即时数据到数据库,另一个就是把即时数据推送到客户端。 服务端向数据库插入信息的这部分已经写好了,不会在变更了, 对于这个获取到数据经过计算之后马上推送到客户端,我想阐述一下:这里面有两个服务器,一个C++服务器向数据库里面插入,还有一个是Java这边得一个网页上服务器,C++的服务器已经写好了在这放着呢,不可能在更改他的内容了,而他只管向数据库里面插入数据,而不会在告知我这个Java服务器有新数据来了或者有新数据的信息, 所以我才说能不能使用数据库获取到新数据主动推送到Java服务器这边,通过java服务器在推送到和他保持连接的页面上, 而数据库获取到新数据告知服务器,我想只有触发器才能做到吧。。。。 所以我想知道数据库触发器来推送新的数据信息这个是否可靠, 当程序有新数据往内存里面存,这个是行不通的,1、两个不在一个服务器,一个是插入的C++服务器,处理数据信息,这个已经做好,因为一些原因,这个不会在变更了 2、java服务器,主管读取数据信息 |
|
返回顶楼 | |
发表时间:2011-06-24
rocwon 写道 监控。。。获取到实时数据后,写入数据库,再靠数据库的触发机制去提醒。。。这本身就是个问题。
应该获取到数据经过计算之后马上推送到客户端再,顺便用一个线程往DB或者文件里存储。 我也很想这样做 真悲剧 对于这个获取到数据经过计算之后马上推送到客户端,我想阐述一下:这里面有两个服务器,一个C++服务器向数据库里面插入,还有一个是Java这边得一个网页上服务器,C++的服务器已经写好了在这放着呢,不可能在更改他的内容了,而他只管向数据库里面插入数据,而不会在告知我这个Java服务器有新数据来了或者有新数据的信息, 所以我才说能不能使用数据库获取到新数据主动推送到Java服务器这边,通过java服务器在推送到和他保持连接的页面上, 而数据库获取到新数据告知服务器,我想只有触发器才能做到吧。。。。 所以我想知道数据库触发器来推送新的数据信息这个是否可靠, 当程序有新数据往内存里面存,这个是行不通的,1、两个不在一个服务器,一个是插入的C++服务器,处理数据信息,这个已经做好,因为一些原因,这个不会在变更了 2、java服务器,主管读取数据信息 |
|
返回顶楼 | |