如何配置负载均衡

legend_jhz 2009-08-08 12:03:04
服务程序已经使用一段时间了,现在想要实现集群和负载均衡,服务是c/s的,这样有一个问题:原先用户首次登录的时候,先获取一个自己编写的id,客户每次发送请求都会带这个id,可能会有多个服务请求,哪么在进行请求的时候如果在一台服务器上维护了,下载在请求可能转到另一台服务器上,这样id就变成无效的,怎么设置才能让这两台服务器进行id的共享呢?或者同步?谢谢!
...全文
224 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
why_java 2009-08-10
  • 打赏
  • 举报
回复
负载均衡、集群这种东西最好不要自己做,很难做好的,还是要找产品级的解决方案。最好是问服务端产品的厂商,他们是否能够提供这样的功能。
Landor2004 2009-08-10
  • 打赏
  • 举报
回复
负载均衡的代理服务器会作出判断,就是在一个session中的所有交互都会在Cluster中的某一个机器上完成;

如果我没理解错误的话,应该不会出现楼主所说的问题
BearKin 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 quqiujie 的回复:]
还是放到数据库中吧

毕竟数据库是唯一的,不需要同步!
[/Quote]

两台机器 就知道不可能是唯一的 除非出现第三台 第三台用来掌管数据库 另两台去访问他 但现在只有两台 而且两台保存着两套东西
dahaidao 2009-08-10
  • 打赏
  • 举报
回复
做负载的时候好像有种技术是同一个客户端连接到同一个服务器,好像是这样,具体没有做过。你可以再详细看一下负载均衡技术。
另外c/s的应用本身就应该是多层架构的吧,如果要真的实现负载可能还需要对S这部分重新设计一下吧。

个人观点。
随风醉舞 2009-08-10
  • 打赏
  • 举报
回复
up
紫炎圣骑 2009-08-10
  • 打赏
  • 举报
回复
还是放到数据库中吧

毕竟数据库是唯一的,不需要同步!
legend_jhz 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 bearkin 的回复:]
ID存入数据库自然很好 如果不行的话 可以序列化成对象 问题两台机器一定要同步
[/Quote]
这个怎么同步呢?
forandever 2009-08-10
  • 打赏
  • 举报
回复
比如,数据库中转,或者你可以看看 memcached。
BearKin 2009-08-10
  • 打赏
  • 举报
回复
ID存入数据库自然很好 如果不行的话 可以序列化成对象 问题两台机器一定要同步
legend_jhz 2009-08-10
  • 打赏
  • 举报
回复
up
legend_jhz 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 landor2004 的回复:]
没理解楼主的意思,既然每次都带着,还能出现问题吗

除非数据在session中,这样会出现session不共享的问题,如果楼主是weblogic10的话,它的特色是实现了session共享,可以自动同步session数据;
[/Quote]
这个可能我说得不清楚,id是自己维护产生,客户在客户端的请求是多个的,如:下载信息,发送业务等,第一次请求可能去了第一个服务器,而第二次发送业务的时候可能去了第二个服务器,所以虽然都带着id,但是id是第一个服务器产生的 ,第二个服务器里面是没有的,所以牵涉到共享问题,用的是weblogic8.1,不知道自己维护的id,能否共享。
villagehead 2009-08-10
  • 打赏
  • 举报
回复
之前看过配置复载均衡的东西,
其中提到的有关session这样的东西,是用一个参数,固定到某台后台服务器中。

也就是,比如配置了这个参数,
那么,有A请求的时候,调度器会找一个后台的服务器处理,
如果从A处又来了一个请求,调度器还是去找之前的服务器去处理。
也就是调度器有一个表来记录请求和处理请求的服务器的内容。

这样就能解决各个后台服务器不能互相共享数据内容的问题了。

具体楼主可以翻翻这个网站。
http://www.linuxvirtualserver.org/

随便说两句。
主要是帮顶

good luck

legend_jhz 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 landor2004 的回复:]
负载均衡的代理服务器会作出判断,就是在一个session中的所有交互都会在Cluster中的某一个机器上完成;

如果我没理解错误的话,应该不会出现楼主所说的问题
[/Quote]
这个session不是由weblogic来维护的,是自己维护的,即使生成类序列化后放入session中,session也有超时时间。
bea_java 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 legend_jhz 的回复:]
id是自己维护产生的,在两台服务器上可能会产生相同的id,写入数据库会可能存在两条相同的数据。在删除数据的时候,也没法区分是哪个。
[/Quote]

赞同。。。。。。看你是做什么服务了哦。
Landor2004 2009-08-09
  • 打赏
  • 举报
回复
没理解楼主的意思,既然每次都带着,还能出现问题吗

除非数据在session中,这样会出现session不共享的问题,如果楼主是weblogic10的话,它的特色是实现了session共享,可以自动同步session数据;
legend_jhz 2009-08-09
  • 打赏
  • 举报
回复
id是自己维护产生的,在两台服务器上可能会产生相同的id,写入数据库会可能存在两条相同的数据。在删除数据的时候,也没法区分是哪个。
legend_jhz 2009-08-09
  • 打赏
  • 举报
回复
up
phoenixYiYou 2009-08-08
  • 打赏
  • 举报
回复
几台服务器之间是要同步的!
你需要先用一个服务接受请求,然后把需要同步的状态同步到各服务器上!
legend_jhz 2009-08-08
  • 打赏
  • 举报
回复
除了写数据库,应该还有其他方式的操作吧?
zl3450341 2009-08-08
  • 打赏
  • 举报
回复
关注 帮顶
加载更多回复(4)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧