Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

39 rader
2.2 KiB

5 år sedan
5 år sedan
5 år sedan
  1. # erlArango
  2. arangodb多模数据库erlang驱动程序
  3. erlang otp21.2+ arangodb 3.6.2 3.7
  4. ## 特点
  5. 高效,快速,简单易用。
  6. 1. 为了该驱动尽可能的高效,定制化封装了一个带连接池的http1.1的客户端(agHttpCli)
  7. 封装的agHttpCli与同类http客户端测试对比可参考:https://github.com/SisMaker/httpc_bench
  8. 2. 为了更加快速的decode和encode json数据,json库引入了jiffy,经过测试jiffy效率还是很不错的。
  9. 3. 该驱动可以使用连接池,也可以仅仅在单进程(非连接池模式)建立多个连接进行各种数据操作。使用连接池时支持同步与异步操作,如果要使用异步操作需要额外保存requestId
  10. 等待接收数据返回,当前改驱动封装的API均使用同步操作,如果需要异步操作可自行修改。单进程操作时仅支持同步操作。
  11. 单进程模式下相对连接池模式可以减少一次数据在进程间的复制,对于大量数据的操作,可以考虑在数据管理进程单独建立数据库连接,而不用连接池。
  12. 4. 连接池模式和非连接池模式API接口保证了同一性,不用区别对待, 易于理解和连接池模式和非连接池模式相互转换修改。
  13. ## 暂不支持批处理请求
  14. https://www.arangodb.com/docs/stable/http/batch-request.html
  15. ## 编译
  16. rebar get-deps; rebar compile or rebar3 compile
  17. 注意:在windows平台编译jiffy,需要额外搭建相关编译环境,具体可参见:https://github.com/SisMaker/erlUtils/tree/master/src/docs
  18. ## 使用
  19. rebar: erl -pa ./ebin -pa ./deps/jiffy/ebin
  20. revar3: rebar3 shell
  21. 非连接池模式
  22. 先建立连接
  23. {ok, S} = agHttpCli:connect([]). %% 使用默认的配置
  24. 然后就可以使用S作为第一个参数调用各种API了
  25. agMgrDb:curDbInfo(S).
  26. 连接池模式
  27. application:ensure_all_started(erlArango). %%启动app
  28. agHttpCli:startPool(poolName, [], []). %%初始连接池
  29. 然后就可以使用poolName作为第一个参数调用各种API了
  30. agMgrDb:curDbInfo(poolName).
  31. ## TODO
  32. 将注释转为edoc格式