CS科学理论
ThinkPet
青年码农一枚
展开
-
【面经】先更新缓存好?还是先更新数据库好?
如果数据的一致性非常重要,那么应该选择先更新数据库,再更新缓存的策略。如果数据库的负载是一个问题,那么应该选择先更新缓存,再异步更新数据库原创 2023-11-10 18:12:22 · 344 阅读 · 0 评论 -
【面经】讲一下BASE理论
其核心思想是即使无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。BASE理论是 基本可用(Basically Available)、软状态(Soft State)、最终一致性(Eventual Consistency)的简称。BASE理论满足CAP原理,通过牺牲强一致性获得可用性,一般应用于服务化系统的应用层或者大数据处理系统中,通过达到最终一致性来尽量满足业务的绝大多数需求。原创 2023-11-09 09:10:54 · 125 阅读 · 0 评论 -
【面经】服务熔断和服务降级的区别
服务降级是指当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。服务降级是系统自我保护的一种机制,以确保系统不会因过载而崩溃。原创 2023-11-03 17:40:50 · 221 阅读 · 0 评论 -
机器学习入门
机器学习--入门概念原创 2023-08-10 07:10:02 · 118 阅读 · 0 评论 -
大数据-数据内容分类
结构化数据:可以使用关系型数据库表示和存储,可以用二维表来逻辑表达实现的数据结构化数据:二维表(关系型)结构化数据:先有结构、再有数据数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的,存储在数据库中如mysql数据库中的数据、csv文件能够用数据或统一的结构加以表示,如数字、符号能够用二维表结构来逻辑表达实现,包含属性和元组,如:成绩单就是属性,90分就是其对应的元组结构化的数据的存储和排列是很有规律的,这对查询和修改等操作很有帮助针对结构化数据存在成熟的分析工具。原创 2023-08-05 16:34:07 · 1009 阅读 · 0 评论 -
背压-相关技术及概念笔记
背压-相关技术及概念笔记。原创 2023-08-05 14:07:43 · 1079 阅读 · 0 评论 -
SQL调优教程
什么是好的sql语句:1.尽量简单,模块化2.易读,易维护3.节省资源(内存/cpu/扫描的数据块要少/少排序)4.不造成死锁。原创 2023-07-20 20:38:40 · 441 阅读 · 0 评论 -
微服务设计原则--笔记
单一职责原则指的是一个单元(类、方法或者服务等)只应关注系统功能中单独、有界限的一部分。单一职责原则可以帮助我们优雅的开发、敏捷的交付。单一职责也是SOLID原则之一。原创 2023-05-28 12:05:33 · 461 阅读 · 0 评论 -
算法的时间复杂度
O(n):线性时间复杂度,表示算法的运行时间与输入规模呈正比关系,即随着输入规模的增加,时间消耗也会呈线性增长。O(log n):对数时间复杂度,表示算法的运行时间随输入规模增长而增长,但增长率远远慢于线性增长。O(1):常数时间复杂度,表示无论输入规模大小是多少,算法都需要相同的时间完成。例如读取数组中某个元素。O(n^2):平方时间复杂度,表示算法的运行时间与输入规模的平方成正比,通常出现在嵌套循环的情况下。O(2^n) :指数时间复杂度,指定量级的问题规模越大,时间的增长率指数级别上升,非常低效。原创 2023-05-21 10:27:41 · 296 阅读 · 0 评论 -
什么是B+树
B+树是一种多路搜索树,它的磁盘读写代价比较低,适合用于存储海量数据的索引结构。因此,B+树是一种高效的索引结构,被广泛应用于数据库和文件系统等领域。原创 2023-05-10 22:40:46 · 194 阅读 · 0 评论 -
聚簇索引、非聚簇索引的介绍
非聚簇索引的优点是在表的数据发生变化时,不需要重新组织索引结构,这样可以减少维护索引的时间。但是非聚簇索引的缺点是查询效率相对较低,因为需要进行两次磁盘I/O操作来查找数据行:第一次是查找索引条目,第二次是查找实际数据行。聚簇索引只能创建在表的主键上,因为主键的值是唯一的,可以作为索引的标识符。聚簇索引的优点是可以提高查询效率,因为相邻的数据行通常都在同一簇中,这样可以减少磁盘I/O的次数。但是聚簇索引的缺点是当表的数据发生变化时,需要重新组织索引结构,这样会造成性能的下降。原创 2023-05-10 22:36:05 · 686 阅读 · 0 评论 -
自定义协议怎么解决粘包问题
需要根据具体的协议和应用场景选择适合的解决方案。原创 2023-05-10 22:35:25 · 200 阅读 · 0 评论 -
微服务架构
例如,电子商务平台可以将订单、库存、支付、物流等不同的业务逻辑拆分为独立的服务,从而实现高效、灵活、可扩展的系统架构。微服务架构是一种分布式系统架构风格,它将应用程序拆分为一组小的、松散耦合的服务,每个服务都有自己独立的进程和数据存储。随着互联网技术的不断发展,软件系统的规模越来越庞大,传统的单体应用架构面临许多挑战,如低效、难以维护、难以扩展等问题。总之,微服务架构是一种现代化的分布式系统架构风格,它具有高度可扩展性、易于维护、高度灵活性和高度可靠性等优点,适用于大型、复杂的应用程序。原创 2023-03-20 21:13:56 · 121 阅读 · 0 评论 -
设计分布式存储系统
总之,分布式存储系统的架构设计需要考虑很多方面,包括数据存储和管理、数据访问和传输、负载均衡和故障转移、网络通信和安全性、系统监控和管理等。在实际设计中,需要根据具体的需求和场景来选择合适的技术和方案,以实现系统的高性能、高可用性和高可扩展性。网络通信和安全性:分布式存储系统需要通过网络进行数据的传输和通信,因此需要考虑网络通信的安全性、稳定性和效率。数据存储和管理:数据存储是分布式存储系统的核心,需要考虑数据如何分布、如何备份、如何恢复等问题。原创 2023-03-20 21:04:43 · 354 阅读 · 0 评论 -
软件需求管理
通过对软件需求的全面、系统、有效的管理,可以保证软件项目的质量、进度和成本,提高软件开发的成功率和用户满意度。需求获取和分析:通过与用户、客户和利益相关者的沟通和交流,获取和分析软件需求。需求文档化:将获取和分析得到的需求文档化,包括需求规格说明书、用例文档、需求追踪矩阵等。需求变更管理:随着项目的推进和用户需求的变化,软件需求可能会发生变更。因此,需要对需求变更进行管理,包括变更申请的评审、变更的记录、变更的控制和通知等。需求验证和确认:需求验证和确认是指通过测试和评审等方式,对软件需求进行验证和确认。原创 2023-03-20 21:00:56 · 1020 阅读 · 0 评论 -
软件架构风格
总之,软件架构风格是软件系统设计和实现的重要参考,不同的架构风格适用于不同的场景和需求。在选择架构风格时,需要根据具体的需求和场景来进行权衡和选择,以实现系统的高性能、可扩展性、可维护性和可靠性。这种架构风格能够实现分布式计算,提高系统的性能和可扩展性。微服务架构风格:将系统拆分成多个小型的、自治的服务,每个服务都可以独立部署和运行。事件驱动架构风格:系统中的各个组件通过事件进行通信,每个组件都可以触发和处理事件。软件架构风格是指在软件系统开发过程中,设计和实现系统架构时所遵循的一系列原则和模式。原创 2023-03-20 20:57:36 · 285 阅读 · 0 评论 -
面向服务架构设计及其应用
云计算和大数据:SOA可以实现云计算和大数据系统的构建,通过将云计算和大数据业务拆分为多个服务,实现数据在不同服务之间的共享和协同。企业应用集成:SOA可以实现企业应用之间的集成,通过将企业应用分解为多个服务,实现不同应用之间的数据共享和业务流程协同。电子商务:SOA可以实现电子商务系统的构建,将电子商务业务拆分为多个服务,通过服务的组合来实现复杂的业务流程。移动应用:SOA可以实现移动应用的构建,通过将移动应用业务拆分为多个服务,实现移动应用与后端服务的协同。原创 2023-03-20 20:55:04 · 910 阅读 · 0 评论 -
数据分片技术及其应用
数据分片技术原创 2021-11-13 19:51:18 · 563 阅读 · 0 评论