日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

spring 配置只读事务_只读副本和Spring Data第1部分:配置数据库

發布時間:2023/12/3 javascript 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring 配置只读事务_只读副本和Spring Data第1部分:配置数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

spring 配置只讀事務

這是有關我們為利用只讀副本來提高應用程序性能而尋求的一系列博客文章。

對于這個項目,我們的目標是建立我們的spring數據應用程序,并使用read倉庫進行寫操作,并基于read副本進行讀操作。

為了模擬這種環境,我們將通過Docker使用PostgreSQL實例。

動機很簡單。 您的Spring應用程序變得越來越流行,并且您希望它處理更多的請求。 那里的大多數應用程序對讀操作而不是寫操作的需求更高。 因此,我認為您的應用程序屬于同一類別。
盡管SQL數據庫本身不能水平擴展,但是您可以通過使用只讀副本來使用它們。

我們的目標不是在PostgreSQL中進行實際的Read復制

因此,無需配置任何復制

我們將只從兩個數據庫中復制一些數據

這是我們將用來填充數據庫的腳本。

#!/bin/bash set -e psql -v ON_ERROR_STOP= 1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL create schema spring_data_jpa_example; create table spring_data_jpa_example.employee( id SERIAL PRIMARY KEY, firstname TEXT NOT NULL, lastname TEXT NOT NULL, email TEXT not null , age INT NOT NULL, salary real, unique(email) ); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( 'John' , 'Doe 1' , 'john1@doe.com' , 18 , 1234.23 ); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( 'John' , 'Doe 2' , 'john2@doe.com' , 19 , 2234.23 ); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( 'John' , 'Doe 3' , 'john3@doe.com' , 20 , 3234.23 ); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( 'John' , 'Doe 4' , 'john4@doe.com' , 21 , 4234.23 ); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( 'John' , 'Doe 5' , 'john5@doe.com' , 22 , 5234.23 ); EOSQL

由于我們將使用Docker和Docker Compose,因此將使用上面的腳本來初始化數據庫。 現在開始創建我們的Docker Compose堆棧。

version: '3.5' services: write-db: image: postgres restart: always environment: POSTGRES_USER: db-user POSTGRES_PASSWORD: your-password POSTGRES_DB: postgres networks: - postgresql-network ports: - "127.0.0.2:5432:5432" volumes: - $PWD/init-db-script.sh:/docker-entrypoint-initdb.d/init-db-script.sh read-db- 1 : image: postgres restart: always environment: POSTGRES_USER: db-user POSTGRES_PASSWORD: your-password POSTGRES_DB: postgres networks: - postgresql-network ports: - "127.0.0.3:5432:5432" volumes: - $PWD/init-db-script.sh:/docker-entrypoint-initdb.d/init-db-script.sh networks: postgresql-network: name: postgresql-network

如您所見,我們的配置非常簡單。 如果您足夠小心的話,您會看到我將數字分配給了讀數據庫。 這是因為將來我們將向其添加更多副本。

我還做的是將機器綁定到不同的本地ip。

如果您在綁定地址時遇到問題,例如127.0.0。*:5432
你應該試試

sudo ifconfig lo0 alias 127.0.0.2 up sudo ifconfig lo0 alias 127.0.0.3 up

如果不成功,則只需更改端口即可。 可能不那么方便,但是還可以。

因此,讓我們啟動并運行我們的Docker Compose堆棧。

docker-compose -f . /postgresql-stack .yaml up

我們必須能夠在兩個postgresql實例中查詢數據。

docker exec -it deploy_read-db-1_1 /bin/bash root@07c502968cb3:/ # psql -v --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" db-user= # select*from spring_data_jpa_example.employee; id | firstname | lastname | email | age | salary | firstname | lastname | email | age | salary ----+-----------+----------+---------------+-----+--------- 1 | John | Doe 1 | john1@doe.com | 18 | 1234.23 2 | John | Doe 2 | john2@doe.com | 19 | 2234.23 3 | John | Doe 3 | john3@doe.com | 20 | 3234.23 4 | John | Doe 4 | john4@doe.com | 21 | 4234.23 5 | John | Doe 5 | john5@doe.com | 22 | 5234.23 (5 rows)

我們已經為下一步做好了準備。 我們已經啟動了一些數據庫,并且正在運行,我們將在它們之上啟動一個spring應用程序。 下一個博客著重于實現在我們的主數據庫上運行的應用程序。

翻譯自: https://www.javacodegeeks.com/2019/10/read-replicas-spring-data-configuring-databases.html

spring 配置只讀事務

總結

以上是生活随笔為你收集整理的spring 配置只读事务_只读副本和Spring Data第1部分:配置数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。