- redhat7分区大小调整
jsons1
linux
1.接手公司服务器,/tmp只有20G,经常爆盘100%2.貌似没有centos一样,有逻辑卷的显示[root@simsrv1~]#pvdisplay[root@simsrv1~]#vgdisplay[root@simsrv2~]#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTsda8:002.6T0disk├─sda18:10499.5M0part/boot/efi
- Input输入数字自动转千分位进行展示(拿来即用的完美组件)
【金融科技蚂蚁】
#前端组件库vue.js前端javascriptelementuihtml
一、前言实际的页面开发中,需要输入金额类型的输入框比较常见,这类输入框根据实际的业务场景都是要进行个性化的组件封装,本文借助自己封装的一个输入框组件NumberToAmount.vue来讲述el-input输入框中数值与金额格式的互换方法,组件包含的功能如下:1、限制了输入框只允许输入数字和小数点;2、如果输入了非法数值,比如123.45.678,则自动替换为0;3、限制了输入的最大金额为9999
- vue项目页面不同分辨率适配
_初见.
css3vue.jshtml
首先下载lodash插件npmilodash-S然后在App.vue中导入import_from'lodash'给app容器挂上ref=“app”在mounted使用如下方法(其中的1080以及1920为定义的画布尺寸)exportdefault{name:"App",mounted(){this.$nextTick(()=>{const$app=this.$refs.app;//设置屏幕百分比尺
- vue2大屏适配
H30919
javascript前端vue.js
新建组件FullContainerexportdefault{name:'FullContainer',mounted(){this.initSize();window.addEventListener('resize',this.setScale);},beforeDestroy(){this.recoverSize();window.removeEventListener('resize',t
- 16 Docker容器存储架构:docker存储持久化-volume
superman超哥
Docker从入门到精通docker容器云计算
文章目录二、docker存储持久化-volume2.1创建一个卷2.2查看卷信息2.3查看卷挂载信息2.4查看卷的mount源2.5进入路径,修改主页文件2.6查看挂载类型2.7创建基于dockervolume的container镜像2.8删除容器2.9删除dockervolume2.10重新使用volume容器镜像部署容器2.11只读挂载2.11.1先创建volume卷2.11.2对volume
- Nuxt3如何对顶层div的部分style客户端渲染?
chrome-devtools
Nuxt3如何对顶层div的部分style客户端渲染?vue版本"^3.5.13",nuxt3版本"^3.16.2"Nuxt3对于客户端部分的代码可以使用,那如果是要在顶层div读取clientWidth的值呢,那不是得,那这样岂不是全部都成客户端渲染了。需求是要在顶层div判断是否宽度小于一定的值,小于一定的值的时候改成页面黑底白字。以下是代码import{ref,onMounted}from'
- 动态规划(详解)
翻身的咸鱼ing
算法动态规划数据结构算法
动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类。背包问题:01背包问题,完全背包问题,分组背包问题,二维背包等动态规划的一般解题步骤:明确「状态」->定义dp数组/函数的含义->明确「选择」->明确basecase。以Leetcode322为例先确定「状态」,也就是原问题和子问题中变化的变量。由于硬币数量无限,所以唯一的状态就是目标金额amount。然后确定dp函数的定义:当前的目标
- Vue3 实现扫码枪监听与二维码解析
梦的晓析者
typescriptjavascript前端
以下是一个基于Vue3的扫码枪监听与二维码解析的完整实现。通过监听键盘事件,识别扫码枪输入的内容,并对二维码数据进行解析和处理。代码实现import{ref,onMounted}from'vue';import{ElMessage}from'element-plus';//定义扫码结果的响应式变量constscannedBarcode=ref('');//定义全局变量letbarCode='';l
- CZX前端秘籍2
C先生20190721
哈哈哈前端vue.jsjavascript
vue生命周期(组件从创建到销毁的过程就是它的生命周期)创建前beforeCreat(在这个阶段属性和方法都不能使用)创建时created(这里时实例创建完成之后,在这里完成了数据监测,可以使用数据,修改数据,不会触发updated,也不会更新视图)挂载前beforeMount(完成了模板的编译,虚拟DOM也完成创建,即将渲染,修改数据,不会触发updated)挂载时Mounted(把编译好的模板
- vue3并发请求Promise.all和Promise.allSettled
BillKu
前端javascriptvue.js
在Vue3中,使用Promise.all处理并发请求可以高效地并行获取数据。以下是实现步骤和示例:步骤说明生命周期钩子:在onMounted中触发请求,确保组件挂载后执行。响应式状态:使用ref或reactive管理数据、加载状态和错误信息。并发请求:通过Promise.all并行发送请求,优化加载时间。错误处理:统一处理错误,或使用Promise.allSettled单独处理每个请求的结果。请求
- Vue3中AbortController取消请求的用法详解
BillKu
vue.js前端javascript
在Vue3中,AbortController用于取消fetch请求,避免组件卸载后仍执行异步操作导致的潜在问题(如内存泄漏或更新已销毁组件的状态)。以下是详细用法和最佳实践:一、基本用法创建AbortController实例在组件setup()中创建实例,并通过signal关联请求:javascriptimport{onUnmounted}from'vue';exportdefault{setup
- centos挂载新硬盘
冰川_
Linuxlinux
#取消挂载umount/dev/sdb#创建主分区fdisk/dev/sdb#碰到输入大小的默认回车#n是创建分区,p是创建主分区,w是保存#创建新的物理卷pvcreate/dev/sdb1vgcreatehdd01/dev/sdb1
- Nuxt3 提示Hydration completed but contains mismatches
凉豆菌
Nuxt3前端javascript开发语言
原因:这个提示的意思是,服务器渲染(SSR)的结果与你完成加载后显示的内容不同。多半是由于你在浏览器里加载了一些数据,比如localStorage,或者一些全局变量,然后页面就被重新渲染了。比如我遇到这个问题时,就是因为直接在setup里引用了全局变量,导致报错。解决方法:在onMounted中去渲染数据consta=ref()consttest=ref()onMounted(()=>{a.val
- vue 天地图 T is not defined
Simaoya
vue前端javascriptvue.js
关于vue引用天地图报错Tisnotdefined总结首先试过了timeout的方法,但可能是个人情况不一样,并没有解决该问题后面看到了另一位大佬文章里面的相关注释才知道仅仅只差了一行代码首先试过了timeout的方法,但可能是个人情况不一样,并没有解决该问题mounted(){setTimeout(index=>{this.onLoad()},500)}onLoad(){this.map=new
- 【leetcode100】零钱兑换Ⅱ
SsummerC
leetcode100算法数据结构leetcodepython动态规划
1、题目描述给你一个整数数组coins表示不同面额的硬币,另给一个整数amount表示总金额。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回0。假设每一种面额的硬币有无限个。题目数据保证结果符合32位带符号整数。示例1:输入:amount=5,coins=[1,2,5]输出:4解释:有四种方式可以凑成总金额:5=55=2+2+15=2+1+1+15=1+1+1+1
- RMAN异机恢复
施嘉伟
RMAN备份恢复数据库oraclerman
一、说明1.背景原数据库为11gRAC环境(11.2.0.4),操作系统为Linux。目标新库为11g(11.2.0.4)单机,操作系统为Linux。2.步骤序号步骤1备份原数据库2传输备份文件到备机3原库上创建pfile并传输给备机4备份库更改pfile,去掉原来rac的参5启动备库到nomount状态6恢复控制文件7启动到mount,注册备份信息8检测备份信息9还原数据文件10备份还原增量归档
- Docker存储策略深度解析:临时文件 vs 持久化存储选型指南
思扬0928
docker容器运维
Docker存储策略深度解析:临时文件vs持久化存储选型指南一、存储类型全景对比二、临时存储适用场景与风险2.1最佳使用案例2.2风险警示三、持久化存储技术选型3.1Volume核心优势Volume管理命令:3.2BindMount适用边界挂载模式对比:四、生产环境存储架构设计4.1分布式存储方案4.2存储性能优化五、灾难恢复与数据迁移5.1Volume备份策略5.2跨主机迁移流程六、存储安全加固
- 清理HiNas(海纳斯) Docker日志并限制日志大小
SimonLiu009
#Dockerdockerjava容器
我在一个机顶盒的HiNas系统上跑Octoprint的docker版本,每隔一段时间盒子空间就被占完了,运行df-h之后,显示/dev/rootUse100%。FilesystemSizeUsedAvailUse%Mountedon/dev/root6.6G6.6G0100%/devtmpfs466M0466M0%/devtmpfs466M0466M0%/dev/shmtmpfs94M12M82M
- vue3 + element-plus 设置表格自动滚动
goods_yao
vue.jselementui前端
el-table中设置ref,用来获取元素,必须设置高度才可以滚动,鼠标放上停止自动滚动,可手动滚动,鼠标离开自动滚动import{ref,onMounted,onUnmounted}from'vue'lettimer=nullletmyTable=ref(null)constclearScroll=()=>{clearInterval(timer)timer=null}constcreateSc
- Vue3 elmentUi table 自动滚动
步侗
前端javascript
constscrollTable=ref()constscrollTimer=ref()onMounted(()=>{autoScroll(true)})//表格自动轮播constautoScroll=(isScroll)=>{consttable=scrollTable.value.layout.table.refsconsttableWrapper=table.bodyWrapper.firs
- adb常用命令20250408
dpxiaolong
rockchip技巧adb
创建文件夹,挂载dvd光驱,从/dev/block/sr0挂载到/sdcard/cdrommkdir-p/sdcard/cdrommount/dev/block/sr0/sdcard/cdrom取消挂载umount/mnt/cdrom回到桌面adbshellamstartcom.android.launcher3/.uioverrides.QuickstepLauncher查看app安装路径pmp
- 2025-04-25:移山所需的最少秒数。用go语言,给定一个整数 mountainHeight,代表一座山的高度。 还有一个整数数组 workerTimes,其中每个元素表示对应工人完成单位高度降低
福大大架构师每日一题
福大大架构师每日一题golangjava算法
2025-04-25:移山所需的最少秒数。用go语言,给定一个整数mountainHeight,代表一座山的高度。还有一个整数数组workerTimes,其中每个元素表示对应工人完成单位高度降低所需的时间(单位为秒)。工人必须同时开始工作以降低山的高度。对于第i个工人,如果他降低了高度为x,那么他所花费的时间是:workerTimes[i]*(1+2+…+x)=workerTimes[i]*(x*
- fabric.js自定义笔刷自由绘制(考虑画布缩放和平移)
vue3typescript
import{Plus,Close,ArrowLeftBold}from'@element-plus/icons-vue'import{onMounted,ref,reactive,onUnmounted,nextTick,unref,computed}from'vue'import{calculateScaledDimensions}from'@/hooks/web/usePictureSize
- html/vue网页修改页面标题
一只欢喜
HTMLCSSJS和jQ的前端开发应用Vue项目知识及问题集合vue.jshtmljavascript
html直接在title标签内修改标题vue先设置一个计算属性,然后组件加载的时候,直接将属性赋值给document.title,达到修改标题的目的。exportdefault{computed:{pageTitle(){return'标题';}},mounted(){document.title=this.pageTitle;}}
- ubuntu的各种工具配置
无敌 喵星人
windowslinux运维
1.nfs:虚拟机桥接模式下,开发板和虚拟机保持在同一网段下,开发板不要直连电脑挂载命令:mount-v-tnfs192.168.110.154:/home/lhj/mnt-onolock(1)安装NFS服务器sudoaptupdatesudoaptinstallnfs-kernel-server-y(2)创建共享目录并设置权限sudomkdir-p/mnt/nfs_sharesudochownn
- k8s的yaml文件里的volume跟volumeMount的区别
时迁247
云原生kubernetes容器云原生
volume是Pod级别的资源,用于定义存储卷。它是一个独立于容器的存储资源,可以被一个或多个容器共享使用。volume的定义位于Pod的spec.volumes部分。特点独立性:volume是Pod的一部分,而不是容器的一部分。它独立于容器的生命周期,即使容器被销毁,volume的数据仍然可以保留。共享性:同一个Pod中的多个容器可以共享同一个volume,从而实现容器之间的数据共享。多种类型:
- 关于linux下挂载报错:CIFS VFS: No username specified的问题处理
weixin_33860147
运维操作系统
在此先说一下mount.cifs挂载常用的几种方法可以直接手动挂载:#mount-tcifs-ousername=,password=//192.168.10.10/sharedir/mnt/dir也可以写到fstab文件中随机自动挂载://192.168.10.10/sharedir/mnt/dircifsdefaults,username=,password=00但是直接将用户名和密码写在fs
- vue3实现记住密码功能
嘤嘤嘤小主
vue.jsjavascript前端
思路:1.判断记住密码的复选框是否勾选2.如果勾选了,需要将用户名和密码存入本地(一般存在cookie中需要使用Base64进行加密)3.在onMounted中查询cookie中是否有用户名密码(使用Base64解密),将解密出的数据赋值给form中的数据即可实现记住密码重点import{Base64}from'js-base64'importCookiesfrom'js-cookie'//转码c
- busybox命令大全
shanzhizi
Linuxlinux正则表达式command网络linux内核insert
busybox命令大全BusyBox是标准Linux工具的一个单个可执行实现。BusyBox包含了一些简单的工具,例如cat和echo,还包含了一些更大、更复杂的工具,例如grep、find、mount以及telnet。有些人将BusyBox称为Linux工具里的瑞士军刀.简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令。1、BusyBox的诞生BusyBox最初是
- vue中实现当文本超长时,中间显示省略点,两端文字显示
亦双城的双子娴
javascriptvue.js
最近做一个资源共享的需求,要求将资源名称,共享目标人的工号一定要显示出来,也就是文本超长,显示省略点,但是如果使用css,文本超长省略号会在末尾显示,因此利用js截取来实现//获取字体是为了计算文本所占用的宽度,必须传递一个dom节点,随便选择一个即可,因为系统的字体都是一样的mounted(){//获取系统字体this.getFontFamily(document.getElementById(
- SQL的各种连接查询
xieke90
UNION ALLUNION外连接内连接JOIN
一、内连接
概念:内连接就是使用比较运算符根据每个表共有的列的值匹配两个表中的行。
内连接(join 或者inner join )
SQL语法:
select * fron
- java编程思想--复用类
百合不是茶
java继承代理组合final类
复用类看着标题都不知道是什么,再加上java编程思想翻译的比价难懂,所以知道现在才看这本软件界的奇书
一:组合语法:就是将对象的引用放到新类中即可
代码:
package com.wj.reuse;
/**
*
* @author Administrator 组
- [开源与生态系统]国产CPU的生态系统
comsci
cpu
计算机要从娃娃抓起...而孩子最喜欢玩游戏....
要让国产CPU在国内市场形成自己的生态系统和产业链,国家和企业就不能够忘记游戏这个非常关键的环节....
投入一些资金和资源,人力和政策,让游
- JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
商人shang
jvm内存
jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。
HotSpot虚拟机GC算法采用分代收
- 页面上调用 QQ
oloz
qq
<A href="tencent://message/?uin=707321921&Site=有事Q我&Menu=yes">
<img style="border:0px;" src=http://wpa.qq.com/pa?p=1:707321921:1></a>
- 一些问题
文强chu
问题
1.eclipse 导出 doc 出现“The Javadoc command does not exist.” javadoc command 选择 jdk/bin/javadoc.exe 2.tomcate 配置 web 项目 .....
SQL:3.mysql * 必须得放前面 否则 select&nbs
- 生活没有安全感
小桔子
生活孤独安全感
圈子好小,身边朋友没几个,交心的更是少之又少。在深圳,除了男朋友,没几个亲密的人。不知不觉男朋友成了唯一的依靠,毫不夸张的说,业余生活的全部。现在感情好,也很幸福的。但是说不准难免人心会变嘛,不发生什么大家都乐融融,发生什么很难处理。我想说如果不幸被分手(无论原因如何),生活难免变化很大,在深圳,我没交心的朋友。明
- php 基础语法
aichenglong
php 基本语法
1 .1 php变量必须以$开头
<?php
$a=” b”;
echo
?>
1 .2 php基本数据库类型 Integer float/double Boolean string
1 .3 复合数据类型 数组array和对象 object
1 .4 特殊数据类型 null 资源类型(resource) $co
- mybatis tools 配置详解
AILIKES
mybatis
MyBatis Generator中文文档
MyBatis Generator中文文档地址:
http://generator.sturgeon.mopaas.com/
该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。
本文使用Markdown进行编辑,但是博客显示效
- 继承与多态的探讨
百合不是茶
JAVA面向对象 继承 对象
继承 extends 多态
继承是面向对象最经常使用的特征之一:继承语法是通过继承发、基类的域和方法 //继承就是从现有的类中生成一个新的类,这个新类拥有现有类的所有extends是使用继承的关键字:
在A类中定义属性和方法;
class A{
//定义属性
int age;
//定义方法
public void go
- JS的undefined与null的实例
bijian1013
JavaScriptJavaScript
<form name="theform" id="theform">
</form>
<script language="javascript">
var a
alert(typeof(b)); //这里提示undefined
if(theform.datas
- TDD实践(一)
bijian1013
java敏捷TDD
一.TDD概述
TDD:测试驱动开发,它的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。
- [Maven学习笔记十]Maven Profile与资源文件过滤器
bit1129
maven
什么是Maven Profile
Maven Profile的含义是针对编译打包环境和编译打包目的配置定制,可以在不同的环境上选择相应的配置,例如DB信息,可以根据是为开发环境编译打包,还是为生产环境编译打包,动态的选择正确的DB配置信息
Profile的激活机制
1.Profile可以手工激活,比如在Intellij Idea的Maven Project视图中可以选择一个P
- 【Hive八】Hive用户自定义生成表函数(UDTF)
bit1129
hive
1. 什么是UDTF
UDTF,是User Defined Table-Generating Functions,一眼看上去,貌似是用户自定义生成表函数,这个生成表不应该理解为生成了一个HQL Table, 貌似更应该理解为生成了类似关系表的二维行数据集
2. 如何实现UDTF
继承org.apache.hadoop.hive.ql.udf.generic
- tfs restful api 加auth 2.0认计
ronin47
目前思考如何给tfs的ngx-tfs api增加安全性。有如下两点:
一是基于客户端的ip设置。这个比较容易实现。
二是基于OAuth2.0认证,这个需要lua,实现起来相对于一来说,有些难度。
现在重点介绍第二种方法实现思路。
前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGe
- jdk环境变量配置
byalias
javajdk
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:
1、下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是:jdk-7u79-windows-x64.exe
2、安装jdk-7u79-windows-x64.exe
3、配置环境变量:右击"计算机"-->&quo
- 《代码大全》表驱动法-Table Driven Approach-2
bylijinnan
java
package com.ljn.base;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.uti
- SQL 数值四舍五入 小数点后保留2位
chicony
四舍五入
1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。
2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。
例如:
select cast(round(12.5,2) as numeric(5,2))
- c++运算符重载
CrazyMizzz
C++
一、加+,减-,乘*,除/ 的运算符重载
Rational operator*(const Rational &x) const{
return Rational(x.a * this->a);
}
在这里只写乘法的,加减除的写法类似
二、<<输出,>>输入的运算符重载
&nb
- hive DDL语法汇总
daizj
hive修改列DDL修改表
hive DDL语法汇总
1、对表重命名
hive> ALTER TABLE table_name RENAME TO new_table_name;
2、修改表备注
hive> ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comm
- jbox使用说明
dcj3sjt126com
Web
参考网址:http://www.kudystudio.com/jbox/jbox-demo.html jBox v2.3 beta [
点击下载]
技术交流QQGroup:172543951 100521167
[2011-11-11] jBox v2.3 正式版
- [调整&修复] IE6下有iframe或页面有active、applet控件
- UISegmentedControl 开发笔记
dcj3sjt126com
// typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
// UISegmentedControlStylePlain, // large plain
&
- Slick生成表映射文件
ekian
scala
Scala添加SLICK进行数据库操作,需在sbt文件上添加slick-codegen包
"com.typesafe.slick" %% "slick-codegen" % slickVersion
因为我是连接SQL Server数据库,还需添加slick-extensions,jtds包
"com.typesa
- ES-TEST
gengzg
test
package com.MarkNum;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation
- 为何外键不再推荐使用
hugh.wang
mysqlDB
表的关联,是一种逻辑关系,并不需要进行物理上的“硬关联”,而且你所期望的关联,其实只是其数据上存在一定的联系而已,而这种联系实际上是在设计之初就定义好的固有逻辑。
在业务代码中实现的时候,只要按照设计之初的这种固有关联逻辑来处理数据即可,并不需要在数据库层面进行“硬关联”,因为在数据库层面通过使用外键的方式进行“硬关联”,会带来很多额外的资源消耗来进行一致性和完整性校验,即使很多时候我们并不
- 领域驱动设计
julyflame
VODAO设计模式DTOpo
概念:
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对
- 单例设计模式
hm4123660
javaSingleton单例设计模式懒汉式饿汉式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
&nb
- logback
zhb8015
loglogback
一、logback的介绍
Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-class
- 整合Kafka到Spark Streaming——代码示例和挑战
Stark_Summer
sparkstormzookeeperPARALLELISMprocessing
作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管。本文,Michael详细的演示了如何将Kafka整合到Spark Streaming中。 期间, Michael还提到了将Kafka整合到 Spark Streaming中的一些现状,非常值得阅读,虽然有一些信息在Spark 1.2版
- spring-master-slave-commondao
王新春
DAOspringdataSourceslavemaster
互联网的web项目,都有个特点:请求的并发量高,其中请求最耗时的db操作,又是系统优化的重中之重。
为此,往往搭建 db的 一主多从库的 数据库架构。作为web的DAO层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数