gydtep 发表于 2021-3-16 13:41:46

给大家举个例子,像数据库组成的强同步,对我们后续技术架构进和业务的改进都是有极大影响的。这个时候大家要对数据库有一个全局的认识。

gydtep 发表于 2021-3-16 14:03:43

2009年用Oracle数据库用的非常多。。我当时不是做数据库相关的,但是为了把Oracle数据库研究透,去学了非常多Oracle数据库相关的内容。了解里面的逻辑,知道它是什么开发态,是什么运行态,什么管理态,知识都是延续的,后来到了阿里,可能花很短的几个小时就能把现在阿里所有的数据库吃透。

gydtep 发表于 2021-3-16 14:29:02

2009年以后我花了两年时间学习网络,对交换机、路由器、骨干网、城域网,运营商怎么建网的,我们的IDC是怎么建网的,除了实践以外,已经基本了解了。大家每天都跟网络有交互,为什么重传高?为什么延时高,TCP/IP第4层的下面IP第3层是怎么操作的,IP下面的MAC层是怎么操作的,大家都要深入了解一下。

gydtep 发表于 2021-3-16 17:20:57

• 如果 COMMIT POINT 不存在,那么可以保证没有任何一个 RM 进入 Commit Phase,此时可以安全回滚所有 RM。
• 如果 COMMIT POINT 存在,那么可以保证所有 RM 都已经完成了 Prepare Phase,此时可以继续进行 Commit Phase。

gydtep 发表于 2021-3-17 08:54:12

在上面的只读连接优化中,我们通过将仅使用快照读的连接摘出事务之外,来优化 COMMIT_TS 的获取。而如果是完全相反的情况 ——— 所有连接都是写操作或者带锁的当前读操作,那么我们完全不需要进行快照读。因此我们也做了这样一个优化:仅在第一次进行快照读时获取 SNAPSHOT_TS。这个优化针对的是一些对 Serializable 有很强需求的场景:

BEGIN;
SELECT balance FROM accounts WHERE id = 0 FOR UPDATE; # 检查余额,需要加锁
UPDATE accounts SET balance = balance - 1 WHERE id = 0;
UPDATE accounts SET balance = balance + 1 WHERE id = 1;
COMMIT;

gydtep 发表于 2021-3-17 09:13:46

上面的 SQL 执行的是一个典型的转账场景,将 1 元从 id 为 0 的账户转到 id 为 1 的账户,在整个事务中都没有使用到快照读,因此针对这种场景我们会省略 SNAPSHOT_TS 的获取。

gydtep 发表于 2021-3-17 11:27:43

首先从 Cloud 来理解,云可以看作是一种提供稳定计算存储资源的对象。为了实现这一点,云提供了像虚拟化、弹性扩展、高可用、高容错性、自恢复等基本属性,这是云原生作为一种云计算所具备的第一层含义。第二层要从 Native 来看,云原生和在云上跑的传统应用不同。一些基于公有云搭建的应用是基于传统的 SOA 架构来搭建的,然后再移植到云上去运行,那么这些应用和云的整合非常低。

gydtep 发表于 2021-3-17 14:38:48

熔断器
熔断器模式(Circuit Breaker Patten)的原理类似于家里的电路熔断器的原理。当发生短路或者超负荷时,熔断器能够主动熔断电路,以避免灾难发生。

Spring Cloud Hystrix 提供了熔断器、线程隔离等一系列服务保护的能力,使用起来非常简单,引入依赖的 JAR 包,通过简单的注解即可实现。

gydtep 发表于 2021-3-17 16:56:05

构建、发布、运行:严格分离构建和运行。
进程,以一个或多个无状态进程运行应用,如果存在状态,应该将状态外置到后端服务中,例如数据库、缓存等。

gydtep 发表于 2021-3-18 08:26:44

云原生架构是基于云原生技术的一种架构原则和设计模式的集合,是一些指导原则,比如要求做好可观测,只有在做好可观测的前提下才能做好后续的弹性,包括高可用相关的建设及基础设施的下沉,希望对非业务代码的部分进行最大化的剥离,在这样的技术和架构设计的指导下,就可以设计出云原生应用。
页: 170 171 172 173 174 175 176 177 178 179 [180] 181 182 183 184 185 186 187 188 189
查看完整版本: 免费领取阿里云代金券2020元啦!新老用户同享。