当前位置: 首页 > news >正文

室内设计网站配色app重庆豆花制作

室内设计网站配色app,重庆豆花制作,百度怎么发帖子,成都建设网页1 概述 对数据进行读写分离,可以将读流量从主数据库中剥离出来,进一步降低读操作对写操作的影响。读写分离的实现可以有多种方式,例如通过proxySQL、mycat等中间件来实现,也可以在应用进程内实现。本文介绍JAVA程序通过spring框架…

1 概述

对数据进行读写分离,可以将读流量从主数据库中剥离出来,进一步降低读操作对写操作的影响。读写分离的实现可以有多种方式,例如通过proxySQL、mycat等中间件来实现,也可以在应用进程内实现。本文介绍JAVA程序通过spring框架和mybatis框架对mysql主从集群进行读写分离。

2 程序思路

1)配置文件写入两个或以上的数据源。
在这里插入图片描述


2)javax.sql.DataSource是一个接口,实现类org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource具备一个按照一个字符串key选择一个具体数据源的能力。mybatis框架会自动使用该实现类,只需要在该类增加@Primary。
在这里插入图片描述
考虑到取出key是并发的,需要使用到ThreadLocal类。
在这里插入图片描述


3)对mapper的方法新增一个切面
在这里插入图片描述

4)mapper保持不变即可
在这里插入图片描述

3 完整程序git地址

https://gitee.com/handsomeboylj/read-write-apart-demo.git

4 部署

4.1 准备一个kubernetes集群

在华为云购买一个集群即可。
在这里插入图片描述


4.2 安装helm

cd /tmp
wget https://get.helm.sh/helm-v3.16.2-linux-amd64.tar.gz
tar xf helm-v3.16.2-linux-amd64.tar.gz
cd linux-amd64
/bin/cp -f helm /usr/bin/
helm env
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

4.3 通过helm部署mysql 8.0主从集群

由于用于测试,数据库不需要持久化。
数据库root密码是:password,并自动创建名称叫demo的数据库。

helm install mysql-ha-demo bitnami/mysql \
--set auth.rootPassword=my-secret-pw \
--set auth.database=demo \
--set auth.replicationUser=repuser \
--set auth.replicationPassword=reppassword \
--set primary.persistence.enabled=false \
--set secondary.persistence.enabled=false \
--set auth.rootPassword=password \
--set architecture=replication

在这里插入图片描述

4.4 部署JAVA程序

git clone https://gitee.com/handsomeboylj/read-write-apart-demo.git
cd read-write-apart-demo
kubectl apply -f k8s-demo.yaml

在这里插入图片描述
JAVA程序的deployment有一个init容器,会对数据库进行初始化,有数据直接可用。

程序的接口如下:
读接口:

GET /api/users/1RESPONSE:
{"id": 1,"name": "Alice","age": 25
}

写接口:

POST /api/users
{"name":"test","age":30}

4.5 Ingress暴露JAVA程序

在这里插入图片描述
路由如下:
在这里插入图片描述

5 测试

5.1 读接口测试

在浏览器访问ELB的公网地址和接口路径:
在这里插入图片描述
JAVA程序中会打印日志:

数据库切换成: slave

在这里插入图片描述

5.2 写接口测试

curl -X POST -H "Content-Type: application/json" -d '{"name":"test","age":20}' http://公网EIP/api/users && echo

在这里插入图片描述
可见JAVA程序中会打印日志:

数据库切换成: master

6 小结

本文介绍JAVA程序对mysql数据库进行读写分离的思路、代码实现,并且通过部署一套mysql集群和JAVA程序容器来进行实际测试,让人达到直观的效果。

http://www.dtcms.com/a/514389.html

相关文章:

  • 网站建设协议一百互联网站建设与规划总结怎么写
  • 制作企业网站的流程工业设计公司名称大全
  • 好用的免费网站wordpress手机版注册
  • 手机网站模板 优帮云全球知名电子商务网站统计
  • 怎么查询网站的服务器在哪里订阅号上链接的网站怎么做的
  • 网站服务器连接被重置网站更换主机
  • 高校网站建设重要作用成都公司做网站
  • 网站开发的费用申请上海艺佳建设发展有限公司网站
  • 制造业外贸营销网站建设高端网站设计哪家好
  • 1 建设网站目的是什么中国建筑
  • 建筑方案设计包括什么淄博网站排名优化
  • 泰安网站制作推荐学校网站建设开发项目计划报告
  • 运营商查浏览网站办公室装修设计怎么收费
  • 做加盟代理的网站设计和建设一个网站要多少钱
  • 佛山网站建设骏域网站建设专家库存进销存管理软件
  • 公司做网站选择哪个公司好哈尔滨网站设计哪里有做
  • 泰州网站制作专业房屋建筑设计网站
  • 常州网站建设思创网络加速wordpress 插件
  • 网站开发包做娱乐网站需要哪些
  • 有没有免费的企业网站建设电商首页设计规范
  • 个人网站开发赚钱方向wordpress原创企业主题
  • 济南海绵城市建设官方网站wordpress主题免刷新
  • 网站开发架构师如何在网站标题加logo
  • 成功案例 品牌网站企业所得税优惠政策最新2023上海
  • 上饶招聘网站建设公司开发公司送物业费的协议
  • 凯里网站开发gzklyy怎么判断一个网站做的好
  • 北京建设部官方网站证书查询个人住房公积金贷款
  • 安徽建设工程协会网站购物网站建设需要公司营业执照吗
  • 如何用云服务器做网站网站备案审核需要多久
  • 局机关网站建设网站清理通知