c2c电商平台网站,优化wordpress后台速度,正确的网址格式,茶叶有什么网站可以做推广spring 配置只读事务这是有关我们为利用只读副本来提高应用程序性能而寻求的一系列博客文章。 对于这个项目#xff0c;我们的目标是建立我们的spring数据应用程序#xff0c;并使用read仓库进行写操作#xff0c;并基于read副本进行读操作。 为了模拟这种环境#xff0c… 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 lt;lt;-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 , john1doe.com , 18 , 1234.23 ); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( John , Doe 2 , john2doe.com , 19 , 2234.23 ); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( John , Doe 3 , john3doe.com , 20 , 3234.23 ); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( John , Doe 4 , john4doe.com , 21 , 4234.23 ); insert into spring_data_jpa_example.employee (firstname,lastname,email,age,salary) values ( John , Doe 5 , john5doe.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 root07c502968cb3:/ # 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 | john1doe.com | 18 | 1234.23 2 | John | Doe 2 | john2doe.com | 19 | 2234.23 3 | John | Doe 3 | john3doe.com | 20 | 3234.23 4 | John | Doe 4 | john4doe.com | 21 | 4234.23 5 | John | Doe 5 | john5doe.com | 22 | 5234.23 (5 rows) 我们已经为下一步做好了准备。 我们已经启动了一些数据库并且正在运行我们将在它们之上启动一个spring应用程序。 下一个博客着重于实现在我们的主数据库上运行的应用程序。 翻译自: https://www.javacodegeeks.com/2019/10/read-replicas-spring-data-configuring-databases.htmlspring 配置只读事务