首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

flex 集群有关问题

2012-12-26 
flex 集群问题集群在很大程度上都是解决session共享问题?flex 集群也是一样。项目中没有用到flex的session

flex 集群问题

集群在很大程度上都是解决session共享问题

?

flex 集群也是一样。项目中没有用到flex的session 但是不管你用没用到session? MessageBrokerServlet 都会帮你创建一个session

?

代码为:HttpFlexSession fs = httpFlexSessionProvider.getOrCreateSession(req);?

?

如果不用session而每次都创建这也是一个不小的开销。而且用 nginx 转发多个服务的时候会有session不正确的问题

?

转决方法有二

?

1.一直访问第一次请求的那台服务 用nginx ip_hash可以解决(如果这台服务死了。仍有session问题,而且负载效果不是很明显)

2.将blazeds 的session阉割掉.. 会感觉凉快很多

?

本例用的blazeds版本为 4.0.1.17657

?

到刀修改两个类:MessageBrokerServlet,AbstractEndpoint

?

MessageBrokerServlet的service方法

public FlexClient setupFlexClient(String id)   {       FlexClient flexClient = null;       if (id != null)       {           // This indicates that we're dealing with a non-legacy client that hasn't been           // assigned a FlexClient Id yet. Reset to null to generate a fresh Id.           if (id.equals(FlexClient.NULL_FLEXCLIENT_ID))               id = null;           flexClient = getMessageBroker().getFlexClientManager().getFlexClient(id);           // Make sure the FlexClient and FlexSession are associated.           //客户端设置不用session 这里取session 判断是否为空             //FlexSession session = FlexContext.getFlexSession();           //flexClient.registerFlexSession(session);           // And place the FlexClient in FlexContext for this request.           FlexContext.setThreadLocalFlexClient(flexClient);       }       return flexClient;   }

?

当然在实践中应尽量拓展不推荐用修改源码的方式

?

blazeds3阉割可以参考下面这个贴子:http://www.iteye.com/topic/875364

热点排行