3

我只是在研究 OPA 并试图从传统的 LAMP 背景中实现飞跃,所以这是我的许多新手问题中的第一个:

我可以让两个 OPA 应用程序共享同一个数据库,比如说一个写入数据库,另一个从数据库读取?

4

1 回答 1

5

是的,这当然是可能的。一个简单但完整的例子:

[db.opa]

database ./counter
db /counter : int
Counter = {{
  read() = /counter
  inc() = /counter <- read() + 1
}}

[db_read.opa]

server = one_page_server("Counter app", -> <>Counter value: {Counter.read()}</>)

[db_write.opa]

_ = Scheduler.timer(1000, -> Counter.inc())

编译:

 opa db_read.opa db.opa -o db_read.exe
 opa db_write.opa db.opa -o db_write.exe

counter在端口上为数据库运行数据库服务器5001

 opa-db-server -b 127.0.0.1:5001 --db-local counter

运行应用程序,连接到这个数据库:

 ./db_read.exe --db-remote 127.0.0.1:5001
 ./db_write.exe --db-remote 127.0.0.1:5001

db_write应用程序每秒更新一次计数器。db_read您可以通过访问localhost:8080(并刷新页面)在应用程序中看到这一点。

希望 Opa-DB 专家在我有什么问题时能纠正我。

于 2011-07-27T10:39:02.473 回答