`
langzhe
  • 浏览: 286894 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

erlang-ejabberd集群配置

阅读更多

 

1.环境Ubuntu10.4
2.在两台服务器S1、S2安装ejabberd
  在此假设 S1安装ejabberd的node为ejabberd@admintest。
           S2安装ejabberd的node为ejabberd@clustertest。
  (注意:1)/sbin/ejabberdctl 中HOST的默认localhost,我在此把默认的HOST改为admintest和clustertest。
         2)分别在S1、S2把admintest与clustertest添加到/ect/hosts中 如:192.168.1.2 admintest  192.168.1.3 clustertest)。
3.在S1上通过shell执行 ejabberdctl start 启动 ejabberd
  1)可以在shell用ejabberdctl status来检查 ejabberd 是否启动成功。
  2)ejabberd成功启动后。在shell中用ejabberdctl register admin langzhetest.com 123456 来注册用户。并修改/etc/ejabberd.ctg 文件添加hosts(如:{hosts,["langzhetest.com"]}.)和acl(如:{acl,admin,{user,"admin","langzhetest.com"}}.) 详细请参考官方文档。
  3)参照2)再次创建其他账户如adminlxw,当然可以通过http://langzhetest.com:5280/admin/操作界面继续添加用户。
  4)在此为了确保服务器的正确性,可以使用客户端验证,方法略。
4.在S2上进行集群配置
  1)确保S1和S2有相同的cookie,假设当前cookie为langxianzhe,复制S1 ~ejabberd/.erlang.cookie 到S2 ~ejabberd./erlang.cookie(其它设置方法请参考官方文档)。
  2)在linux shell中执行
  erl -sname ejabberd@clustertest \
      -mnesia dir '"/var/lib/ejabberd/"' \
      -mnesia extra_db_nodes "['ejabberd@admintest']" \
      -s mnesia -setcookie langxianzhe(官方文档没有在此设置cookie,但发不设置cookie mnesia:info/0 查看到得runing db nodes信息,会少一个node)。
  3)在erlang shell中执行
    mnesia:change_table_copy_type(schema, node(), disc_copies). 
    可以根据实际需要,再执行 mnesia:add_table_copy/3 详细请参考官方文档。
  4)退出erlang shell
    输入"q()."或"init:stop()."。
  5)在linux shell中执行 ejabberdctl start,通过ejabberdctl status 检查是否启动成功。
  6)修改/etc/ejabberd.ctg 文件添加hosts(如:{hosts,["langzhetest.com"]}.),在此不需要修改acl,它会自动从S1上获取。
  7)注意:修改配置文件后需要重新启动ejabberd才生效(如:ejabberdctl restart)。

5.进行负载均衡配置
  1)修改S1、S2 /etc/ejabberd/ejabberd.ctf 在文件末尾添加
  {domain_balancing_component_number, "langzhetest.com", 2}.。
  2)修改日志级别为debug方便观察后台信息。
  3)完成以上操作重启ejabberd服务。
   
6.用户客户端测试服务器
  1)修改客户端的hosts 添加 192.168.1.2 irgstest.com或 192.168.1.3 langzhetest.com。
  2)添加登录用户的时候去掉ssl验一项,不然可能登陆不上。
  3)添加好友时不要只写admin,要写全称如:admin@langzhetest.com。
  4)admin和adminlxw最好是在两台机器(一个host配置是192.168.1.2 irgstest.com另一个hosts配置是 192.168.1.3 langzhetest.com)上进行测试,是为了保证S1,S2两个服务器能相互通信。
7.结束OK,休息一下。

 

  
分享到:
评论
3 楼 langzhe 2012-02-22  
koteancno 写道
又拜读到一篇好文章

相互学习
2 楼 koteancno 2012-02-18  
又拜读到一篇好文章
1 楼 langzhe 2010-09-17  
今天又配置了一下 ejabberd集群,
1.出现
  running db nodes = [ejabberd@serverc]
  stopped db nodes = [ejabberd@serverb]
  原来 hosts配置错了
2.出现
RROR REPORT==== 17-Sep-2010::09:23:33 ===
Error in process <0.55.0> on node 'ejabberd@serverc' with exit value: {badarg,[{erlang,list_to_existing_atom,["ejabberd@localhost"]},{dist_util,recv_challenge,1},{dist_util,handshake_we_started,1}]}

很明显 erl -sname ejabberd@serverc -mnesia dir '"/var/lib/ejabberd/"'  -mnesia extra_db_nodes "['ejabberd@serverb']"  -s mnesia -setcookie 123456
中 没有ejabber@localhost那就是我localhost没有改成serverb

相关推荐

    ejabberd windows installer

    5. **可扩展性**:ejabberd可以通过分布式集群扩展,允许多台服务器协同工作,以应对更大的用户负载。 6. **API和Webhooks**:ejabberd提供API接口,可以与其他应用系统集成,实现自动化管理和扩展功能。同时,...

    Ejabberd-2.1.10-mac

    3. **高可用性**:Ejabberd可以被配置为集群模式,提供负载均衡和故障转移,确保服务的稳定性和连续性。 4. **安全性**:支持SSL/TLS加密,保护用户的通信隐私;并且可以通过模块进行访问控制和防火墙规则设置。 5. ...

    ejabberd源码

    ejabberd的配置文件通常位于`etc`目录下,通过修改这些配置文件,可以定制服务器的行为。同时,ejabberd还提供了管理工具,如命令行工具和Web管理界面,用于监控和管理服务器状态。 总之,ejabberd是一个强大且...

    ejabberd-14.07聊天服务器

    2. **高可用性与扩展性**:ejabberd采用了 Erlang/OTP(Open Telecom Platform)语言开发,天生具备高并发和容错能力。它可以轻松地在集群环境中运行,随着用户数量的增长,可以动态添加节点来扩展服务。 3. **安全...

    mod_offline_my:将Ejabberd脱机消息通知转发到外部HTTP端点

    最简单的方法是在ejabberd.yml模块设置下启用mod_offline_my并设置某些配置选项。 配置选项 mod_offline_my需要一些参数才能正常运行。 应在ejabberd.yml mod_offline_my下设置以下选项: host (必填, string )-...

    即时通讯服务端测试工具

    1. **可扩展性**:ejabberd可以轻松处理成千上万的并发用户,支持集群部署,能够随着用户数量的增长进行水平扩展。 2. **安全性**:ejabberd支持SSL/TLS加密,保证了通信的安全性,防止数据在传输过程中被窃取。 3. ...

    ansible-nodetool:Ansible模块,用于通过Erlang RPC与Erlang节点进行交互

    这使得管理员能够对使用 Erlang 作为后端语言的应用程序(如 ejabberd、Cassandra 或 Riak 等)进行自动化管理和配置。 **Erlang 和 RPC 的基础知识** Erlang 是一种面向并发的编程语言,最初由瑞典电信公司 ...

    Elang 集群信息记录器

    为了充分利用Elang集群信息记录器,开发者和运维人员需要对Elang的分布式特性有深入理解,包括进程间通信(Erlang的轻量级进程和消息传递)、分布式节点的连接与认证、以及Erlang的错误处理和恢复机制。同时,掌握...

    超级课程表的技术选型

    - **Ejabberd**:利用Erlang语言的优势,在并发性和稳定性方面表现优异,适合大型分布式环境,但维护成本较高。 - **GoPush**:基于Go语言开发的推送系统,支持高并发访问,并能够适应分布式环境的需求。 #### 内核...

    Hadoop总结资料Hadoop1.0.3

    配置Hadoop涉及设置集群的节点,网络通信,存储和计算资源。在Hadoop1.0.3中,配置文件通常包括`core-site.xml`(核心配置),`hdfs-site.xml`(HDFS配置),`mapred-site.xml`(MapReduce配置)等。配置内容可能...

Global site tag (gtag.js) - Google Analytics