包括Riak中的Erlang客户端库

包括Riak中的Erlang客户端库,erlang,nitrogen,Erlang,Nitrogen,我刚开始使用氮气开发一个网络应用,一切都很顺利。但我也希望我的应用程序与我设置的riak db接口,我遇到了一些问题 我对如何“包括”erlang客户机接口,以便我在氮气中的代码可以访问它感到困惑 (https://wiki.basho.com/display/RIAK/Erlang+客户+中国人民银行) 我不熟悉erlang和氮气,但我的意思是,一般来说,对于erlang,我如何包括其他库作为参考?我是否只是把编译好的beam文件扔到某个地方,然后在erlang代码的顶部有一个include行

我刚开始使用氮气开发一个网络应用,一切都很顺利。但我也希望我的应用程序与我设置的riak db接口,我遇到了一些问题

我对如何“包括”erlang客户机接口,以便我在氮气中的代码可以访问它感到困惑

(https://wiki.basho.com/display/RIAK/Erlang+客户+中国人民银行)


我不熟悉erlang和氮气,但我的意思是,一般来说,对于erlang,我如何包括其他库作为参考?我是否只是把编译好的beam文件扔到某个地方,然后在erlang代码的顶部有一个include行?如果是这样的话,我应该把这些文件放在哪里(我认为它有自己独立的erlang节点实例)

如果你在一个节点上运行所有东西,只需调用你需要的。如果节点是使用Erlang/OPT发布处理规则构建的,则意味着所有需要的库都加载到VM中

-include仅用于包含带有记录定义或宏的头文件

所有这些对您来说都应该是透明的,因为rebar(basho构建系统)处理得非常好

要使用某些库,请确保它位于正确的钢筋配置(deps部分)的deps目录中。下一件事是修改rel/文件中的systools.config,该文件配置节点(从deps/获取要包含在运行系统中的应用程序)


仅此而已。

这是一个简单的过程:

  • 确保使用Basho的修补版Erlang。有关操作说明,请参阅

  • 然后按照中的说明安装slim版本请使用“slim release”版本,以便使用Basho的Erlang构建项目

  • 从github中拉出riak erlang客户端。有关更多信息,请访问../$MYPROJECT/lib目录,其中$MYPROJECT是您的项目名称<代码>git克隆git://github.com/basho/riak-erlang-client.git。这将包括lib目录中的riak erlang客户端

  • 通过执行以下操作编辑rebar.config文件:
    nano../$MYPROJECT/rebar.config
    ,以包含riak erlang客户端依赖项。**在下面的代码块**中查找riakc dep,在这个项目中,我使用了
    make slim\u cowboy

  • {deps[

      {cowboy,        ".*",   {git, "git://github.com/ninenines/cowboy",         {tag,     "1.0.0"}}},
    %% Uncomment the following lines and comment the bottom lines with specific
    %% tags to always pull the latest versions
    {simple_bridge, ".*",   {git, "git://github.com/nitrogen/simple_bridge",{branch, master}}},
    {nprocreg,      ".*",   {git, "git://github.com/nitrogen/nprocreg",     {branch, master}}},
    {nitrogen_core, ".*",   {git, "git://github.com/nitrogen/nitrogen_core",{branch, master}}},
    
    %% The riak-erlang-client dep starts
    {riakc,         "1.4.1",    {git, "git://github.com/basho/riak-erlang-client", {tag, "1.4.1"}}},
    %% The riak-erlang-client dep ends
    
    {sync,          ".*",   {git, "git://github.com/rustyio/sync",          {branch, master}}}
    
    %% Get specific tagged version
    %{simple_bridge, ".*",   {git, "git://github.com/nitrogen/simple_bridge",{tag, "v2.0.0-beta5"}}},
    %{nprocreg,      ".*",   {git, "git://github.com/nitrogen/nprocreg",     {tag, "v0.2.1"}}},
    %{nitrogen_core, ".*",   {git, "git://github.com/nitrogen/nitrogen_core",{tag, "v2.3.0-beta6"}}},
    %{sync,          ".*",   {git, "git://github.com/rustyio/sync",          {tag, "4dbe32bb4"}}}
    
    ]}

  • 从../$MYPROJECT使用
    makeall
    重新编译您的项目

  • 此步骤结束时,只需通过
    /bin/nitron console
    启动氮气。尝试通过
    {ok,Pid}=riakc_pb_socket:start_link(“127.0.0.1”),连接到您的一个riak节点。
    然后您就可以开始了


  • 太棒了,你说得对。我将它安装在氮气使用的节点上(与我的计算机上已经安装的erlang节点相反),现在一切正常。谢谢我想知道你是否可以通过帮助回答这个问题来继续这个想法,在步骤3中,在客户端的根目录中包括一个文件non.plugin,即,
    touch../$MYPROJECT/lib/riak erlang client/non.plugin
    。这将使您能够使用氮气的do-plugins.enscript包含此插件,而不会产生任何副作用。