准备一个可以使用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上可以找到。

广告
将在 10 秒后关闭
bannerAds