过去20年软件架构
本周我们很开心邀请到了俊之给我们带来《过去20年软件架构》的演讲,相关总结如下:
Slides
- 俊之使用的 Slides 。
Q&A
感谢张程做的相关笔记。
SOA和Microservice的异同?
- 【From 讨论】SOA关注业务数据,没有行为数据。SOA使用一个数据库,但是SOA的模块化思想和micro service相似。SOA有一套完整的规范,microservice 是满足 soa 系统之间的调用的标准之一。microservice复杂主要是因为数据库use case比较复杂。Micro-service是解决人的问题,互联网公司工程师动则上千上万,你不分拆功能、不用microservice 是不行的,总的来说,还是organizational problem。跟team structure 也有关系,分拆microservice 时候team也分开。这就更多是政治,而不仅仅是技术了
- 【扩展】 Microservices vs SOA : What’s the Difference 。也有一个 中文 的版本方便阅读。
- 【扩展】 SOA vs Microservices: Key Differences explained with Examples :非常详细的介绍。
- 【扩展】 微服务之与SOA和API的区别 :这篇中文的比较大家也可以参考。
Microservices vs. Serverless的成本差异?
- 【From讨论】Microservices可以包括serverless架构。区别就是Serverless一般是run by a cloud vendor that performs all server management, capacity planning, etc. Microservice一般是inhouse的。价格区别可以参考 AWS Kinesis data streams 定价?
- 【扩展】 Microservices, Serverless, Monolith, SOA: What to Choose for an App Development? :详细介绍了四种的差别,当然也包括了Microservice和serverless之间的差别。
- 【扩展】 架构思考:Microservice与Serverless的优劣势比较 :对各自的特点和使用场景有所介绍。
- 【扩展】 世界是 container 的,也是 microservice 的,但最终还是 serverless 的 :一篇不错的文章,从历史和发展趋势进行了分析。
- 【扩展】 Microservices and Serverless: Winning Strategies and Challenges
- 【扩展】 Serverless and Microservices: a match made in heaven? :很不错的介绍文章。
SpringBoot 分布式session的几种实现方式
- 【From讨论】1) Session固定,将用户锁定到某一个服务器上, 2) session复制,任何一个服务器上的session发生改变(增删改),该节点会把这个 session的所有内容序列化,然后广播给所有其它节点,不管其他服务器需不需要session,以此来保证Session同步。3) session共享,使用分布式缓存方案比如memcached、Redis,但是要求Memcached或Redis必须是集群。4)session持久化到数据库。
- 【扩展】 分布式Session的几种实现方式 :简单介绍了分布式session的几种实现方式,也包含了我们讨论中所说的几种方式。
- 【扩展】 分布式session的几种实现方式 : 这篇文章对优缺点,原理的介绍比较详细。
数据库隔离级别有哪些
- 【From讨论】1.序列化,系统中所有的事务以串行地方式逐个执行,所以能避免所有数据不一致情况。2.可重复读,就是一个事务一旦开始,事务过程中所读取的所有数据不允许被其他事务修改。3. 已提交读. 一个事务在处理过程中如果重复读取某一个数据,而且这个数据恰好被其他事务修改并提交了,那么当前重复读取数据的事务就会出现同一个数据前后不同的情况。4. 未提交读, 数据被其他事务修改过,但还没有提交,就存在着回滚的可能性,这时候读取这些“未提交”数据的情况就是“脏读”。
- 【扩展】我们在之前的分布式事务中有详细介绍这个问题。
一些扩展问题和思考
- server的stateless design设计也是后端设计演化里面很重要的分水岭。 参考文献: 架构设计之“无状态”和“有状态”浅析
- 能不能讲一讲domain driven design? 参考文献: 美团技术:领域驱动设计在互联网业务开发中的实践
- Nvidia做的Next Gen datacenter :参考文献: Why NVIDIA Will Dominate the Data Center by 2030
- 对数据库设计感兴趣 的可以看 CMU 15-445/645 DATABASE SYSTEMS
再次感谢大家的参与,也希望大家有好的资源能联系我更新这篇文章。谢谢大家。
下周话题安排和往期话题回顾敬请参见《 系统设计开荒小分队话题讨论简介 》
Post Views: 37
「其他文章」
- KServe和Triton的介绍 — realtime inference
- 典型的k8s线上运维问题分享会
- kubernetes整体架构和配置介绍
- 常见的微服务boundary划分考虑因素
- Graph Database的介绍
- Domain-Driven Design在微服务中的使用
- Uber是如何选择在Postgres和MySQL之间切换的
- 微服务基础介绍之耦合
- 微服务概述
- Reddit.com的架构演进
- MySQL主从一致 && MySQL读写分离实操
- MySQL锁的介绍 && MySQL主从一致,高可用以及如何实现数据不丢失
- Kafka进阶之Security
- Kafka进阶之MirrorMaker介绍
- MySQL的事务介绍
- Kafka进阶之Exactly once保证
- MySQL存储引擎的深入介绍
- Service Mesh介绍
- 2021 Roblox宕机事件回顾
- MySQL系统讲座一:MySQL DB 引擎的演化和对比 && MySQL Query和Schema Migration的介绍