Neon -- AWS Aurora Postgres 的無服務(wù)器開源替代品
簡(jiǎn)介
Neon 是 AWS Aurora Postgres 的無服務(wù)器開源替代品。它將存儲(chǔ)和計(jì)算分開,并通過跨節(jié)點(diǎn)集群重新分布數(shù)據(jù)來替代 PostgreSQL 存儲(chǔ)層。 嘗試使用 Neon免費(fèi)套餐創(chuàng)建無服務(wù)器 Postgres 實(shí)例。然后使用您首選的 Postgres 客戶端(psql、dbeaver 等)連接到它或使用在線 SQL 編輯器。有關(guān)連接說明,請(qǐng)參閱從任何應(yīng)用程序連接。或者,在本地編譯并運(yùn)行該項(xiàng)目。
架構(gòu)概述
Neon 由計(jì)算節(jié)點(diǎn)和 Neon 存儲(chǔ)引擎組成。計(jì)算節(jié)點(diǎn)是由 Neon 存儲(chǔ)引擎支持的無狀態(tài) PostgreSQL 節(jié)點(diǎn)。
Neon 存儲(chǔ)引擎由兩個(gè)主要組件組成: Pageserver - 計(jì)算節(jié)點(diǎn)的可擴(kuò)展存儲(chǔ)后端。 Safekeepers - Safekeepers 形成一個(gè)冗余的 WAL 服務(wù),從計(jì)算節(jié)點(diǎn)接收 WAL,并將其持久存儲(chǔ),直到它被 Pageserver 處理并上傳到云存儲(chǔ)。
- https://github.com/neondatabase/neon
Rusqlite 使用 Rust 的 SQLite 包裝器
Rusqlite 是一個(gè)使用 Rust 的 SQLite 的符合人體工程學(xué)的包裝器。從歷史上看,該 API 是基于 rust-postgres. 然而,兩者在很多方面存在分歧,并且兩者之間不存在兼容性。
使用
在您的 Cargo.toml 中:
[dependencies] # `bundled` causes us to automatically compile and link in an up to date # version of SQLite for you. This avoids many common build issues, and # avoids depending on the version of SQLite on the users system (or your # system), which may be old or missing. It's the right choice for most # programs that control their own SQLite databases. # # That said, it's not ideal for all scenarios and in particular, generic # libraries built around `rusqlite` should probably not enable it, which # is why it is not a default feature -- it could become hard to disable. rusqlite = { version = "0.29.0", features = ["bundled"] }
簡(jiǎn)單示例用法:
use rusqlite::{Connection, Result}; #[derive(Debug)] struct Person { id: i32, name: String, data: Option<Vec<u8>>, } fn main() -> Result<()> { let conn = Connection::open_in_memory()?; conn.execute( "CREATE TABLE person ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, data BLOB )", (), // empty list of parameters. )?; let me = Person { id: 0, name: "Steven".to_string(), data: None, }; conn.execute( "INSERT INTO person (name, data) VALUES (?1, ?2)", (&me.name, &me.data), )?; let mut stmt = conn.prepare("SELECT id, name, data FROM person")?; let person_iter = stmt.query_map([], |row| { Ok(Person { id: row.get(0)?, name: row.get(1)?, data: row.get(2)?, }) })?; for person in person_iter { println!("Found person {:?}", person.unwrap()); } Ok(()) }
支持的 SQLite 版本
基礎(chǔ) rusqlite 包支持 SQLite 版本 3.14.0 或更高版本。如果您需要舊版本的支持,請(qǐng)?zhí)岢鰡栴}。一些貨物功能需要更新的 SQLite 版本;請(qǐng)參閱下面的詳細(xì)信息。
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9331瀏覽量
86131 -
編輯器
+關(guān)注
關(guān)注
1文章
806瀏覽量
31305 -
AWS
+關(guān)注
關(guān)注
0文章
433瀏覽量
24544 -
Rust
+關(guān)注
關(guān)注
1文章
230瀏覽量
6674
原文標(biāo)題:【Rust日?qǐng)?bào)】2023-08-16 Neon 基于 rust 的 AWS Aurora Postgres 的無服務(wù)器開源替代品
文章出處:【微信號(hào):Rust語言中文社區(qū),微信公眾號(hào):Rust語言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
MMBFJ176替代品??
如何使用ISP1763作為替代品?
Commodore 6540 ROM的替代品
MC908JL3ECDWE的替代品是什么?
看好無服務(wù)器計(jì)算市場(chǎng) AWS云應(yīng)用庫啟用
“無服務(wù)器”計(jì)算興起_AWS開啟云應(yīng)用庫
AWS發(fā)布新一代Amazon Aurora Serverless
AWS無服務(wù)器平臺(tái)
在AWS上實(shí)施無服務(wù)器微服務(wù)架構(gòu)
![在<b class='flag-5'>AWS</b>上實(shí)施<b class='flag-5'>無</b><b class='flag-5'>服務(wù)器</b>微<b class='flag-5'>服務(wù)</b>架構(gòu)](https://file.elecfans.com/web2/M00/7E/BC/poYBAGOHCIuAROZ8AAI9vCRV8oE439.png)
AWS無服務(wù)器平臺(tái)
AWS上的無服務(wù)器多層架構(gòu)
AWS無服務(wù)器平臺(tái)
Rust編寫的首個(gè)Postgres基礎(chǔ)Elasticsearch開源替代品問世
![Rust編寫的首個(gè)<b class='flag-5'>Postgres</b>基礎(chǔ)Elasticsearch<b class='flag-5'>開源</b><b class='flag-5'>替代品</b>問世](https://file1.elecfans.com/web2/M00/C1/7C/wKgaomXWwQWAL-KQAABaN_1x9e4755.png)
評(píng)論