摘要:
经常有朋友问我,为什么要做分层架构,什么时候架构要抽象一层,今天来聊一聊这个问题。 上图是一个典型的互联网分层架构: 客户端层:典型调用方是browser或者APP; 站点应用层:实现核心业务逻辑,从下游获取数据,对上游返回html或者json; 数据-缓存层:加速访问存储; 数据-数据库层:固化数 阅读全文
2020年8月18日 #
2020年8月5日 #
摘要:
很多业务都需要考虑消息投递的顺序性: 单聊消息投递,保证发送方发送顺序与接收方展现顺序一致 群聊消息投递,保证所有接收方展现顺序一致 充值支付消息,保证同一个用户发起的请求在服务端执行序列一致 1. 消息顺序性是分布式系统架构设计中非常难的问题,有什么常见优化实践呢? 折衷一:以客户端或者服务端的时 阅读全文
摘要:
什么是架构? ISO/IEC 42010:20072 中对架构的定义如下: The fundamental organization of a system, embodied in its components, their relationships to each other and the 阅读全文
摘要:
消息总线(Message Queue),后文称MQ,是一种跨进程的通信机制,用于上下游传递消息。 画外音:这两个进程,一般不在同一台服务器上。 在互联网架构中,MQ经常用做“上下游解耦”: 消息发送方只依赖MQ,不关注消费方是谁; 消息消费方也只依赖MQ,不关注发送方是谁; 画外音:发送方与消费方, 阅读全文
摘要:
分布式事务为什么难? 在分布式环境下,每个节点都可以知晓自己操作的成功或者失败,却无法知道其他节点操作的成功或失败。当一个分布式事务跨多个节点时,保持事务的原子性与一致性,是非常困难的。 什么是两阶段提交? 二阶段提交2PC(Two phase Commit)是一种,在分布式环境下,所有节点进行事务 阅读全文
2020年7月30日 #
摘要:
一、为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的 阅读全文
2020年7月24日 #
摘要:
很多人都会发现日常生活已经越来越离不开美团了,这个互联网平台涵盖了吃、住、行、游、购、娱……能帮我们做很多事情,非常接地气。黄色的美团外卖骑手,橙色的摩拜单车,还有美团和大众点评的Logo……会不时出现在各个角落,已经成为我们熟悉的城市风景线。 可这些与科技的关系,大家就不一定都那么清楚了。 我们注 阅读全文
摘要:
背景 美团的容器集群管理平台叫做HULK。漫威动画里的HULK在发怒时会变成“绿巨人”,它的这个特性和容器的“弹性伸缩”很像,所以我们给这个平台起名为HULK。貌似有一些公司的容器平台也叫这个名字,纯属巧合。 2016年,美团开始使用容器,当时美团已经具备一定的规模,在使用容器之前就已经存在的各种系 阅读全文
摘要:
随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池:ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使用线程池,是一个开发人员必修的基本功。 本文开篇简述线程池 阅读全文
2020年7月16日 #
摘要:
https://www.jianshu.com/p/6c681eb699b8 阅读全文