Erlang/Elixir精选-第1期(20191202)

第1期(20191202)

文章

  1. A short guide to the structure and internals of the Erlang distributed messaging facility. Erlang分布式启动流程源码阅读指南:html

    • 节点启动时经过epmd互相发现彼此。
    • net_kernel启动tcp创建稳定的长链接流程,handshake,setnode,set_cookie。
    • 节点间发消息使用的数据格式external term format。
  2. How to opens an ssh tunnel to connect to a remote Erlang VM via Observer.node

    观察节点想启动observer观测其它节点,观察节点只有ssh的网络权限,其它端口不通,<br />能够使用把epmd的端口映射ssh代理隧道上,来实现节点通讯。<br />更进一步,能够研究一下SSHEX如何经过Erlang自带的ssh库来实现功能的。git

  3. How to evaluate a string of code in Erlang at runtime.github

    Erlang做为动态语言的绝佳优点就是能够运行时才parse/eval输入的字符串,<br />这也是Erlang Shell运行的基本原理。大部分人都幻想过在浏览器里面运行来 Erlang Shell,实现控制管理后台。<br />好比这个:TryErlang。能够尝试,但必定要注意如何限制权限。防止被人hack后直接init:stop/0浏览器

  4. Ten Years of Erlang.cookie

    Learn You Some Erlang_做者Fred总结了加入Erlang社区10年的变化。附译文网络

  5. Monitoring Erlang Atoms.ssh

    原子是不会垃圾回收的,当原子个数达到最大时(默认为1048576),节点会直接crash。<br />因为旧版的OTP不能直接获得atom数量,因此文中须要间接经过erlang:system_info(info)来作。<br /> 在新版OTP中能够直接使用erlang:system_info(atom_limit)和erlang:system_info(atom_count)<br />获得最大值和当前值。tcp

$ erl
Erlang/OTP 20 [erts-9.0] [source] [64-bit] ...
1> [list_to_atom(integer_to_list(I)) 
   || I <- lists:seq(1, erlang:system_info(atom_limit))].
no more index entries in atom_tab (max=1048576)
Crash dump is being written to: erl_crash.dump...done

代码

Hexadecimal字符转二进制分布式

1> Hexs = ["FF","AC","01"].
2> << <<(list_to_integer(C,16)):8>> || C <- Hexs >>.
<<255,172,1>>
相关文章
相关标签/搜索