- 博客(412)
- 收藏
- 关注
原创 docker 安装redis
docker stop myredis # myredis 是我启动redis 命名的别名。# 命令: docker rm <容器名称>或者<容器id># 删除镜像 命令 docker rmi <容器 id># 停止命令:docker stop <容器名>RedisDesktopManager连接。5. 删除Redis镜像(删除容器后进行)4. 删除redis 容器。或者 navicat16。强制删除正在运行的容器。停止运行的Redis。
2025-11-29 19:33:35
455
原创 DOCKER部署Tomcat
本文介绍了使用Docker部署Tomcat容器的步骤。首先拉取Tomcat 9.0镜像,然后创建容器并设置端口映射(8080)和目录映射(/usr/local/tomcat/webapps)。针对高版本Tomcat访问404错误问题,提供了解决方案:进入容器后删除空webapps目录,并将webapps.dist重命名为webapps。最后还介绍了管理Tomcat容器的常用命令,包括查看、停止、启动和删除容器等操作。
2025-11-28 16:34:44
214
原创 Docker部署mysql
Docker 应用部署一、部署MySQL拉取mysql镜像3. 创建容器,设置端口映射、目录映射赋权启动查看运行镜像docker ps查看日志设置开机自动启动/取消开机启动docker update --restart=always 容器IDdocker update --restart=no 容器ID。
2025-11-28 10:36:40
840
原创 开发技术及软件开发流程透视
软件开发工作流程包括项目来源、团队组建、开发模型选择(如瀑布、迭代、原型模型)等环节。团队由项目经理(PM)、架构师、需求分析师、开发工程师、测试工程师等组成。项目经理负责统筹,架构师需专业技能,需求分析师负责系统分析(如成绩管理系统),开发工程师进行编码,测试人员制定测试计划、用例和报告。实施工程师负责系统维护。招聘要求注重专业技能和团队协作能力。
2025-09-08 08:28:08
266
原创 Restful
在互联网早期,尚未完全普及且移动设备并不广泛使用的时候,对API的需求相对较低。那时,由于页面请求量和并发用户较少,因此采用了复杂的协议来进行数据操作和传输。随着移动设备的增多,网页应用从这些设备访问变得日益重要。这一变化反映出用户行为和期望的巨大转变,需要更有效的客户端和服务器之间的沟通方式。此时,API的重要性愈发突出,它们成为了移动设备与网页应用之间无缝交互的桥梁。REST:英文representational state transfer直译为表现层状态转移,或者表述性状态转移;
2025-05-05 09:51:31
1160
原创 架构师-金丝雀与蓝绿发布
验证新版本符合预期后,逐步调整流量权重比例,使得流量慢慢从老版本迁移至新版本,期间可以根据设置的流量比例,对新版本服务进行扩容,同时对老版本服务进行缩容,使得底层资源得到最大化利用。在保留老版本的同时部署新版本,将两个版本同时在线,新版本和老版本相互热备,通过切换路由权重的方式(非0即100)实现应用的不同版本上线或者下线,如果有问题可以快速地回滚到老版本。金丝雀发布,又称灰度发布,是指通过让小部份用户流量引入的新版本进行测试,如果一切顺利,则可以增加(可能逐渐增加)百分比,逐步替换旧版本。
2025-05-03 11:51:49
787
原创 RUP的四个阶段
RUP(Rational Unified Process)即统一软件开发过程,是一个面向对象且基于网络的程序开发方法论,它包括四个连续的阶段,每个阶段都有明确的目标和里程碑。
2025-03-05 09:46:02
777
原创 使用 Spring Initializr 创建 Spring Boot 项目
再次确认需要的项目名称,然后选择项目存储的位置,还可以进行更多的设置,包括模块名称,内容根目录,模块所在位置等信息,一般按默认的就可以了,点击 Finish 完成。如果选择的项目存储的目录不存在,则会提示你 IDEA 将进行创建这个目录。,默认选择你的 JDK 和构建 Spring Boot 项目的 URL,接着点击右下角的 Next。选择 Spring Boot 版本,勾选项目需要的依赖项,这里目前勾选需要的 Spring Web 依赖,搞定点击 Next 继续。对于这个项目的目录结构,我一般会删除。
2025-02-27 18:04:03
575
原创 分布式事务三阶段协议
分布式事务的三阶段分别是准备阶段、预提交阶段和提交 / 回滚阶段,以下是详细介绍:三阶段提交协议可以理解为两阶段提交协议的改良版,是在协调者和参与者中都引入超时机制,并且把两阶段提交协议的第一个阶段分成了两步: 询问,然后再锁资源,最后真正提交。两阶段提交协议最早是分布式事务的专家Jim Gray在1978年的一篇文章Notes on Database Operating Systems中提及。两阶段提交协议可以保证数据的强一致性,即保证了分布式事务的原子性:所有结点要么全做要么全不做。
2025-02-22 20:13:41
905
原创 分布式事务-两阶段提交
分布式两阶段提交(Two-Phase Commit,2PC)是分布式系统中常用的一种原子提交协议,用于保证在分布式事务中所有参与者要么全部提交事务,要么全部回滚事务,以维护数据的一致性。
2025-02-19 16:51:39
1390
原创 分布式事务-XA
XA 模式是一种分布式事务处理的解决方案,它基于 X/Open 组织定义的 XA 规范,用于在分布式系统中协调多个资源管理器(如数据库)以保证事务的原子性、一致性、隔离性和持久性(ACID)。
2025-02-15 16:22:55
898
原创 oltp olap的区别
联机分析处理 OLAP 能使分析人员迅速、一致、交互地从各个方面观察信息,具有共享多维信息快速分析的特征,其中的多维性可满足从时间、地区和商品种类三个维度分析数据的需求。ETL 是将数据从来源端经过抽取、交互转换、加载至目的端的过程,主要用于数据仓库的构建,均不符合题意。而 ETL 是构建数据仓库的一个环节,数据展现是商业智能的一个部分,但不是关键技术,OLTP 主要用于日常事务处理,不属于商业智能的关键技术,所以答案为 A。B.OLTP 系统的数据更新频率高,OLAP 系统的数据更新频率低。
2025-02-13 09:49:21
1244
原创 分布式事务-AT模式
AT 模式的一阶段、二阶段提交和回滚均由 Seata 框架自动生成,用户只需编写“业务 SQL”,便能轻松接入分布式事务,AT 模式是一种对业务无任何侵入的分布式事务解决方案。但AT模式存在的不足就是 当操作的数据 是共享型数据,会存在脏写的问题,所以如果是 用户独有数据可以使用AT模式。AT 模式是一种无侵入的分布式事务解决方案。在 AT 模式下,用户只需关注自己的“业务 SQL”,用户的 “业务 SQL” 作为一阶段,Seata 框架会自动生成事务的二阶段提交和回滚操作。一阶段。
2025-02-13 09:47:40
1354
原创 分布式事务-at模式
AT 模式是在分布式事务处理中,基于支持本地 ACID 事务的关系型数据库,通过对数据的解析和日志记录等技术,来实现分布式事务的最终一致性。此外,在网络通信方面,如果网络不稳定或出现延迟,AT 模式可能会因为等待其他节点的响应而导致事务处理时间延长。但总体来说,在大多数基于关系型数据库的分布式系统中,AT 模式是一种高效、便捷的分布式事务解决方案。不过,AT 模式也有一定的局限性,它依赖于数据库的支持,对一些非关系型数据库或特殊的存储系统可能不太适用。TCC 模式需要在业务代码中显式地实现。
2025-02-11 21:44:38
842
原创 saga模式的选择基于命令还是基于事件的Saga实现方式?
这两种实现方式各有特点,在实际应用中,需要根据具体的业务场景、系统架构和性能需求等来选择合适的实现方式,有时也会将两种方式结合使用,以充分发挥它们的优势。
2025-02-11 21:43:52
606
原创 Saga基于命令和基于事件这实现方式
这两种实现方式各有特点,在实际应用中,需要根据具体的业务场景、系统架构和性能需求等来选择合适的实现方式,有时也会将两种方式结合使用,以充分发挥它们的优势。
2025-02-10 10:22:38
1118
原创 架构师-saga模式
Saga 模式是一种将长事务分解为一系列本地事务的设计模式,每个本地事务都可以独立提交或回滚,通过协调这些本地事务的执行顺序和结果,来保证整个分布式事务的最终一致性。
2025-02-10 10:03:31
1254
原创 分布式事务-tcc异常中的空回滚
因为是全局事务,A服务调用服务C的try时服务出现异常服务B因为网络或其他原因还没执行try方法,TCC因为C的try出现异常让所有的服务执行cancel方法,比如B的try是扣减积分 cancel是增加积分,还没扣减就增加显然是有问题的。空回滚是 TCC 分布式事务处理中需要重点关注和妥善处理的问题,它关系到分布式系统中数据的一致性和业务的正常运行。通过合理的设计和处理机制,可以有效应对空回滚带来的挑战,提高系统的稳定性和可靠性。
2025-02-08 11:18:51
692
原创 分布式事务-TCC异常之悬挂
在 TCC(Try - Confirm - Cancel)分布式事务模式中,悬挂是一种需要特别关注的异常情况,以下为你详细介绍 TCC 悬挂的相关内容。在 TCC 事务模式下,我们通过一个事务协调器来管理多个事务,每个事务先执行 try 方法。当所有事务参与者的 try 方法执行成功,就执行 confirm 方法完成真正逻辑的执行,一旦任意一个事务参与者出现异常,就通过 cancel 接口触发事务回滚,释放 Try 阶段占用的资源。
2025-02-08 11:18:36
1022
原创 TCC模式原理
TCC模式与AT模式非常相似,每阶段都是独立事务,不同的是TCC通过人工编码来实现数据恢复。阶段一(Try): 检查余额是否充足,如果充足则冻结金额增加30元,可用余额扣除30。
2025-02-07 18:00:35
512
原创 架构师-幂等性的含义和作用
在分布式环境下,一个操作或方法如果被多次执行所产生的结果与执行一次的结果相同,那么就称这个操作或方法具有幂等性。也就是说,无论该操作被重复执行多少次,对系统状态的影响都只有一次操作的效果,不会因为多次执行而产生额外的副作用或导致数据不一致等问题。定义:接口的幂等性是指在接口调用时,无论对同一接口发起一次还是多次相同的请求,其产生的结果都应该是一致的,不会因为多次调用而产生不同的效果或副作用。这里的 “相同请求” 通常指请求的参数、请求方式以及请求所针对的资源等都完全相同。意义。
2025-02-07 09:39:22
1006
原创 分布式tcc
TCC 即 Try-Confirm/CancelTCC 事务的处理流程与 2PC 两阶段提交类似,不过 2PC 通常都是在跨库的 DB 层面,而 TCC 本质上就是一个应用层面的 2PC,需要通过业务逻辑来实现。这种分布式事务的实现方式的优势在于,可以让应用自己定义数据库操作的粒度,使得降低锁冲突、提高吞吐量成为可能。,业务逻辑的每个分支都需要实现 try、confirm、cancel 三个操作。此外,其实现难度也比较大,需要按照网络状态、系统故障等不同的失败原因实现不同的回滚策略。
2025-02-06 18:34:20
1766
原创 数据库中分库分表的知识
水平分表是将一个表中的数据按照一定的规则(如哈希、范围等)分散存储到多个表中,而将表按照字段进行拆分是垂直分表的概念,所以选项 B 描述错误。选项 A,垂直分库就是按业务功能拆分数据库,比如电商系统中把用户、商品、订单库分开;选项 C,分库分表能分散数据和压力,从而提高并发处理能力;:某互联网电商企业业务发展迅速,其订单数据库单表数据量已经达到了 5 亿条记录,且每天新增订单记录约 10 万条,在业务高峰期数据库的并发查询和写入请求非常大,导致系统响应缓慢。:以下关于数据库分库分表的描述,错误的是( )
2025-02-05 09:37:27
1187
原创 mongodb的使用场景
MongoDB 是一个开源的、面向文档的 NoSQL 数据库,具有高性能、高可扩展性和灵活的数据模型,以下从不同领域为你介绍其使用场景实例:
2025-02-05 09:16:58
1305
原创 mongodb与redis在使用场景上的不同
MongoDB 和 Redis 是两种不同类型的数据库,在使用场景上有明显的区别,以下从数据结构、读写性能、数据持久化、数据规模和复杂度等维度展开分析:
2025-02-03 09:07:22
816
原创 MongoDB语法
很多开发者首次接触数据库的概念或者说接触第一个数据库,通常是 关系型SQL 数据库,而现在,NoSQL 数据库后来居上,很多原 SQL 数据的使用者难免有转向 NoSQL 的需求。而作为 NoSQL 数据库的代表,MongoDB 在社区越来越流行,生产环境的使用也日益广泛。对于 从SQL学习NoSQL的开发人员来说,最难的一步其实是将原有的 SQL 的概念和知识直接复用过来,最大化的减小学习的成本。
2025-02-02 09:40:51
1195
原创 MongoDB的客户端工具 - nosqlbooster使用
今天给大家推荐一款MongoDB的客户端工具--nosqlbooster,这个工具还有个曾用名--mongobooster。nosqlbooster立志做“The Smartest IDE for MongoDB”。它支持 MongoDB v2.6-4.0所有版本,并且更新升级及时。它既有免费版,也有加强升级的付费版。nosqlbooster的官网地址为https://nosqlbooster.com。登入下载网址https://nosqlbooster.com/downloads。
2025-02-02 09:28:22
3444
原创 vmware虚拟机无法打开,如何解决“该虚拟机似乎正在使用中”问题,非正常关闭
今天在用VMware虚拟机的时候,发现打开虚拟机时提示“该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消©”按钮以防损坏。配置文件: D:\vm\vm1.vmx。”这是由于虚拟机未正常关闭引起的,下面看看解决办法。2、我们首先点击“获取所有权(T)”按钮,会发现弹出一个窗口,显示“无法打开虚拟机:D:\vm\vm1.vmx获取该虚拟机的所有权失败。主机上的某个应用程序正在使用该虚拟机。配置文件: D:\vm\vm1.vmx。”等信息。
2025-02-01 15:09:46
4369
5
原创 mongodb与关系型数据库的对比
论述在一个大型电商系统中,MongoDB 与关系型数据库相比,在存储用户评论数据方面的优势和劣势,并说明如何进行两者的结合使用以达到更好的效果。
2025-02-01 14:44:28
1225
原创 Redis一致性哈希算法和哈希槽区别
一致性哈希算法和哈希槽(Hash Slot)都是在分布式系统中用于数据分片和节点映射的技术,主要应用于像 Redis 集群这样需要将数据分散存储在多个节点的场景。一致性哈希是在哈希取余算法基础之上优化的,分布式缓存数据变动和映射问题,某个机器宕机了,分母数量改变了,自然取余数不对了。用于解决分布式缓存系统中的数据选择节点存储问题和数据选择节点读取问题以及在增删节点后减少数据缓存的消失范畴,防止雪崩的发生。
2025-01-31 15:58:59
1525
原创 redis集群切片
Redis 分片集群是一种将 Redis 数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性。在分片集群中,数据被分为多个片段,每个片段存储在不同的节点上,这些节点可以是。
2025-01-31 15:35:29
849
原创 redis list使用场景
Redis List(列表)是一种数据结构,它适用于多种业务场景。以下是一些常见的Redis List应用场景:消息队列:List可以用作一个先进先出(FIFO)的消息队列,用于在生产者和消费者之间传递消息。生产者将消息添加到列表的右侧,消费者从列表的左侧读取消息。时间线/动态:List可以用于存储用户的时间线或动态,例如社交网络中的用户动态、博客文章的时间线等。每个用户都有一个唯一的ID,可以将他们的动态添加到与他们ID相对应的列表中。
2025-01-30 09:51:15
1148
原创 redis 列表(List)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
2025-01-30 09:36:29
744
原创 使用Redis中的Hash数据结构来实现购物车功能
既然不用关系型数据库,但就从非关系型数据库里面做选择了,很多的架构师会选择使用mongodb 存购物车的数据,这也完全可以,mongodb有非常丰富的查询API,性能也比传统关系型数据库要好,使用mongodb确实是个不错的选择。这样的设计在功能完全没问题,但在实际使用中,由于购物车的数据量太大,而且修改频繁,会导致数据库的压力增加,所以在正式项目开发中,一般不会直接使用关系型数据库来存储购物车信息。根据具体的需求,还可以根据用户登录状态、商品的详细信息,扩展购物车的功能,比如添加商品的价格、图片等信息。
2025-01-29 09:47:23
1225
原创 redis hash数据结构的用法
redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
2025-01-29 09:37:21
1009
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅