- 连接池配置 连接池提供了许多参数,最重要的就是最大连接数,连接池能使用的连接数达到上限后,新来的请求需要等待其他请求释放连接。 最大连接数不是越大越好: 过大 客户端需耗费过多资源维护连接,且由于服务端对应的是多个客户端,每一个客户端都保持大量连接,会给服务端带来更大压力:不仅是内存压力,若服务端的网络模型是一个TCP连接一个线程,那么几千个连接意味着几千个线程,... 连接池配置 连接池提供了许多参数,最重要的就是最大连接数,连接池能使用的连接数达到上限后,新来的请求需要等待其他请求释放连接。 最大连接数不是越大越好: 过大 客户端需耗费过多资源维护连接,且由于服务端对应的是多个客户端,每一个客户端都保持大量连接,会给服务端带来更大压力:不仅是内存压力,若服务端的网络模型是一个TCP连接一个线程,那么几千个连接意味着几千个线程,...
- 1 秒杀的问题 服务单一、独立部署 秒杀服务即使自己扛不住高并发而宕机,也不要造成服务雪崩。 秒杀链接加密 避免恶意攻击,机器人模拟秒杀请求避免链接暴露,自己工作人员,提前秒杀商品 库存预热、快速扣减 秒杀读多写少。无需每次实时校验库存。库存预热,放到Redis,信号量控制进来秒杀的请求。 动静分离 Nginx做好动静分离。静态资源 Nginx 直接返回... 1 秒杀的问题 服务单一、独立部署 秒杀服务即使自己扛不住高并发而宕机,也不要造成服务雪崩。 秒杀链接加密 避免恶意攻击,机器人模拟秒杀请求避免链接暴露,自己工作人员,提前秒杀商品 库存预热、快速扣减 秒杀读多写少。无需每次实时校验库存。库存预热,放到Redis,信号量控制进来秒杀的请求。 动静分离 Nginx做好动静分离。静态资源 Nginx 直接返回...
- 1 什么是幂等性 用户对于同一操作发起的一次请求或者多次请求的结果是一致的。 比如数据库的乐观锁,在执行更新操作前,先去数据库查询version,然后执行更新语句,以version作为条件,如果执行更新时有其他人先更新了这张表的数据,那么这个条件就不生效了,也就不会执行操作了,通过这种乐观锁的机制来保障幂等性. 2 Con幂等性 2.1 什么是Con幂等性 消... 1 什么是幂等性 用户对于同一操作发起的一次请求或者多次请求的结果是一致的。 比如数据库的乐观锁,在执行更新操作前,先去数据库查询version,然后执行更新语句,以version作为条件,如果执行更新时有其他人先更新了这张表的数据,那么这个条件就不生效了,也就不会执行操作了,通过这种乐观锁的机制来保障幂等性. 2 Con幂等性 2.1 什么是Con幂等性 消...
- 0 MySQL HA/Scalability 如何关上“删库跑路”的后门,维护我们的数据安全呢? 数据是当今Web,移动,社交,企业和云应用程序的流行货币。确保数据始终可用是任何组织的头等大事。几分钟的停机时间可能会导致收入和声誉严重损失。 没有提供高可用性(HA)的“一刀切”的方法。独特的应用程序属性,业务需求,运营能力和传统基础架构都可以影响HA技术的选择。... 0 MySQL HA/Scalability 如何关上“删库跑路”的后门,维护我们的数据安全呢? 数据是当今Web,移动,社交,企业和云应用程序的流行货币。确保数据始终可用是任何组织的头等大事。几分钟的停机时间可能会导致收入和声誉严重损失。 没有提供高可用性(HA)的“一刀切”的方法。独特的应用程序属性,业务需求,运营能力和传统基础架构都可以影响HA技术的选择。...
- 只要使用Redis缓存,就必然存在缓存和DB的数据一致性问题。若数据不一致,那么业务应用从缓存中读取的数据就不是最新数据,这会导致严重的错误。比如把电商商品的库存信息缓存在Redis,若库存信息不对,则业务层下单操作就可能出错,这是不能接受的。 为何缓存和DB数据会不一致 数据一致性是什么意思,“一致性”包含如下情况: 若缓存中有数据,则缓存的数据值需要和DB值相... 只要使用Redis缓存,就必然存在缓存和DB的数据一致性问题。若数据不一致,那么业务应用从缓存中读取的数据就不是最新数据,这会导致严重的错误。比如把电商商品的库存信息缓存在Redis,若库存信息不对,则业务层下单操作就可能出错,这是不能接受的。 为何缓存和DB数据会不一致 数据一致性是什么意思,“一致性”包含如下情况: 若缓存中有数据,则缓存的数据值需要和DB值相...
- 1 需求 添加积分 在用户签到的基础上添加用户积分,签到 1 天送 10 积分,连续签到 2 天送 20 积分,3 天送 30 积分,4 天以上均送 50 积分。积分排行榜 2 表设计 利用MySQL保存积分数据 这类似于一张日志表,因此数据量很大,想要统计用户积分做排行榜时,表数据可能如下: 3 实现TopN积分排行榜 MySQL 方案 统计 SQL ... 1 需求 添加积分 在用户签到的基础上添加用户积分,签到 1 天送 10 积分,连续签到 2 天送 20 积分,3 天送 30 积分,4 天以上均送 50 积分。积分排行榜 2 表设计 利用MySQL保存积分数据 这类似于一张日志表,因此数据量很大,想要统计用户积分做排行榜时,表数据可能如下: 3 实现TopN积分排行榜 MySQL 方案 统计 SQL ...
- SQL 语句主要可以划分为以下 3 个类别。 DDL(Data Definition Languages)语句 数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter等。 DML(Data Manipulation Language)语句 数据操纵语句,用于添加、删除、更新和查... SQL 语句主要可以划分为以下 3 个类别。 DDL(Data Definition Languages)语句 数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter等。 DML(Data Manipulation Language)语句 数据操纵语句,用于添加、删除、更新和查...
- 所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”,永远都不要再使用“utf8”。 MySQL的“utf8”不是真正的UTF-8。“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。 MySQL一直没有修复这个bug,他们在2010年发布了一个叫作“utf8mb4”的字符集,绕过这个问题。 几乎所有的... 所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”,永远都不要再使用“utf8”。 MySQL的“utf8”不是真正的UTF-8。“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。 MySQL一直没有修复这个bug,他们在2010年发布了一个叫作“utf8mb4”的字符集,绕过这个问题。 几乎所有的...
- CQRS(Command Query Responsibility Segregation),命令查询责任隔离。我最初听到的是Greg Young描述的一种模式。其核心思想是,可以使用与用于读取信息的模型不同的模型来更新信息。在某些情况下,这种分离可能很有价值,但请注意,对于大多数系统,CQRS会增加风险的复杂性。 人们用于与信息系统进行交互的主流方法是将其视为CRUD... CQRS(Command Query Responsibility Segregation),命令查询责任隔离。我最初听到的是Greg Young描述的一种模式。其核心思想是,可以使用与用于读取信息的模型不同的模型来更新信息。在某些情况下,这种分离可能很有价值,但请注意,对于大多数系统,CQRS会增加风险的复杂性。 人们用于与信息系统进行交互的主流方法是将其视为CRUD...
- 1 前言 很多需要使用事务的场景,都只是在方法上直接添加个@Transactional注解 但是,你以为这真的够了吗? 事务如果未达到完美效果,在开发和测试阶段都难以被发现,因为你难以考虑到太多意外场景。但当业务数据量发展,就可能导致大量数据不一致的问题,就会造成前人栽树后人踩坑,需要大量人力排查解决问题和修复数据。 2 如何确认Spring事务生效了? 使用... 1 前言 很多需要使用事务的场景,都只是在方法上直接添加个@Transactional注解 但是,你以为这真的够了吗? 事务如果未达到完美效果,在开发和测试阶段都难以被发现,因为你难以考虑到太多意外场景。但当业务数据量发展,就可能导致大量数据不一致的问题,就会造成前人栽树后人踩坑,需要大量人力排查解决问题和修复数据。 2 如何确认Spring事务生效了? 使用...
- 数据库也需要合理控制资源的访问规则,而锁就是用来实现这些访问规则的数据结构。 根据加锁的范围,MySQL里面的锁大致可以分成 全局锁表级锁行锁 今天先说全局锁和表级锁。 全局锁 对整个数据库实例加锁。MySQL提供了一个加全局读锁的命令 Flush tables with read lock (FTWRL) 1 当需要让整个库只读时,可使用该命令,之后其... 数据库也需要合理控制资源的访问规则,而锁就是用来实现这些访问规则的数据结构。 根据加锁的范围,MySQL里面的锁大致可以分成 全局锁表级锁行锁 今天先说全局锁和表级锁。 全局锁 对整个数据库实例加锁。MySQL提供了一个加全局读锁的命令 Flush tables with read lock (FTWRL) 1 当需要让整个库只读时,可使用该命令,之后其...
- 记下 DB 存取与文件存取的差异 本文来源于之前做的一个小程序科技爱好者周刊在文章数据存储上的技术选型思考。 当时想着后期把文章 markdown 文件内容迁移到云数据库通过云函数查询出来显示。后来想想为什么非要这么做呢,数据库存取就一定好吗?? 存储数据方式 数据库的要比单纯的文件存储复杂很多。 以 Oracle 为例: 从数据库的内存结构上来看,一个运行的数据... 记下 DB 存取与文件存取的差异 本文来源于之前做的一个小程序科技爱好者周刊在文章数据存储上的技术选型思考。 当时想着后期把文章 markdown 文件内容迁移到云数据库通过云函数查询出来显示。后来想想为什么非要这么做呢,数据库存取就一定好吗?? 存储数据方式 数据库的要比单纯的文件存储复杂很多。 以 Oracle 为例: 从数据库的内存结构上来看,一个运行的数据...
- 题目回数是指从左向右读和从右向左读都是一样的数,例如123321,909。请利用filter()滤掉非回数。 1、程序分析 filter()把传入的函数一次作用于每个元素,然后如果返回值是True,则保留该元素,如果返回值为False,则丢弃该元素。 利用切片方法:[:... 题目回数是指从左向右读和从右向左读都是一样的数,例如123321,909。请利用filter()滤掉非回数。 1、程序分析 filter()把传入的函数一次作用于每个元素,然后如果返回值是True,则保留该元素,如果返回值为False,则丢弃该元素。 利用切片方法:[:...
- FlyBlog 二期90天进阶训练营的课程课后作业,搭建一个blog 20181101更新 摘要 本期主要完成了集成mybatis plus、lombok,Redis,做好全局异常处理,并且把layui社区的页面集成到项目中,然后就是完成首页的渲染。 环境 框架版本springboot2.0.1.RELEASEJDK1.8mysql5.6 项目结构 集... FlyBlog 二期90天进阶训练营的课程课后作业,搭建一个blog 20181101更新 摘要 本期主要完成了集成mybatis plus、lombok,Redis,做好全局异常处理,并且把layui社区的页面集成到项目中,然后就是完成首页的渲染。 环境 框架版本springboot2.0.1.RELEASEJDK1.8mysql5.6 项目结构 集...
- 废话不多说,直接撸代码!!! //下面的代码是一个实现C++连接MYSQL数据库的很好的例子//这里用了建表,插入,检索,删表等常用功能//我用VC++6.0生成,已经成功连接了。//在VC++6.0中要想把做一下两步准备工作才可以。//(1)Tools->Options->Directories->Include files中添加C:\Prog... 废话不多说,直接撸代码!!! //下面的代码是一个实现C++连接MYSQL数据库的很好的例子//这里用了建表,插入,检索,删表等常用功能//我用VC++6.0生成,已经成功连接了。//在VC++6.0中要想把做一下两步准备工作才可以。//(1)Tools->Options->Directories->Include files中添加C:\Prog...
上滑加载中
推荐直播
-
华为云师资培训——《软件工程》课程
2025/08/05 周二 15:00-16:30
Pamela - PaaS开发者支持讲师
华为云师资培训直播,带您掌握产业级软件工程课程体系与华为开发者空间实战能力,助力高校数字化转型!
回顾中 -
大模型赋能开发者社区生态建设
2025/08/05 周二 20:00-21:00
上海交通大学教授曹健
当AI技术重构开发者生态,社区建设如何跳出“流量陷阱”,回归价值本质?本次直播特邀深耕开发者社区研究的专家,上海交通大学教授曹健老师,通过 “社区生态三维模型”(价值共生、技术赋能、情感联结)的核心理论,拆解AI时代社区建设的底层逻辑。如何用AI工具降低参与门槛,让技术交流从“精英圈层”走向“普惠共生”?怎样通过算法优化内容匹配,让社区资源精准触达开发者真实需求?当机器逐渐承担基础协作,社区如何强化“人与人”的情感认同,避免沦为冰冷的技术工具库?
回顾中
热门标签