erlang中的inet_gethost

erlang分布式网络节点中会经常用到域名解析服务,这一块是由外部程序inet_gethost来实现的,主要为了将这一耗时不确定的操作独立于主逻辑之外,以免影响主进程中process的调度。与inet_gethost同等待遇的还有memsup,cpu_sup和disksup,都是作为主进程的子进程独立执行。

inet_gethost的调度路径是这样的:

1.gen_tcp:connect

2.inet:gethostbyaddr

3.inet:gethostbyaddr_tm_native()

4.inet_gethost_native:gethostbyaddr()

5.inet_gethost_native:getit()

6.inet_gethost_native:ensure_started()

7.inet_gethost_native:start_raw()

8.inet_gethost_native:run_once()

9.inet_gethost_native:do_open_port()

10.inet_gethost_native:open_port({spawn, "inet_gethost 4 "}

11./usr/local/lib/erlang/erts-8.3/bin/inet_gethost

整个服务的启动,是由第一次gethostbyname()调用触发完成的,默认情况下会有4个inet_gethost进程为单一个节点服务,并且这4个inet_gethost进程被这一个节点独占,其他节点会有自己的独占inet_gethost服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在Linux安装RabbitMQ的步骤: 1. 安装 Erlang RabbitMQ需要Erlang虚拟机作为运行环境。可以通过以下命令安装Erlang: ``` sudo apt-get update sudo apt-get install erlang ``` 2. 添加 RabbitMQ 官方仓库 执行以下命令以添加 RabbitMQ 官方仓库到系统: ``` sudo apt-get install curl curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.deb.sh | sudo bash ``` 3. 安装 RabbitMQ 执行以下命令以安装 RabbitMQ: ``` sudo apt-get update sudo apt-get install rabbitmq-server ``` 4. 启动 RabbitMQ 服务 执行以下命令以启动 RabbitMQ 服务: ``` sudo systemctl start rabbitmq-server ``` 5. 配置 RabbitMQ 开机自启 执行以下命令以配置 RabbitMQ 开机自启: ``` sudo systemctl enable rabbitmq-server ``` 6. 检查 RabbitMQ 服务状态 执行以下命令以检查 RabbitMQ 服务状态: ``` sudo systemctl status rabbitmq-server ``` 如果一切正常,你应该可以看到类似如下信息: ``` ● rabbitmq-server.service - RabbitMQ Messaging Server Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-05-10 22:19:20 CST; 2 days ago Main PID: 10157 (beam.smp) Tasks: 170 (limit: 4915) CGroup: /system.slice/rabbitmq-server.service ├─10157 /usr/lib/erlang/erts-10.3.4.0/bin/beam.smp -W w -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -K true -B i -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.9/ebin -noshell -noinput -s rabbit boot -sname rabbit@localhost -boot start_sasl -config /etc/rabbitmq/rabbitmq ├─10290 /usr/lib/erlang/erts-10.3.4.0/bin/epmd -daemon ├─10500 erl_child_setup 1024 ├─10517 inet_gethost 4 └─10518 inet_gethost 4 ``` 恭喜你,RabbitMQ已经成功安装并运行在你的Linux系统上了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值