生活记录--九寨沟版 前言一直都是更新技术文章,感觉好好记录一下生活也是很有趣的。刚好最近生活发生了比较大的变动。随意记录一下。 工作跳槽了。想想毕业也两年了,在公司感觉上升通道有限,想换一个更大的平台。为此准备了半年多,整个准备下来,感觉和当初校招差不多,面试的内容差不多,唯一的区别是去掉了很多计算机原理的问题,基本没有碰到计算机网络和操作系统相关问题。而且个人感觉,如果简历中没有什么比较特别的亮点,那么面试纯粹就 2024-08-30 杂谈 #随笔 #生活日常
数据库事务--分布式事务(4) 谈及分布式事务,就必须涉及多个服务,多个数据源。既然还是属于事务,那么目的还是尽可能保证数据一致性,只不过手段上,不能像传统事务那么简单的在单数据源上解决问题。 例子引入下面笔者尝试根据自己有限的理论介绍清楚分布式事务,到底解决什么问题,各个解决方案有什么问题。首先引入,分布式事务中常用例子,一个电商场景中用户购买商品,涉及仓储服务,订单服务,账户服务。用代码来表示就是这样的: 123456789 2024-08-14 数据库 #数据库 #事务 #分布式系统
分布式系统知识大纲 本文将简单介绍分布式系统涉及的技术点,可以作为一个学习大纲。后续还需要深入的学习其中的知识点。 背景互联网的繁荣发展给每个人的生活带来了翻天覆地的变化。而这些对于提供互联网服务的公司也带来的大流量的压力,传统的单机承接不了这么大的流量压力,哪怕是升级机器配置也有承受的上限!而 分布式系统 就是来解决这个问题的,它可以理解为多个普通计算机节点联合起来一起工作,对客户端而言,就像只有一台单机在工 2024-03-29 架构设计 #分布式系统
DDD学习笔记 本文是博客学习笔记,可以说是缝合怪,原文在后面的参考链接中 什么是 DDD与传统架构的差异常见的业务三层架构: 再看 DDD 的架构:来看两者的区别: DDD 架构中,分为了接口层,应用层,领域层,基础设施层。相比于原来的三层模型,可以认为 DDD 讲业务层拆分为了应用层和领域层。其中,应用层主要是做业务逻辑的组装,它会调用基础设施和领域层的接口来组装业务。而领域层则是一些核心的业务操作,最 2024-01-27 杂谈 #架构
logback源码分析 引子最近排查一个线上异常,发现起因是日志打印不完整,使用的日志框架正是 logback,在排查问题的过程中深入学习了相关源码,虽然最后没有得到可靠的结论,排查过程中没有发现有对单条日志大小进行限制的配置,我认为是数据落盘的时候丢失了一部分。 slf4jJava 的日志框架常用的有 log4j、logback、jul(common-log)以及 log4j2。为了实现不同日志框架之间的无缝切换,Ce 2024-01-06 工具框架 #日志
数据库事务--隔离性与MVCC(3) 前言并发是程序最为复杂的场景之一,在数据库领域,做好隔离就是为了解决并发的问题。然而不同于我们在业务场景中处理并发问题,直接加锁就好了。对于数据库,还得考虑整体吞吐量,不能用锁“一棍子打死”。于是就存在诸如读锁,写锁,意向锁,范围锁等一系列锁的类型。而且锁的范围也得考虑,锁表,还是只锁对应的行。这些都是需要考虑的,同时,除了锁,还会存在并发程度高的解决方案,如MVCC(多版本并发控制协议) 等锁+ 2023-12-26 数据库 #数据库 #事务
数据库事务--原子性和持久性原理(2) 例子引入对于原子性和持久性的解释可以看上一篇文章。下面是一个简单的例子:用户在一个网站上注册了信息,这个功能最终需要保存用户信息到数据库上。假如数据库没有任何保护措施。在程序将数据从内存搬运到对应磁盘位置时,断电了(crash),这就会产生脏数据了。如果真的这样发生了,那就相当于数据库没有一点保护措施。 问题解决方案一也是业内最常用的方案,保留中间状态,比如增加操作日志 commit log。在保 2023-11-17 数据库 #数据库 #事务
大模型-未来已来 最近参加公司举办的 AIGC 比赛,准备过程中开始学习如何使用 chatgpt,也就是接触了提示工程学科。非常震惊于大模型的能力,掌握一定诀窍的和它对话,如同和一个领域专家对话。 理解人工智能的思维人工智能的大脑由数十亿个人工神经元组成。这些神经元的结构被称为 transformer 架构,它是一种相当复杂的神经网络类型。你需要了解的是: 这些人工智能只是数学函数。它们更像是f(成千上万的变量) 2023-11-05 杂谈 #随笔
netty开篇--网络编程的这些事儿 引子官网介绍:Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.异步指的是 IO 模型。事件驱动指的是线程模型。为了让大家更好的理解,我们回顾 2023-10-25 中间件 #netty #网络编程
数据库事务--开篇介绍(1) 事务的定义百度百科: 事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。 百科的描述是很模糊的,不过事务的本身确实仅仅指的一些程序操作,只不过这些操作具备 ACID 特性。于是,我们可以将事务定义为具备 ACID 特性的多个程序执行指令。我们以小明向小红转账 100 元为例说明这几个特性。对于转账操作, 2023-10-22 数据库 #数据库 #事务