歌海娜 葡萄的实现
Grenache是一个连接微服务的微框架。它的简单和优化的性能。
在内部,Grenache使用分布式哈希表(DHT, Bittorrent)进行点对点连接。你可以在网站上找到更多关于Grenche内部运作的细节 项目主页。
葡萄是歌海娜的主要原料。他们管理DHT,我们虚拟网络的基础。
安装
// Install global (run binary)
npm install -g grenache-grape
// Install locally to project (programmatic approach)
npm install --save grenache-grape
以二进制模式运行
grape --help
Usage: grape --dp <dht-port> --aph <http-api-port> --bn <nodes> [--b
bind-to-address]
Options:
-b, --bind Listening host [string]
--dp, --dht_port DHT listening port [number] [required]
--dc, --dht_concurrency DHT concurrency [number]
--dht_maxTables DHT max tables [number]
--dht_maxValues DHT max values [number]
--bn, --bootstrap Bootstrap nodes [string] [required]
--aph, --api_port HTTP api port [number] [required]
--dht_peer_maxAge, --dpa Max age for peers in DHT [number]
--cache_maxAge Maximum cache age [number]
--dnl, --dht_nodeLiveness Interval in ms to check for dead nodes [number]
--check_maxPayloadSize Limit for max payload size [number]
--help Show help [boolean]
--version Show version number [boolean]
// Run 3 Grapes
grape -b 127.0.0.1 --dp 20001 --dc 32 --aph 30001 --bn '127.0.0.1:20002,127.0.0.1:20003'
grape --dp 20002 --aph 40001 --dc 32 --bn '127.0.0.1:20001,127.0.0.1:20003'
grape --dp 20003 --aph 50001 --dc 32 --bn '127.0.0.1:20001,127.0.0.1:20002'
集成到您的代码中
const Grape = require('grenache-grape').Grape
const g = new Grape({
// host: '127.0.0.1', // if undefined the Grape binds all interfaces
dht_port: 20001,
dht_bootstrap: [
'127.0.0.1:20002'
],
api_port: 30001
})
g.start()
API
类:葡萄
新的葡萄(选项)
options<Object>链接的选项host<String>要绑定的IP。如果为空,则Grape绑定到所有接口dht_maxTables<Number> DHT表的最大数目dht_maxValues<Number> DHT值的最大数目dht_port<Number> DHT的端口号dht_concurrency<Number> DHT的并发性dht_bootstrap: <Array>启动服务器dht_peer_maxAge<Number> DHT对等体的maxAgeapi_port<Number>歌海娜API HTTP端口
事件:“准备好了”
DHT完全启动时触发。
事件:“听”
DHT正在监听时发出。
事件:“对等”
当找到潜在对等体时触发。
事件:“节点”
DHT发现新节点时触发。
事件:“警告”
当对等体宣布自己时发出,以便存储在DHT中。
事件:“宣布”
当对等体宣布自己时发出,以便存储在DHT中。
实现
node . js的客户
- https://github.com/bitfinexcom/grenache-nodejs-ws:基于WebSocket的Grape微服务
- https://github.com/bitfinexcom/grenache-nodejs-http:基于HTTP的Grape微服务
- https://github.com/bitfinexcom/grenache-nodejs-zmq:基于ZeroMQ的Grape微服务
Ruby客户
- https://github.com/bitfinexcom/grenache-ruby-ws:基于WebSocket的Grape微服务
- https://github.com/bitfinexcom/grenache-ruby-http:基于HTTP的Grape微服务
CLI的客户
- https://github.com/bitfinexcom/grenache-cli: Grape微服务的命令行接口