学ui的网站,内蒙古建信建设有限公司网站,wordpress 还有什么,网络推广营销方法1.服务为管理 Erlang天生就是为了让应用程序无需知道对方是否存在同一台机器上即可互相通信。 Erlang节点#xff1a;Erlang虚拟机的每个实例。多个Erlang应用程序可以运行在同一个节点之上。节点之间可以进行本地通信#xff08;不管他们是运行在同一台服务器之上#xff0…1.服务为管理 Erlang天生就是为了让应用程序无需知道对方是否存在同一台机器上即可互相通信。 Erlang节点Erlang虚拟机的每个实例。多个Erlang应用程序可以运行在同一个节点之上。节点之间可以进行本地通信不管他们是运行在同一台服务器之上。举例说明一个运行在节点A上应用程序可以调用节点B上应用程序的方法就好像调用本地函数一样。如果应用程序由于某些原因奔溃Erlang节点会自动尝试重启应用程序。 1.1启动节点 在RabbitMQ的安装目录下运行./rabbitmq-server。也可以通过增加-detached参数的方式启动RabbitMQ节点以守护程序的方式在后台运行./rabbitmq-server -detached. 1.2停止节点 在RabbitMQ的安装目录下运行./rabbitmqctl stop时rabbitmqctl会和本地节点通信并指示其干净的关闭。也可以指定关闭不同的节点包括远程节点。只需要传入-n rabbit[hostname]选项即可。这时整个Rabbitmq节点包括Erlang都关闭了。 停止RabbitMQ只需要运行:./rabbitmactl stop_app即可。 1.3RabbitMQ的配置文件 [{mnesia,[{dump_log_write_threshold,1000}]},{rabbit,[{vm_memory_high_watermark,0.4}]}
]rabbitmq的配置文件是一个包含了嵌套哈希表表的数组。通过外部配置数组每个Erlang应用程序会有自己的哈希表来配置选项。 注意RabbitMQ中的每个队列、交换器和绑定的元数据都是保存到Mnesia的。Mnesia是内建在Erlang的非SQL数据库。Mnesia通过将RabbitMQ元数据写入一个仅限追加的日志文件以确保其完整性。然后在定期将日志内容转储到真实的Mnesia数据库文件中。 2.请求许可 可以为连接到RabbitMQ上的用户设置不同级别的权限(读、写和配置).RabbitMQ权限的好处是在于单个用户可以跨越多个Vhost进行授权。 2.1管理用户 在RabbitMQ中用户是访问控制的基本单元。针对一到多个vhost其可以被赋予不同级别的访问权限并使用标准的用户名/密码来认证用户。对用户的增加、删除以及列出列表非常简单。这些操作都是通过rabbitmqctl来完成。 创建用户的命令如下 ./rabbitmqctl add_user username password删除用户的命令如下 ./rabbitmqctl delete_user username当删除用户的时候任何引用该用户的访问控制条目都会从rabbit权限数据库中自动删除。 查看所有用户的命令如下 ./rabbitmqctl list_users修改已经存在的用户的密码的命令如下 ./rabbitmqctl change_password username newpassword2.2Rabbit权限系统 如下图是AMQP操作到Rabbitmq权限的映射关系 每一条访问控制条目由以下四部分组成 被授予访问权限的用户权限应用的vhost需要授予的读/写/配置权限的组合权限的范围 谨记访问控制条目是无法跨越vhost的。 授予权限的命令如下所示 ./rabbitmqctl set_permissions -p vhostname username .* .* .*-p vhostname告诉了set-permissions条目应该应用到哪个vhostusername:指定了被授予权限的用户.* .* .*:这是被授予的权限。这些值分别映射到配置、写和读。 .*意味着匹配任何队列或者交换器的名字。 checks-.*:只匹配名字以checks-开头的队列和交换机。 :不匹配任何队列和交换器。 如下权限设置 ./rabbitmqctl set_permissions -p vhostname username checks-.* .*可以使用Rabbitmqctl的list_permisions命令来验证权限是否正确赋予。 ./rabbitmqctl clear_permissions -p vhostname username可以使用Rabbitmqctl的clear_premissions命令来移除一个用户在任何vhost上的权限。如下所示 ./rabbitmqctl clear_permissions -p vhostname username值得注意的是clear_permissions命令会移除用户在指定vhost上的所有权限。如果你想修改用户现存权限则只需要设置新的权限值并执行set_permissions即可。 如果你想查看用户在RabbitMQ服务器上所有vhost上的权限可以使用list_user_permissions即可。 ./rabbitmqctl list_user_permissions username3.检查 3.1查看数据统计 列出队列和消息数目 ./rabbitmqctl list_queues [-p VHostname] [QueueInfoItem]QueueInfoItem主要包含以下选项 例如 ./rabbitmqctl list_queues name durable auto_delete consumers memory查看交换器和绑定.查看交换器的命令如下 ./rabbitmqctl list_exchanges查看绑定的命令如下 ./rabbitmqctl list_bindings该命令不接受处-p以外的参数。 通过AMQP实时访问日志 当使用rabbitmqctl列出交换器列表时看到了其中一个叫做amq.rabbitmq.log的topic交换器。RabbitMQ把日志信息发布到该交换器上并以严重级别作为路由键---error、warning和info.可以通过创建一个消费者来监听日志并作出相应的反应。 4.修复RabbitMQ疑惑解答 Erlang节点通过交换作为秘密令牌的Erlang cookie以获得认证。由于你已连接到远程节点后就能执行命令因此有必要确保该节点是可信的。Erlang将令牌存储在名为.erlang.cookie的文件。为了能让rabbitmqctl能够连接RabbitMQ节点因此需要共享相同的cookie。如果运行RabbitMQ和执行rabbitmqctl命令的是同一个用户那么你不会有任何问题。但是在产品环境中你可能会想要创建rabbitmq用户并以该用户的身份运行服务器。这意味着你必须和rabbitmq用户共享cookie或者切换到rabbitmq才能成功执行rabbitmqctl。