iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0

MongoDB 是現在廣泛使用到的 NoSQL 資料庫。 Quarkus 這邊用 Panache 提供了一個新存取層且跟 Kotlin 整合的很好。今天主要準備會把 第六天 的 RESTful 的資料來源改成接 MongoDB,MongoDB 有很多種起法,不過 Quarkus 會幫我們準備好,所以就不用擔心,跟著下面的操作一起上手吧!

安裝 MongoDB Dependency

今天我的專案需要 mongoDB 的 support, 該如果找起呢。很簡單,Quarkus CLI 可以幫你找。在專案的folder 下輸入

quarkus ext list -i -s mongo

列出來了 quarkus-mongodb-panache-kotlin : MongoDB with Panache for Kotlin
https://ithelp.ithome.com.tw/upload/images/20220913/20135701iQ4H6Hijnw.png

看起來這個就是天選之人,就是他了。來安裝吧!

quarkus ext add quarkus-mongodb-panache-kotlin

https://ithelp.ithome.com.tw/upload/images/20220913/20135701qvhwYlMQOa.png

啟動 podman socks

Quarkus 會需要 docker host ,所以要先準備好 podman 服務在背景。下面為每次重開 wsl instance 一次性的工作

podman system service -t 0 unix:///tmp/podman.sock &
export TESTCONTAINERS_RYUK_DISABLED=true
export DOCKER_HOST=unix:///tmp/podman.sock

打開 IntelliJ 專案

打開專案,先檢示 pom.xml 其實剛剛的 ext add 就只是幫你加上dependency

    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-mongodb-panache-kotlin</artifactId>
    </dependency>

我們先執行專案 quarkus:dev。觀察 log 可以發現他幫我們用 podman 起了 mongodb, 立即可以用。

https://ithelp.ithome.com.tw/upload/images/20220913/20135701puig3L5TW6.png

那如果下面噴了 cni keyword 的 error,表示 Ubuntu 22.04 iptable 方式太新。 podman 跟還不支援,需執行

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy

https://ithelp.ithome.com.tw/upload/images/20220913/20135701vIF5Zs5PSg.png


想不到環境搞完也差不多一篇。不過今天設定好,之後要開發新增其他 extension 就會輕鬆很多。尤其今天還學了 quarkus cli 怎麼尋找套件的方式,這樣以後要尋找 jdbc, kafka, redis 常見的 backend service 支援就會很容易。那我們就明天就來實際用 kotlin access mongodb 吧。


上一篇
讓 Quarkus RESTful 服務變的 100 分 - Day6
下一篇
Reactive MongoDB Access with Kotlin - Day8
系列文
Quarkus, Kotlin, Reactive 雲原生服務開發32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言