- Java和SQL测试、性能监控中常用工具
2301_79306982
javasqlselenium单元测试压力测试集成测试
下面我会详细列举一些在Java和SQL测试、调试、性能监控中常用的工具,并结合项目中提到的各个技术点说明如何选择合适的工具和方法。一、Java项目常用的测试、调试与性能监控工具单元测试与集成测试:JUnit/TestNG:用于编写单元测试和集成测试。比如在SpringBoot项目中,可以使用JUnit对各个服务进行功能测试。Mockito:用于模拟依赖项,帮助隔离单元测试时的环境。静态代码分析:S
- HarmonyOS 鸿蒙开发DevEco Studio:HarmonyOS 测试框架
人工智能_SYBH
harmonyos华为鸿蒙开发DevEcoStudio测试框架
目录HarmonyOSTest创建HarmonyOSTest测试用例运行HarmonyOSTest测试用例HarmonyOSJUnit单元测试创建HarmonyOSJUnit测试用例运行HarmonyOSJUnit测试用例DevEcoStudio支持HarmonyOS应用/服务测试框架,包含HarmonyOSTest和HarmonyOSJUnit测试能力。提供测试用例执行能力,提供用例编写基础接口
- 反应式编程 之 Mono.defer与Mono.just
〆、风神
SpringWebFluxjava
Mono.defer方法创建数据源属于懒汉型,Mono.just方法创建数据源属于恶汉型,下面看一个例子:packagecom.example.demo;importorg.junit.jupiter.api.Test;importorg.springframework.boot.test.context.SpringBootTest;importreactor.core.publisher.Mo
- Junit4使用详解(一)
weixin_34194702
测试java
我们写单元测试,一般都会用到一个或多个单元测试框架,在这里,我们介绍一下JUnit4这个测试框架。这是Java界用的最广泛,也是最基础的一个框架,其他的很多框架,包括我们后面会看到的Robolectric,都是基于或兼容JUnit4的。然而首先要解决的问题是。。。为什么要使用单元测试框架呢或者换句话说,单元测试框架能够为我们做什么呢?从最基本的开始说起,假如我们有这样一个类:publicclass
- JUnit 4与JUnit 5的差异详解
程序员谷美
Java实战junitjava
概述在进行SpringBoot项目单元测试时,发现有时候给类打上@SpringBootTest注解就能运行项目,但有时候需要@RunWith(SpringRunner.class)和@SpringBootTest注解才能运行,你有研究过这是为什么吗?本文就来讲一下这个问题。SpringBoot中JUnit4与JUnit5的差异详解一、核心差异概述特性JUnit4JUnit5架构单一JAR包模块化设
- 如何在Java中使用JUnit进行单元测试
IT专家-大狗
javajunit单元测试
单元测试是软件开发中确保代码质量和功能正确性的一个重要环节。在Java中,JUnit是最常用的单元测试框架,它为开发人员提供了编写和执行测试用例的简便方式。本文将介绍如何在Java中使用JUnit进行单元测试,帮助你更好地理解和使用这一强大的工具。1.什么是JUnit?JUnit是一个开源的测试框架,用于编写和运行Java程序的单元测试。它提供了一种简洁的方式来验证代码中的各个组件是否按照预期工作
- Maven 和 CI/CD 集成:自动化构建与部署
drebander
Mavenmavenci/cd自动化
1.Maven在CI/CD中的作用Maven是Java生态中的标准构建工具,在持续集成(CI)和持续部署(CD)过程中,Maven负责:自动化构建:编译Java代码、运行测试、打包JAR/WAR。依赖管理:从Maven仓库下载、管理依赖,确保版本一致性。测试执行:执行单元测试(JUnit、TestNG)和集成测试。部署发布:将构建产物上传到远程仓库(如Nexus)或部署到应用服务器。2.CI/CD
- springBoot项目单元测试卡顿在Resoving Maven dependencies
itStone66
springboot单元测试maven
1.问题概述sprintBoot单元测试的时候解析不出相关依赖,出现卡顿情况,严重甚至要任务管理器结束idea。2.错误信息:说是无法解析junit中的依赖3.解决方案:pom.xml中加入以下依赖org.junit.platformjunit-platform-launchertest
- Java-泛型
weixin_34242658
java
packagecom.lxl.java;importorg.junit.Test;importjava.util.*;/****泛型的使用*1.jdk5.0新增的特性**2.在集合中使用泛型:*总结:*①集合接口或集合类在jdk5.0时都修改为带泛型的结构。*②在实例化集合类时,可以指明具体的泛型类型*③指明完以后,在集合类或接口中凡是定义类或接口时,内部结构(比如:方法、构造器、属性等)使用到类
- Selenium WebDriver自动化测试(框架篇):BDD之Cucumber框架项目实战
职说测试
javaseleniumBDDcucumber行为驱动
selenium工具的自动化测试用例,转化成BDD框架的cucumber自然语言脚本。1、Cucumber环境准备,不管是eclipse安装还是pom配置,都需要Cucumber相关组件:junitjunit4.12testorg.seleniumhq.seleniumselenium-java3.7.0info.cukescucumber-java1.2.5
- ScalaTest测试框架
一片
ScalaAkka开发学习PlayFramework
ScalaTest是一个开源测试框架,旨在令测试更加高效。其开发者是BillVenners(Artima主编)。BillVenners这样描述ScalaTest:ScalaTest是比JUnit和TestNG更加高阶的测试编写工具,这个Scala应用在JVM上运行,可以测试Scala以及Java代码。除了与JUnit和TestNG的深层集成外,还支持Ant任务,与maven集成,并包括了流行的Ja
- 【单元测试】Spring Boot 的测试库
G皮T
#测试基础#SpringBoot单元测试springbootunittestingunittest
《SpringBoot进阶》系列,共包含以下文章:认识SpringAOP认识IoC容器和Servlet容器异常处理SpringBoot的测试库Controller、Service、Repository层的单元测试如果您觉得这篇文章有用✔️的话,请给博主一个一键三连吧(点赞、关注、收藏)!!!您的支持将激励博主输出更多优质内容!!!SpringBoot的测试库1.了解回归测试框架JUnit2.了解a
- RabbitMQ深度探索:SpringBoot 整合 RabbitMQ
苏-言
java-rabbitmqrabbitmqspringboot
需创建复合项目父工程Maven依赖:org.springframework.bootspring-boot-starter-parent2.0.0.RELEASEcom.qcbyspringboot-rabbitmqpomproducersms-consumer1.0-SNAPSHOTjunitjunit3.8.1testorg.springframework.bootspring-boot-st
- maven生成html单元测试报告,Maven中配置生成单元测试报告配置
yoh sk
对junit单元测试的报告:1.-------------------------------------------------------2.TESTS3.-------------------------------------------------------4.Runningcom.liuyan.account.mail.AccountImageServiceImplTest5.---
- maven 单元测试并行_并行运行单元测试
dnc8371
单元测试javajunit深度学习人工智能
maven单元测试并行大约是时候单元测试的开发人员能够使用批注在Parallel中运行测试。在今天的博客文章中,我们将介绍如何使用Easytest提供的注释使传统的Junit测试并行运行。易测是在JUnit之上构建的测试框架,可让您轻松编写和维护测试。它专注于为您的应用程序编写数据驱动测试。让我们首先假设一个类ItemService具有方法2的方法:带有2个参数DoubleitemId和Strin
- Maven的单元测试
倾城璧
maven单元测试java
1.单元测试的基本概念单元测试(UnitTesting)是一种软件测试方法,专注于测试程序中的最小可测试单元——通常是单个类或方法。通过单元测试,可以确保每个模块按预期工作,从而提高代码的质量和可靠性。2.安装和配置JUnit5使用Maven配置JUnit5首先,在项目的pom.xml文件中添加JUnit5的依赖项。4.0.0com.example.myprojectmy-application1
- 阿里最全面试116题整理
数据存储张
程序人生数据库使用与原理解析零基础linux入门到精通C\C++入门到精通面试题java阿里
阿里天猫、蚂蚁金服、阿里巴巴面试题整理,可以作为参考。1.junit用法,before,beforeClass,after,afterClass的执行顺序2.分布式锁3.nginx的请求转发算法,如何配置根据权重转发4.用hashmap实现redis有什么问题(死锁,死循环,可用ConcurrentHashmap)5.线程的状态5.线程的阻塞的方式6.sleep和wait的区别7.hashmap的
- 如何使用调试与测试技巧:使用JUnit和Mockito简化单元测试
默 语
junit单元测试
摘要在现代软件开发中,调试和测试是确保代码质量和可靠性的重要环节。对于Java开发者来说,JUnit和Mockito是两个非常常用的工具,它们能够显著简化单元测试,减少调试和测试中的复杂性。JUnit帮助开发者自动化和管理单元测试,而Mockito则用于模拟和“伪造”外部依赖,使测试更加简单和高效。本文将详细介绍如何使用JUnit和Mockito进行调试和测试,帮助你轻松编写高质量的Java代码。
- Junit和Eclemma介绍--java白盒测试工具
myy_2018
JAVA
Junit一般进行单元测试时候使用,以前写好了模块,然后写一个main函数,写几个通用的测试用例去测试代码的逻辑结果是否正确,现在Eclipse中Junit插件使得不必须手动编写main函数,可以借助Junit编写测试函数,自动生成与模块相匹配的测试模块。我们只需要添加测试用例即可,并且结果显示是否与预期符合。Eclemma是Junit配合使用的插件,是测试覆盖率的工具,对于含有条件判断的代码,对
- 测试驱动开发TDD
Urf_read
前后端&数据库交互通信springtddjavaspringspringbootjava-ee
如何在后端测试代码,测试一个其前端的请求,能否正常处理以登录请求为例packagecom.example.demo.login;importcom.example.demo.login.pojo.User;importcom.fasterxml.jackson.databind.ObjectMapper;importorg.junit.jupiter.api.Test;importorg.spri
- 使用JUnit测试Mybatis配置
takashi_constantine
Mybatis框架MybatisJUnit
XML配置:<resultcolumn=&#
- 黑马程序员spring整合Mybatis&Junit&Druid
闲易生事
mybatisspringjava
准备工作1.Maven导入依赖org.springframeworkspring-context5.2.10.RELEASEorg.mybatismybatis3.5.6mysqlmysql-connector-java5.1.47org.mybatis
- Spring整合Mybatis流程(采用注解+log4j日志)
nvjdn__
springmybatislog4j
1.配置pom.xml文件jar包5.3.103.5.72.0.6UTF-888junitjunit4.11testorg.springframeworkspring-beans${spring.version}org.springframeworkspring-core${spring.version}org.springframeworkspring-context${spring.versi
- 【SpringBoot 框架】- SpringBoot 配置文件
2401_84408404
程序员springbootjavaspring
【SpringBoot框架】-入门——环境搭建、工程热部署、idea快捷创建SpringBoot项目【SpringBoot框架】-SpringBoot原理分析【SpringBoot框架】-SpringBoot配置文件【SpringBoot框架】-SpringBoot整合Mybatis、Junit、Redis目录一、SpringBoot配置文件类型1.application.properties配置
- SpringBoot编程基础教程:Spring Boot Test
AI天才研究院
AI大模型企业级应用开发实战大数据人工智能语言模型JavaPython架构设计
作者:禅与计算机程序设计艺术1.背景介绍SpringBootTest简介测试是一个软件开发过程中的重要环节,它可以帮助我们检测出软件代码中存在的问题、错误或漏洞,提高软件质量,确保软件的可靠性和可用性。在Java开发领域,Java自带的单元测试框架(JUnit)已经成为事实上的标准,但是随着项目越来越复杂,系统越来越庞大,单元测试用例的数量也越来越多,执行时间也越来vron长。此时,我们就需要自动
- Junit5 单元测试框架的使用
qq_40815999
单元测试
Junit5简单使用总结作为一款测试框架,一般我们需要从以下几个方面去考虑TestCase:测试用例的管理Assertions:用例断言的管理TestExecution:测试执行,以何种顺序执行TestFixtures:测试装置,测试用例运行的前后动作,用来管理测试用例的执行TestSuites:测试套,控制用例批量运行TestRunner:测试用例的运行器TestResultReport:测试报
- 软件测试工具——Junit单元测试
衣衣困
junit单元测试
什么是单元测试定义:单元测试是对软件中的最小可测试单元(通常是一个函数或方法)进行的验证性测试,旨在确保其按预期工作。目的:通过测试单元代码来发现并修复错误,提高代码的可靠性和维护性。“单元”的大小或范围,并没有一个明确的标准,“单元”可以是一个函数、方法、类、功能模块或者子系统。单元测试一般是有开发人员或测试人员来做。单元测试通常和白盒测试联系到一起,如果单从概念上来讲两者是有区别的,不过我们通
- mockito+junit 单元测试 测试私有方法利用反射去调用提升覆盖率 反射调用时传入参数为 null
aq_money
junit单元测试java
今天公司安排我写单元测试因为要通过三级认证公司要求是覆盖率必须达到100%而在写单元测试的时候对于是否要测试私有方法一直是一个争议公司规范对私有方法也进行测试代码如下:privatevoidpostGpInfo(GpAlertInfoDOgpAlertInfoDO){if(JudgeUtils.isNull(gpAlertInfoDO)){BusinessException.throwBusine
- 使用 JUnit 和 SuiteRunner 测试私有方法
肉三
Javajunitlog4jjava
我第一次使用JUnit是为了为ServiceUIAPI构建一个一致性测试工具包[1]。一致性测试工具包的目的是帮助确保同一API的替代实现与API的规范兼容。由于API规范仅定义API的公共接口,而不是API的实现,因此一致性测试仅测试公共接口。换句话说,一致性测试是一种“黑盒”测试。它将测试中的API视为黑盒,可以看到其外部接口,但看不到其内部实现。因此,JavaAPI的一致性测试只需要访问测试
- Spring 6 第6章——单元测试:Junit
qw949
Spring6spring单元测试junit
一、整合JUnit5在之前的测试方法中,几乎都能看到以下两行代码:ApplicationContextcontext=newClassPathXmlApplicationContext("xxx.xml");Xxxxxxx=context.getBean(Xxxx.class);这两行代码的作用是创建Spring容器,最终获取到对象,但是每次测试都需要重复编写针对上述问题,我们需要的是程序能自动帮
- 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层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数