我只是在调查OPA,试图从传统的LAMP背景中实现飞跃,所以这是我的第一个新手问题:
我是否可以拥有两个共享相同数据库的OPA应用程序,比如一个写入数据库,另一个从中读取数据库?
答案 0 :(得分: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专家会纠正我。