Posts Tagged ‘’

Openfire 3.5.0正式发布,Openfire Enterprise也将开源

星期二, 4月 8th, 2008

Openfire 3.5.0正式发布,Openfire Enterprise也将开源

openfire 3.5 的 修订日志在: http://www.igniterealtime.org/builds/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/docs/latest/changelog.html
相关下载地址:

http://www.igniterealtime.org/downloadServlet?filename=--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/openfire_3_5_0.zip

http://www.igniterealtime.org/downloadServlet?filename=--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/openfire_src_3_5_0.zip

Openfire Enterprise下载
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/enterprise.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/webchat.war

其它插件下载:

http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/asterisk-im.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/broadcast.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/contentFilter.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/emailListener.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/gateway.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/motd.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/presence.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/registration.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/search.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/sip.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/subscription.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/userImportExport.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/userservice.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/enterprise.jar

Openfire Enterprise以前是作为商业插件提供的,现在也将变成开源。相关文章:
http://www.igniterealtime.org/community/blogs/ignite/2008/04/07/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a---is-lookin-hot

http://www.igniterealtime.org/community/blogs/ignite/2008/04/07/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a---enterprise-is-becoming-open-source

http://www.igniterealtime.org/community/blogs/ignite/2008/04/07/turning---escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a---enterprise-into-an-open-source-product

目前在官方网站尚未看到 Openfire Enterprise的代码 http://svn.igniterealtime.org/svn/repos/

由于Openfire Enterprise是使用了Oracle Coherence来实现集群功能,
Oracle Coherence是被Oracle收购的Tangosol Coherence,是商业产品。因此Openfire Enterprise的集群功能不会开源。

关于Oracle Coherence,可以参看: http://www.--escaped_anchor:e678decc0d1b667116b4e88be425465c--.com/technology/global/cn/products/coherence/index.html

Tags: Cluster, coherence, OpenFire, Oracle, spark, 集群

Related posts

关于分布式负载均衡的几个设置

星期二, 1月 29th, 2008

服务器对外的展现要统一,简洁。
即用户在URL里看到的地址是很方便记忆的。

而对于页面中嵌入的图片,脚本,样式表,视频,音频等文件,则可以放在其它服务器上。

第一层: DNS记录轮询负载均衡
www.google.com为例进行分析
1.首先是将 www.google.com,指定多个cname,根据不同的网络线路请求得到不同的别名

比如在中国得到的别名为:www.l.google.com,
www.l.google.com 的别名为: www-china.l.google.com

www-china.l.google.com再指定多个ip的a记录,
例如 ip 64.233.189.99, 64.233.189.104,64.233.167.147.

99,104,147这三个ip分别实现ip别名绑定,即如果99这个ip挂了,104会自动接管该ip到本机。

通过这样的方式,保证用户最终访问到的ip始终在线。

在cname解析的地方,可以使用多层cname解析,以实现更细粒度的负载均衡并灵活切换。

假设当www-china.l.google.com下整个节点都断网了,则只需要将www.l.google.com指向www-usa.l.google.com这样就可以切换了。

(纯属猜测:指定了cname的域名,则不要再配置a记录,因为a记录的优先级比cname高。)

dns解析过程记录如下:

[code]
E:\>nslookup
DNS request timed out.
timeout was 2 seconds.
*** Can’t find server name for address 192.168.18.1: Timed out
*** Default servers are not available
Default Server:  UnKnown
Address:  192.168.18.1

> server 202.96.128.86
DNS request timed out.
timeout was 2 seconds.
Default Server:  [202.96.128.86]
Address:  202.96.128.86

> server 202.96.128.86
Default Server:  cache-a.guangzhou.gd.cn
Address:  202.96.128.86

> set q=cname
> www.google.com
Server:  cache-a.guangzhou.gd.cn
Address:  202.96.128.86

Non-authoritative answer:
www.google.com  canonical name = www.l.google.com
> www.l.google.com
Server:  cache-a.guangzhou.gd.cn
Address:  202.96.128.86

Non-authoritative answer:
www.l.google.com        canonical name = www-china.l.google.com
> www-china.l.google.com
Server:  cache-a.guangzhou.gd.cn
Address:  202.96.128.86

l.google.com
primary name server = f.l.google.com
responsible mail addr = dns-admin.google.com
serial  = 1331146
refresh = 900 (15 mins)
retry   = 900 (15 mins)
expire  = 1800 (30 mins)
default TTL = 60 (1 min)
> set q=a
> www-china.l.google.com
Server:  cache-a.guangzhou.gd.cn
Address:  202.96.128.86

Non-authoritative answer:
Name:    www-china.l.google.com
Addresses:  64.233.189.99, 64.233.189.104

[/code]

(也可用这个命令查询: dig @202.96.128.86 www.google.com +trace)

第二层,服务端请求分发。

前端的ip得到客户端的请求,并不是在本机进行业务逻辑处理,而是对请求进行初步解析过滤,再分发给其它服务器进行处理,
请求分发规则通常是基于url的,也可根据其它附加条件进行分发,例如GET/POST,user-Agent,remoteAddr,urlhash等。

第三层:客户端分发请求。

通常用于对图片资源的请求进行分发,按找浏览器的默认限制,对同一服务器的并发连接不超过2个,
因此,假设一个网页里要显示40张图片,而这40张图片,如果使用同一个域名的话,及时后台做了请求分发,
而受浏览器的限制,假设一秒中下载两张图,打开这40张图片,也需要20秒,

而在采取客户端分发请求的模式,将图片的链接自动分布的请求到远程多台服务器,那么以同时请求5台为例,则相当于将对网站的并发请求提高了 5倍,
获得了了10个并发请求。
不光是图片资源,其它资源也都可以采取这种模式,url的动态分布,可以在服务端生成html代码的时候完成,
也可以在html的Javascript中预先存放一个可用服务器列表

www.flickr.com为例:

http://farm1.static.flickr.com/
http://farm2.static.flickr.com/
http://farm3.static.flickr.com/
……
http://farmx.static.flickr.com/

Tags: DNS, javascript, 负载均衡, 集群

Related posts

体验OpenFire3.4.2的集群功能

星期三, 12月 12th, 2007

体验OpenFire3.4.2的集群功能

曾经因为学习xmpp的时候关注了openfire,那时候还叫WildFire,
曾经照虎画猫用lumaqq写了个qq插件,后来没时间也就没看了.

OpenFire 3.4.2发布了,在3.4开始就支持了集群功能,

changelog在: http://www.igniterealtime.org/builds/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/docs/latest/changelog.html

相关下载链接为:

http://www.igniterealtime.org/downloadServlet?filename=--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/openfire_3_4_2.zip
http://www.igniterealtime.org/downloadServlet?filename=--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/openfire_src_3_4_2.zip

http://www.igniterealtime.org/downloadServlet?filename=smack/smack_src_3_0_4.zip

http://www.igniterealtime.org/downloadServlet?filename=--escaped_anchor:e8b9b88aab5416e56fe429cf45045bf5--/online/spark_2_5_8_online.exe

http://www.igniterealtime.org/downloadServlet?filename=connectionmanager/connection_manager_src_3_4_2.zip
http://www.igniterealtime.org/downloadServlet?filename=connectionmanager/connection_manager_3_4_2.zip

上面的下载连接不支持断点续传.

http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/asterisk-im.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/broadcast.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/contentFilter.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/sip.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/gateway.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/presence.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/registration.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/search.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/subscription.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/userImportExport.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/userservice.jar

http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins-beta/filetransferdisabler.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins-beta/red5.war
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins-beta/vcard.jar

http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/enterprise.jar
http://www.igniterealtime.org/projects/--escaped_anchor:02a7ab568a16996440ac0b9fac8e7c4a--/plugins/webchat.war

配置openfire的启动参数,比如设置内存,
如果是用openfired.exe启动,则在D:\Java\openfire\bin创建openfired.vmoptions
内容为:
-Xms64m
-Xmx256m

如果是用openfire-service.exe进去启动的,则创建openfire-service.vmoptions.

测试了一下集群功能,openfire clustering特性用的是被Oracle收购的coherence来实现的,授权用的Tangosol Coherence: Application Edition.
tangosol-license.jar中有licensee信息,
coherence的下载地址在:
http://download.--escaped_anchor:e678decc0d1b667116b4e88be425465c--.com/otn/java/coherence/coherence-331.zip
来源: http://www.--escaped_anchor:e678decc0d1b667116b4e88be425465c--.com/technology/software/products/ias/htdocs/coherence.html

Tags: coherence, IM, OpenFire, Oracle, spark, 集群

Related posts