当前位置:首页 > 技术文章 > 正文内容

动态切换数据库连接方案(动态切换数据库连接方案怎么设置)

arlanguage3个月前 (01-31)技术文章23

引言

  • 需求: 查询SQL Server数据库的时候可以根据实际情况分配服务器来提供服务,大大提高服务速度和优化性能,完成负载均衡。
  • 方案:推荐从数据库服务端做集群
  1. 数据库服务器:
  • 例如SQL Server数据库可以采用ICX 动态路由,所有的数据库客户都通过ICX访问数据库。
  • SQL Server的Always On 故障转移群集
  • Moebius for SQL server
  1. 数据库客户端:
  • 使用nginx-upsync-module模块配置Nginx以实现sql server 数据库负载均衡
  • 使用数据库时,先从数据库实例状态表查询可用的数据库连接信息
  • 书写脚本,修改数据库连接信息,手动切换。

I 案例:手动切换数据库配置

存储数据库配置信息

基于spring.profiles.include属性加载不同的配置文件

配置方法:

  1. 若是properties文件:spring.profiles.include=dev1,dev2

配置spring.profiles.active=dev,
application-dev.properties中,配置spring.profiles.include=dev1,dev2。使用
application-dev.properties时自动就激活了dev1、dev2两个文件

控制台打印The following profiles are active:dev, dev1,dev2

  1. 若是yaml文件中

spring
profiles
include:
-dev1
-dev2

书写切换脚本

切换到15数据库

#!/bin/bash
sed -i 's/include: 18jdbc/include: 15jdbc/g'
/usr/local/bttomcat/tomcat9/webapps/xx/WEB-INF/classes/application-prod.yml

#-i选项会直接在文件上进行修改。
# 重启tomcat服务

/etc/rc.d/init.d/bttomcat9 stop && /etc/init.d/bttomcat9 start 2> /dev/null

切换到18数据库脚本touch 18jdbc.sh; chmod a+x 18jdbc.sh

#!/bin/bash
sed -i 's/include: 15jdbc/include: 18jdbc/g'
/usr/local/bttomcat/tomcat9/webapps/xx/WEB-INF/classes/application-prod.yml

#-i选项会直接在文件上进行修改。
# 重启tomcat服务

/etc/rc.d/init.d/bttomcat9 stop && /etc/init.d/bttomcat9 start 2> /dev/null

II 知识扩展

使用sed命令替换文件内容

将文件filename中所有出现的oldtext替换为newtext。

sed -i 's/old_text/new_text/g' filename
#-i选项会直接在文件上进行修改。

激活环境配置文件

命名规则遵循application-${profile}.properties,例如:

  • 开发环境配置文件:application-dev.properties
  • 测试环境配置文件:application-test.properties
  • 生产环境配置文件:application-prod.properties

#激活的是开发环境配置文件
spring.profiles.active=dev

执行有参启动时,可以在命令中进行指定要选用的配置文件

java -jar xx.jar --spring.profiles.active=test

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/1400.html

分享给朋友:

“动态切换数据库连接方案(动态切换数据库连接方案怎么设置)” 的相关文章

修改配置nginx限制无良爬虫频率

我们公司某些服务也经常被爬虫影响,例如贴吧在贴吧这个事故中,我是简单地匹配useragent,给它返回一个500的错误。今天看微博发现@金荣叶 的处理方法很灵活,可以动态设定一个爬虫的频率,达到减轻服务器负载,并且不至于封杀爬虫。#全局配置limit_req_zone $anti_spider zo...

Nginx 支持 JavaScript 了 nginx支持php吗

简介Nginx 作为一款高性能的 Web 服务器,其功能可以通过多种模块进行扩展。其中,NJS 模块为 Nginx 提供了强大的 JavaScript 处理能力,使得开发者可以在服务器端使用 JavaScript 进行复杂的逻辑处理。本文将详细介绍如何在 Nginx 中安装和使用 NJS,并通过具体...

Windows中使用Nginx解决前后端分离部署中的跨域问题

说明现在的Java Web项目好多都使用前后端分离的开发部署方式,这样的好处有很多,比如:可以实现真正的前后端解耦,可以减少后端服务器的并发/负载压力,方便实现多端应用(网页端、移动端共用一个后台服务)、增加代码的维护性&易读性。一般我们会采用Nginx来部署前端代码,使用Tomcat来部署后台服务...

Linux非root用户安装及配置Nginx

该文章用到了2次root权限,其中有一次root权限是没有必要用的,小编会在文章中进行说明。一、安装前置依赖gcc编译器(第一次需要root权限)这里我没有研究非root用户安装(因为太麻烦了),后面我会单独出一篇文章,讲解非root用户安装gcc编译器。直接使用su - 切换到root用户下面,使...

安装Code-server并配置用于多用户的反向代理(Nginx)

1.安装code-servercode-server的项目网址在cdr/code-server.在code-server的README中, 提供了两份部署指南, 一份是用于部署在AWS等云服务的deploy, 另一份则是我们要用的用于部署在本地的quickstart.Guide非常简洁明了, 就三步...

给你的Nginx加个防火墙

引言朋友的一个 WordPress 站经常访问慢。看了一下日志,发现整天被扫描网站目录,如phpmyadmin 或者 SQL 文件,和被 CC攻击。找了一下,发现 ngx_lua_waf 是个不错的方案,但是太久不更新了,而且代码我看不懂,猝最后找到 oneinstack 一键包内置的 ngx_lu...