Apache Pekko Persistence JDBC 项目教程

Apache Pekko Persistence JDBC 项目教程

pekko-persistence-jdbcAsynchronously writes journal and snapshot entries to configured JDBC databases so that Apache Pekko Actors can recover state项目地址:https://gitcode.com/gh_mirrors/pe/pekko-persistence-jdbc

1. 项目的目录结构及介绍

Apache Pekko Persistence JDBC 项目的目录结构如下:

pekko-persistence-jdbc/
├── src/
│   ├── main/
│   │   ├── java/
│   │   ├── resources/
│   │   └── scala/
│   └── test/
│       ├── java/
│       ├── resources/
│       └── scala/
├── project/
├── .gitignore
├── .scalafmt.conf
├── build.sbt
├── CONTRIBUTING.md
├── LICENSE
├── README.md
└── RELEASE-NOTES.md

目录结构介绍

  • src/main/java/src/main/scala/:包含项目的主要源代码,分别用 Java 和 Scala 编写。
  • src/main/resources/:包含项目的资源文件,如配置文件等。
  • src/test/java/src/test/scala/:包含项目的测试代码。
  • project/:包含 SBT 构建工具的配置文件。
  • .gitignore:Git 版本控制系统的忽略文件配置。
  • .scalafmt.conf:Scala 代码格式化配置文件。
  • build.sbt:SBT 构建脚本。
  • CONTRIBUTING.md:贡献指南。
  • LICENSE:项目许可证。
  • README.md:项目说明文档。
  • RELEASE-NOTES.md:发布说明。

2. 项目的启动文件介绍

项目的启动文件通常位于 src/main/scala/src/main/java/ 目录下。具体文件名和路径可能因项目结构而异。以下是一个示例启动文件的介绍:

package com.example

import akka.actor.ActorSystem
import akka.persistence.jdbc.query.scaladsl.JdbcReadJournal
import akka.persistence.query.PersistenceQuery

object Main extends App {
  // 创建 ActorSystem
  val system = ActorSystem("MyActorSystem")

  // 初始化持久化查询
  val readJournal = PersistenceQuery(system).readJournalFor[JdbcReadJournal](JdbcReadJournal.Identifier)

  // 启动应用程序逻辑
  // ...

  // 关闭 ActorSystem
  system.terminate()
}

启动文件介绍

  • ActorSystem:创建一个 Actor 系统实例。
  • JdbcReadJournal:初始化持久化查询,用于读取持久化数据。
  • system.terminate():关闭 Actor 系统。

3. 项目的配置文件介绍

项目的配置文件通常位于 src/main/resources/ 目录下。以下是一个示例配置文件的介绍:

pekko {
  persistence {
    journal {
      plugin = "jdbc-journal"
      auto-start-journals = ["jdbc-journal"]
    }
    snapshot-store {
      plugin = "jdbc-snapshot-store"
      auto-start-snapshot-stores = ["jdbc-snapshot-store"]
    }
    state {
      plugin = "jdbc-durable-state-store"
    }
  }
}

jdbc-journal {
  slick = ${slick}
}

jdbc-snapshot-store {
  slick = ${slick}
}

jdbc-read-journal {
  slick = ${slick}
}

jdbc-durable-state-store {
  slick = ${slick}
}

slick {
  profile = "slick.jdbc.PostgresProfile$"
  db {
    host = "localhost"
    url = "jdbc:postgresql://${pekko-persistence-jdbc.shared-databases.slick.db.host}:5432/docker?reWriteBatchedInserts=true"
    user = "docker"
    password = "docker"
    driver = "org.postgresql.Driver"
    numThreads = 5
    maxConnections = 5
    minConnections = 1
  }
}

配置文件介绍

  • pekko.persistence:配置持久化插件。
    • journal:配置日志插件。
    • snapshot-store:配置快照存储插件。
    • state:配置持久化

pekko-persistence-jdbcAsynchronously writes journal and snapshot entries to configured JDBC databases so that Apache Pekko Actors can recover state项目地址:https://gitcode.com/gh_mirrors/pe/pekko-persistence-jdbc

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牧唯盼Douglas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值