- linux操作系统实战
沅沅真真
linux服务器运维
第一题创建根目录结构中的所有的普通文件 [root@localhost~]#cd/ [root@localhost/]#mkdir/text [root@localhost/]#cd/text [root@localhosttext]#mkdir/text/boot/text/root/text/home/text/bin/text/sbin/text/lib/text/lib64/text/us
- DevOps工具链
zhangpeng455547940
devops运维
DevOps工具链的核心组成部分包括:代码编辑和版本控制工具svn、git自动化构建工具Jenkins、GitLabCI/CD、TravisCI持续集成和持续部署工具Jenkins、Ansible容器编排工具K8S、DockerSwarm持续监控工具Prometheus,Grafana,InfluxDB服务配置管理工具Ansible,Chef,PuppetGit:代码管理Maven:依赖管理、项目
- 前端及后端实现csv文件下载功能
绝顶少年
前端
方法一、前端内容:consturl=window.URL.createObjectURL(newBlob([res.data]));constlink=document.createElement('a');link.href=url;constfileNameDateTime=getFormattedDateTime();constfilename="用户提现列表"+fileNameDateTi
- MCU与SOC的区别
winds~
ADAS相关单片机嵌入式硬件
自动驾驶中MCU与SoC的区别在自动驾驶系统中,**MCU(微控制单元,MicrocontrollerUnit)和SoC(系统级芯片,SystemonChip)**都是关键的电子元件,但它们在性能、功能和应用领域等方面存在显著区别。一、定义与基本概念1.MCU(微控制单元)组成:MCU是一种集成了处理器核心(通常为微型处理器)、内存(如闪存和RAM)以及输入/输出(I/O)接口的单片集成电路。特点
- 并发编程--进程间通信(IPC)概览以及匿名管道
k要开心
进程并发编程c语言开发语言
进程间通信(IPC)概览以及匿名管道1.进程间通信(IPC)概览2.匿名管道PIPE2.1基本逻辑2.2函数接口2.3管道的读写特性2.4管道的阻塞特性1.进程间通信(IPC)概览在Linux/Unix系统中,进程间通信方式(Inter-ProcessComunication)通常有如下若干中方式:管道匿名管道pipe:适用于亲缘关系进程间的、一对一的通信具名管道fifo:适用于任何进程间的一对一
- 2025年渗透测试面试题总结-安恒 (题目+回答)
独行soc
2025年渗透测试面试指南面试职场和发展安全web安全红蓝攻防
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。目录安恒1.sqlmap爆出当前数据库库名的参数是什么?2.nmap探测系统类型的参数是?3.nmap的小写-o和-A是做啥的?4.布尔盲注的具体语句是啥?5.宽字节原理6.Python是否存在反序列化漏洞?7.GET与POST传参的区别8.HTTP请求方式9.如何判断C
- C# BlockingCollection
卷纸要用清风的
C#c#javalinux
什么是`BlockingCollection`主要特点构造函数常用方法生产者操作消费者操作示例代码注意事项串口接收底层存储的类型线程安全和并发访问串口数据接收的顺序性关键点BlockingCollection是C#中一个非常有用的线程安全集合类,位于System.Collections.Concurrent命名空间中。它主要用于在多线程环境中实现线程安全的生产者-消费者模式。以下是关于Blocki
- 今天项目中出现了一个xss漏洞
hello_simon
phphtmlhacker
代码是这样的:xxxx.com/en/index?siteId=">alert(document.cookie)smartyget没做过滤的,有点坑
- strtr和str_replace效率探索
hello_simon
php
今天写代码用到字符串规制,就上网查了下strtr与str_replace的效率如何,网上一些地方说strtr比str_replace快四倍。半信半疑,自己就做了下测试。strtr比较怪异,用法这里不提。只做两种这两个函数可以替换用的测试例子。第一种list($usec,$sec)=explode('',microtime());$star=$usec+$sec;$string='paocaiasd
- 24.pocsuite3:开源的远程漏洞测试框架
白帽少女安琪拉
安全工具网络安全网络
一、项目介绍pocsuite3是一款由Knownsec404Team开发的开源远程漏洞测试框架,专注于快速验证和利用已知漏洞。其通过模块化设计和插件化架构,支持用户编写自定义POC(ProofofConcept),覆盖Web漏洞、系统漏洞、数据库漏洞等多种类型,适用于红队渗透、漏洞验证及安全研究等场景。1.1核心功能模块化设计:支持编写、加载和执行自定义POC,灵活适应不同场景。内置丰富的POC库
- 如何进行OceanBase 运维工具的部署和表性能优化?
运维
随着OceanBase数据库应用的日益深入,数据量不断攀升,单个表中存储数百万乃至数千万条数据的情况变得愈发普遍。因此,部署专门的运维工具、实施针对性的表性能优化策略,以及加强指标监测工作,都变得更为重要。以下为基于我们的使用场景,所采取的一些部署和优化措施分享。一、OCP部署升级1.OCP升级(1)4.2.1BP1升级到4.2.2,本来以为毫无波澜但是下载完毕一键包并完成前期准备工作启动后发现无
- 大文件上传
前端javascript
大文件上传通常需要分片处理、断点续传等技术来提高上传效率和可靠性。以下是一个简单的JavaScript示例,展示如何实现大文件的分片上传和断点续传:大文件上传上传//请求基准地址axios.defaults.baseURL='http://localhost:3000';//选中的文件varfile=null;//选择文件document.getElementById('fileInput').o
- YashanDB归档日志文件管理
数据库
本文内容来自YashanDB官网,原文内容请见https://doc.yashandb.com/yashandb/23.3/zh/%E6%95%B0%E6%8D%AE%...归档日志文件默认存放在$YASDB\_DATA/archive目录下。Note:本文以查询单机部署中的归档日志文档为例,不同部署形态查询方法相同但$YASDB\_DATA路径不同,具体请以实际为准。$cd/data/yasha
- YashanDB redo日志文件管理
数据库
本文内容来自YashanDB官网,原文内容请见https://doc.yashandb.com/yashandb/23.3/zh/%E6%95%B0%E6%8D%AE%...YashanDB的redo日志文件用于记录数据库产生的物理日志,可被用于数据库宕机重演和主备复制。redo日志文件有如下4种状态:NEW:表示新创建且未使用的redo日志文件。CURRENT:表示当前正在写入的redo日志文件
- 2025年渗透测试面试题总结-阿里巴巴-阿里云安全(二面)(题目+回答)
独行soc
2025年渗透测试面试指南科技安全web安全面试职场和发展红蓝攻防阿里云
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。目录阿里巴巴-阿里云安全二面一、职业方向与技术偏好1.安全研究vs安全研发的定位二、云安全与身份认证2.云上PKI与身份认证的关注方向三、项目实践与成果3.字节跳动训练营项目四、攻防技术深度解析4.SQL注入攻防方案5.WAF防护原理五、团队协作与效能优化6.分工协作与个
- 一文搞懂MCU和SoC的核心差异:从架构到应用场景全解析
Electron-er
单片机架构嵌入式硬件
目录引言一、从“芯片大脑”看本质:架构设计的哲学差异1.MCU:单一任务的执行专家2.SoC:系统级集成的超级平台二、实战对比:六大维度拆解差异1.性能指标对比2.开发模式对比三、选型指南:如何选择MCU或SoC?1.选择MCU的场景2.选择SoC的场景四、技术演进:MCU与SoC的融合趋势1.MCU的进化方向2.SoC的突破方向五、开发者避坑指南结语标签:MCUvsSOC、嵌入式系统、芯片选型、
- python笔记:进程和线程—分布式进程
zyckhuntoria
pythonfoundation
一、分布式进程Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。一个服务进程可以作为调度者,将任务分布到其他多个进程中,依靠网络通信。由于managers模块封装很好,不必了解网络通信的细节,就可以很容易地编写分布式多进程程序。二、举例实
- Unity 扩展方法
程序员也有头发
Unity开发unity游戏引擎游戏程序
比如我们要给transform做还原方法publicstaticclassExtensionMethod{publicstaticvoidResetTransformation(thisTransformtrans){trans.position=Vector3.zero;trans.localRotation=Quaternion.identity;trans.localScale=Vector
- How to improve the solder creep of solder paste during the soldering process?
px5213344
pcb工艺
Solderpastecreepingtinforprintingqualityandsolderingeffectiscritical.Toimprovethesolderpasteinthesolderingprocesstoclimbthetin,youcanstartfromthefollowingaspects:1.thepasteselectionandprocessingSolder
- Analysis of QFN package bridging phenomenon and suggestions for improvement
px5213344
pcb工艺
1.OverviewofthebridgingphenomenonBridginginQFNpackagesisparticularlycommonbetweentheinnerrowsofsolderjointsindouble-rowQFNs,andrelativelyrareinsingle-rowQFNs.Bridgingoccurswhensolderispressedagainstan
- 图像工具插件:Editor.js 的图像处理解决方案
贡沫苏Truman
图像工具插件:Editor.js的图像处理解决方案imageImageBlockforEditor.js项目地址:https://gitcode.com/gh_mirrors/image8/imageEditor.js的图像工具插件是一个强大的开源项目,致力于为Editor.js富文本编辑器提供图像处理功能。该项目主要使用JavaScript编程语言,并且是基于Editor.js的插件架构进行开发
- 芯片时钟树结构(H-tree,Fishbone,FlexH,Mesh等)的对比、应用实例及未来趋势
赛卡
人工智能服务器云计算边缘计算
引言在先进制程芯片设计中,时钟树综合(ClockTreeSynthesis,CTS)的优化程度直接影响芯片的时序收敛、功耗分布和面积利用率。随着工艺节点演进至5nm及以下,时钟网络的复杂性和设计约束呈现指数级增长。本文将深入解析H-tree、Fishbone、FlexHtree及Clockmesh四种主流时钟树结构的技术特性,结合服务器芯片、GPU及AI芯片的实战案例,并探讨主流EDA工具对CTS
- Python进程与线程:分布式进程
梧桐树0429
python分布式开发语言
在Python中,当我们面临选择使用线程(Thread)还是进程(Process)时,进程往往因其更高的稳定性和可扩展性而被优先考虑。特别是,进程能够跨越多台机器进行分布,而线程则受限于同一台机器的多个CPU核心。Python的multiprocessing模块不仅支持多进程,其managers子模块更是提供了将多进程分布到多台机器上的能力。通过managers模块,我们可以轻松编写分布式多进程程
- Python 进程与线程-分布式进程
赔罪
分布式python开发语言
目录分布式进程小结分布式进程在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。一个服务进程可以作为调度者,将任务分布到其他多个进程中,依靠网络通信。
- WPF框架介绍---Prism框架(万字长文一篇文章带你弄懂Prism)
白白白白纸呀
WPF知识总结.netc#开发语言windowswpf
目录Prism中的基本对象数据与行为对象1.BindableBase:数据绑定的基础作用与特性关键方法使用示例2.DelegateCommand/DelegateCommand:行为的封装作用与特性关键方法使用示例无参数命令带参数的命令在XAML中绑定命令Prism框架中的IoC(控制反转)容器1.核心接口与配置1.1容器配置入口1.2关键接口2.服务注册方式2.1基础注册2.2生命周期控制3.依
- python/R 连接 clickhouse
weixin_41283198
pythonclickhouser语言python大数据r语言
1、python-clickhouseimportnumpyasnpfromclickhouse_driverimportClientimportpandasaspdsql=open('/opt/check_detect_local.sql','r',encoding='utf8')sqltxt=sql.readlines()print(len(sqltxt))sqls=[]foriinnp.ar
- Docker 构建 nginx-redis-alpine 项目详解
TechStack 创行者
#服务器容器Linuxdocker容器运维nginxredis
Docker构建nginx-redis-alpine项目详解一、课程概述嘿,朋友们!今天咱们要深入探索一个超级实用的项目——nginx-redis-alpine!这个项目可不简单,它包含了好多重要的知识点,像文件目录结构、核心文件的作用及配置、自签名证书的生成,还有镜像构建和容器运行等等。我保证,跟着我一步步走,你就能彻底搞懂这个项目的实现原理和各种应用场景,让你在Docker世界里更加游刃有余!
- ddddocr识别图片中的汉字
雪小妮
python
ddddocr识别图片中的汉字importddddocrfromioimportBytesIOfromPILimportImageurl='图片地址'resp=requests.get(url)img=Image.open(BytesIO(resp.content))#初始化OCR模型#创建DdddOcr对象并初始化模型ocr=ddddocr.DdddOcr()#调用recognize函数进行图像
- nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in usrlocalnginxconfnginx.conf128
m0_67391401
面试学习路线阿里巴巴android前端后端
前情回放:我一个前端被发配到客户那里当运维,我只想安安静静的敲代码怎么就这么难呢(我太难了。。。)。言归正传,遇到客户要求把http换成https,客户这边是生产环境。没有办法随便搞,只能把自己的域名换成https了,经过2天的努力啃骨头,终于搞定了,为了避免忘记,遇到了几个个问题,特此记录一下。准备工作:1一台服务器(我的是腾讯服务器),一个域名(我的是阿里申请的域名),服务器打开443端口(我
- Linux内核课程学习心得
萝卜cherish
linux内核分析linux内核学习总结
罗晓波+原创作品转载请注明出处+《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000不知不觉,八周课程一晃而过,回想起当初选择这门课到学习完最后一个课件,也是一个习惯的养成了,到现在我倒是习惯性地在周五和周日上一下课程主页,不过在这八周的线上课程学习中,我还是有所收获的,下面把我的一点小感想分享一下吧。课程第一周,通过一
- 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层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数