- 51hook 课程之inline hook代码
不要影响我叠Q
逆向工程安全
#include"main.h"//1、找到要HOOK的函数//2、保存要hook的函数的前5个字节//3、计算目标函数距离jump指令的下一条指令的偏移offset//4、改变函数的前5个字节改成jmpoffset(即0xE9offset)//1、进行hook的初始工作,找到hook函数的地址并保存函数的前5个字节计算出偏移值保存改变后的前5个字节//2、安装钩子//3、卸载钩子//4、自定义函
- Python电子书教程汇总
iteye_3941
python
From:http://bathome.net/thread-15554-1-1.html[转载教程]Python电子书教程汇总(2012-02-16更新)简明Python教程(AByteofPython)_1.20_中文版pdfhttp://www.rayfile.com/zh-cn/files/6cdcc561-58b2-11e1-ad5e-0015c55db73d/Python语言从入门到精
- 【国内直连】国内可用的ChatGPT中文版镜像集合(2025年1月更新)
更新时间:2025年01月18日全方位指南,带您轻松使用ChatGPT中文版,支持GPT-4,无需!本文提供详细的ChatGPT中文版使用说明,包括镜像站推荐、官网注册教程以及常见问题解答,帮助您快速掌握ChatGPT的使用方法。目录什么是ChatGPT中文版?国内可用的ChatGPT中文版镜像网站推荐为什么选ChatGPT中文版ChatGPT官网与中文版的区别如何快速开始使用ChatGPT中文版
- GitLab:添加SSH密钥之前,您不能通过SSH来拉取或推送项目代码
dingcho
运维gitlabssh运维
1、查看服务器是否配置过[root@kingbal-ecs-7612~]#cd.ssh/[
[email protected]]#lsauthorized_keysid_ed25519id_ed25519.pubid_rsaid_rsa.pub2、创建密钥$ssh-keygen-trsa-C'
[email protected]'#-C后写你的邮箱一路回车3、复制密钥[root@k
- VScode使用element-ui插件准备
web15286201346
面试学习路线阿里巴巴vscodeidevisualstudiocodejava-ee后端
文章目录插件1、Chinese(Simplified)LanguagePackforVisualStidioCode中文汉化包2、AutoCloseTag自动闭合标签3、AutoRenameTag尾部闭合标签同步修改4、BracketPairColorizer用不同颜色高亮显示匹配的括号5、HighlightMatchingTag高亮显示匹配标签6、Vscode-element-helper7、l
- Android控件底色蓝色无法修改、高版本无法安装app、找不到xml、找不到java文件、目录不显示等问题
轩哥.
问题解决记录android
一、控件底色蓝色问题在修改控件时发现无法修改颜色运行时呈现蓝色如下图:解决方法:去res/values/themes/下修改成:parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge"如果你的应用使用了这个主题,那么它将遵循MaterialDesign的指导原则,并且会适配系统的日/夜模式设置。二、高版本无法安装app当安装时出
- 安装雷池WAF遇到 Pool overlaps with other one on this address space 怎么办
linuxubuntu运维
这个错误一般出现在手动安装的过程中,原因是.env里面默认的网段已经被使用造成了冲突,解决方案如下编辑.env找到下面这一行,改成其他不冲突网段SUBNET_PREFIX=xx.xx.xx重启服务cd/data/safeline&&dockercomposeup-d
- Gitlab Runner安装与配置
由于格式和图片解析问题,为了更好阅读体验可前往阅读原文本篇使用Docker安装Gitlabrunner进行runner的安装和注册,其他方式请参考官方文档非Docker安装Gitlabrunner请确保runner版本和gitlab版本兼容以及docker相关版本兼容问题下载镜像dockerpullgitlab/gitlab-runner:v14.6.0创建挂载卷mkdir-p/srv/gitla
- 《进阶篇第9章》学习vuex知识点后练习:把求和案例改成getters
@[toc]效果展示:注意点1:问题:如何实现“当前和为奇数再加”?答案:incrementOdd(){if(this.sum%2){this.sum+=this.n}}注意点2:问题:select下拉框默认为1时,点击加号没问题,但是下拉框选中为2时,n值变成字符串了,不应该是数字类型名吗?旧代码:无论设置value="1"还是value=1都无效当前求和为:{{sum}}123答案:因为没设置
- Java编程思想学习笔记之内容介绍
java开发13264
Java编程思想学习笔记学习笔记
从本文开始,逐步学习这本经典著作,在网上有不少人吐槽本书太老,但笔者认为技术可能过时,但思想可以管用很久,并且以早期版本入门可以获得一个更深入更全面的理解,如果读者看本专栏是为了入门Java那么相信还是很有益处的。跟本专栏需要三本资料,一是原书英文版,二是翻译中文版,三是配套习题解答以及代码包等内容,部分资源不是很好找,后期有空整理好后发布在CSDN。中文版用来速读,但翻译着实不尽如人意,很多地方
- 如何在Windows系统下搭建GitLab
Daniel的万事通杂货铺
gitlab
版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/weixin_44789022/article/details/135450056————————————————版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.cs
- 全面介绍Windows10系统(中文版与英文版)
时刻报
Windows系统windows
声明:作者将会单独发纯英文版一、发展历程Windows10的研发历程始于2014年,当时微软在旧金山的新品发布会上首次展示了这一新操作系统,并将其命名为“Windows10”,跳过了数字“9”。经过一年左右的开发、测试和用户反馈收集,微软于2015年7月29日正式发布了Windows10。此后,Windows10不断获得定期的安全更新和服务改进,成为许多企业和个人用户的首选操作系统之一。二、系统特
- 开发规范
!!!525
springbootspringboot
开发规范企业项目开发有2种开发模式:前后台混合开发和前后台分离开发。前后台混合开发顾名思义就是前台后台代码混在一起开发,如下图所示:这种开发模式有如下缺点:沟通成本高:后台人员发现前端有问题,需要找前端人员修改,前端修改成功,再交给后台人员使用分工不明确:后台开发人员需要开发后台代码,也需要开发部分前端代码。很难培养专业人才不便管理:所有的代码都在一个工程中难以维护:前端代码更新,和后台无关,但是
- 安卓编译报错expo-modules-core:prepareBoost Not in GZIP format的解决方案
作者:Kovli重要通知:红宝书第5版2024年12月1日出炉了,感兴趣的可以去看看,https://u.jd.com/saQw1vP红宝书第五版中文版红宝书第五版英文原版pdf下载(访问密码:9696)报错如下[RUN_GRADLEW]Executionfailedfortask':expo-modules-core:prepareBoost'.[RUN_GRADLEW]>Couldnotrea
- 开源项目怎么搞钱·下
原文地址我经常被问「开源项目怎么赚钱」?这周,我和开源密钥管理工具Infisical的VladMatsiiako聊了聊,深入探讨了开源公司为什么能盈利、怎样盈利。SAAS/云SaaS销售的是软件的托管版本,其中部分产品(例如管理功能)可能没有开源。GitLab、Supabase和Infisical就是这样做的;维基百科的「Open-coremodel」条目下还有更多类似案例。鉴于有时开源部分的代码
- vue2基础组件通信案例练习:把案例Todo-list改成使用全局事件总线
@[toc]改动的地方注意点1:使用地方App和MyItem之间使用全局事件总线,之前方式是App传给MyList,然后MyList再传给MyItem,之前缺陷是MyList只作为传递着啥都不干,显得太绕圈,太多余。main.jsnewVue({el:'#app',render:h=>h(App),beforeCreate(){Vue.prototype.$bus=this},})App.vuem
- 《进阶篇第9章》学习vuex知识点后练习:把求和案例改成vuex版代码
@[toc]效果展示:注意点1:问题:如何实现“当前和为奇数再加”?答案:incrementOdd(){if(this.sum%2){this.sum+=this.n}}注意点2:问题:select下拉框默认为1时,点击加号没问题,但是下拉框选中为2时,n值变成字符串了,不应该是数字类型名吗?旧代码:无论设置value="1"还是value=1都无效当前求和为:{{sum}}123答案:因为没设置
- 如何在 Rocky Linux 上安装极狐GitLab?
gitgitlab私有化部署
本文分享如何在RockyLinux操作系统上安装极狐GitLab。前提条件一个安装了RockyLinux操作系统的云服务器可以查看/etc/os-release中的信息,确认操作系统信息:NAME="RockyLinux"VERSION="8.10(GreenObsidian)"ID="rocky"ID_LIKE="rhelcentosfedora"VERSION_ID="8.10"PLATFOR
- 在麒麟(kylin)操作系统上安装极狐GitLab
gitkylin私有化部署
本文分享在麒麟操作系统上安装极狐GitLab。前提条件一个安装了欧拉操作系统的云服务器可以查看/etc/os-release中的信息,确认操作系统信息:NAME="KylinLinuxAdvancedServer"VERSION="V10(Tercel)"ID="kylin"VERSION_ID="V10"PRETTY_NAME="KylinLinuxAdvancedServerV10(Terce
- Gitlab流水线配置
由于格式和图片解析问题,为了更好阅读体验可前往阅读原文流水线的流程是,提交代码后,gitlab会检测项目根目录里的.github-ci.yml文件,根据文件中的流水线自动构建,配置文件格式正确性可以在gitlab进行文件校验,格式使用yaml文件格式,一个yaml文件就是一个流水线,里面会定义多个作业示例stages:-install-build-deployinstall_job:stage:i
- 使用ChatGPT打造完美简历与面试技巧:一周内应聘到理想工作的实战指南
chatgpt面试求职
前言在当今竞争激烈的就业市场中,如何在短时间内脱颖而出,成功应聘到理想的工作岗位?本文将结合ChatGPT中文版这一强大的AI工具,为您提供一套完整的求职攻略,帮助您在一周之内显著提升求职成功率。第一天:求职准备与定位职业规划与目标设定首先使用免费ChatGPT中文版进行职业倾向分析:个人技能评估职业发展路径规划目标企业筛选实例分析:小王是一名有3年经验的产品经理,希望转向互联网大厂。通过Chat
- vue2基础组件通信案例练习:把案例Todo-list改成使用消息订阅与发布
@[toc]改动的地方注意点1:实现App和MyItem的删除功能,使用消息订阅与发布方式实现通信。App.vueimportpubsubfrom'pubsub-js'methods:{//删除一个tododeleteTodo(_,id){this.todos=this.todos.filter(todo=>todo.id!==id)}}mounted(){this.$bus.$on('check
- mysql禁用远程登录
igotyback
mysql
去mysql库中的user表里,将host都改成localhost之后刷新权限FLUSHPRIVILEGES;
- git - Webhook让部署自动化
大猪大猪
我们现在有一个需求,将项目打包上传到gitlab或者github后,程序能自动部署,不用手动地去服务器中进行项目更新并运行,如何做到?这里我们可以使用gitlab与github的挂钩,挂钩的原理就是,每当我们有请求到gitlab与github服务器时,这时他俩会根据我们配置的挂钩地扯进行访问,webhook挂钩程序会一直监听着某个端口请求,一但收到他们发过来的请求,这时就知道用户有请求提交了,这时
- 第六集如何安装CentOS7.0,3分钟学会centos7安装教程
date分享
从光盘引导系统按回车键继续进入引导程序安装界面,选择语言这里选择简体中文版点击继续选择桌面安装下面给系统分区选择磁盘,点击完成选择基本分区,点击加号swap分区,大小填内存的两倍在选择根分区,使用所有可用的磁盘空间选择文件系统ext4点击完成,点击开始安装设置root密码,点击完成设置普通用户和密码,点击完成整个过程持续八分钟左右根据个人配置不同,时间长短不同好,现在点击重启系统进入重启状态点击本
- Some jenkins settings
SnC_
Jenkins连接到特定gitlabproject的特定branch我采用的方法是在pipeline的script中使用git命令来指定branch。如下:stage('Clonerepository'){steps{gitbranch:'develop',credentialsId:'gitlab-credential-id',url:'http://gitlab.com/repo.git'}}
- 探索ASPICE V3.1:汽车行业软件开发的中文指南
阮懿同
探索ASPICEV3.1:汽车行业软件开发的中文指南ASPICE_V3.1中文版.pdf.zip项目地址:https://gitcode.com/open-source-toolkit/422a2在汽车软件工程领域,高质量的标准对于确保行车安全和提升用户体验至关重要。今天,我们为您介绍一个珍贵的开源宝藏——ASPICEV3.1中文版资源。这是一篇专为国内汽车行业开发者、质量管理者准备的深度解读,旨
- python中文版下载官网-Python下载 v3.8.3 官方中文版
weixin_37988176
Python中文版是一款非常专业的通用型计算机程序设计语言安装包,Python具有比其他语言更有特色语法结构,而且在设计上坚持了清晰划一的风格,使得它成为一门易读、易维护并且被大量用户所欢迎的、用途广泛的语言,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。Python中文版软件介绍Python中文版是一门跨平台的脚本语言,Python规定了一个Python语法规则,实
- python中文版软件下载-Python中文版
编程大乐趣
python中文版是一种面向对象的解释型计算机程序设计语言。python中文版官网面向对象编程,拥有高效的高级数据结构和简单而有效的方法,其优雅的语法、动态类型、以及天然的解释能力,让它成为理想的语言。软件功能强大,简单易学,可以帮助用户快速编写代码,而且代码运行速度非常快,几乎可以支持所有的操作系统,实用性真的超高的。python中文版软件介绍:python中文版的解释器及其扩展标准库的源码和编
- Windows安装ciphey编码工具,附一道ciscn编码题例
im-Miclelson
CTF工具网络安全
TA是什么一款智能化的编码分析解码工具,对于CTF中复杂性编码类题目可以快速攻破。编码自动分析解码的神器。如何安装Windows环境Python3.864位(最新的版本不兼容,32位的也不行)PIP直接安装pipinstallciphey-ihttps://pypi.mirrors.ustc.edu.cn/simple/安装后若是出现报错请根据错误代码行数找到对应文件,r修改成rb即可。使用标准语
- 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层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数