准备一个可以使用Redis的otto环境
总之
Otto在原生支持微服务架构。
将依赖的服务写入Appfile后,将在Vagrant上的Docker中启动。
有关MongoDB的示例可用,但没有关于Redis的示例。我只是模仿写的。
MongoDB的例子
这里有MongoDB的一个样本例子。
application {
name = "otto-getting-started"
type = "ruby"
dependency {
source = "github.com/hashicorp/otto/examples/mongodb"
}
}
可以参考GitHub上关于MongoDB的配置。内容如下。
application {
name = "mongodb"
type = "docker-external"
}
customization {
image = "mongo:3.0"
run_args = "-p 27017:27017"
}
是的。
创建Redis的Appfile
由于缺乏Redis的范例,我会自己模仿进行编写。
应用文件
application {
name = "otto-getting-started"
type = "node"
dependency {
source = "./redis"
}
}
在依赖项中,也可以指定本地目录。
Redis目录
在redis目录下准备一个Appfile和.ottid文件。
application {
name = "redis"
type = "docker-external"
}
customization "docker" {
image = "redis:3.0"
run_args = "-p 6379:6379"
}
MongoDB和它几乎一样。
-
- image名の修正
- ポートをRedisのデフォルトポートに修正
在otto 0.1.2版本中,没有使用.ottid。
然而,它在未来的版本管理中是必需的。
如果没有它,会出现错误。
我们将准备一个空文件。
touch .redis/.ottid
确认动作
确认动作。
启动流浪者
otto compile
otto dev
确认连接
在指定的依赖中,可以通过name.service.consul这个完全限定域名(FQDN)引用服务。在本例中,使用的是redis.service.consul。
我将登录到已启动的虚拟环境。
otto dev ssh
npm(Node Package Manager)
使用Node.js的redis客户端比安装redis-cli麻烦。
安装node_redis并启动Node.js。
npm i redis
node
执行下面的JavaScript代码。
const redis = require('redis')
const redisClient = redis.createClient('redis://redis.service.consul')
redisClient.set("string key", "string val", redis.print)
执行结果
vagrant@precise64:/vagrant$ npm i redis
redis@2.4.2 node_modules/redis
├── double-ended-queue@2.1.0-0
└── redis-commands@1.0.1
vagrant@precise64:/vagrant$ node
> var redis = require('redis')
undefined
> var redisClient = redis.createClient('redis://redis.service.consul')
undefined
> redisClient.set("string key", "string val", redis.print);
true
> Reply: OK
rdis-cli: Redis命令行界面
如果您要使用rdis-cli进行确认,请参考“安装:如何安装redis-tools”的方式。
将 `sources.list` 文件添加一行 `deb http://us.archive.ubuntu.com/ubuntu trusty main universe`。
sudo vi /etc/apt/sources.list
安裝
sudo apt-get update
sudo apt-get install redis-tools
连接
redis-cli -h redis.service.consul
请注意
在重新创建虚拟环境时,有时无法通过redis.service.consul连接到Redis。
请在进行otto dev之前每次都执行otto compile。
我根据这个评论作了参考。我不明白为什么需要 Otto Compile。
源代码
在GitHub上可以找到。