Mobabel Blog

[转]秒杀聊聊秒杀限流的多种实现 0

[转]秒杀聊聊秒杀限流的多种实现

1. 前言 俗话说的好,冰冻三尺非一日之寒,滴水穿石非一日之功,罗马也不是一天就建成的。两周前秒杀案例初步成型,分享到了中国最大的同性交友网站-码云。同时也收到了不少小伙伴的建议和投诉。我从不认为分布式、集群、秒杀这些就应该是大厂的专利,在互联网的今天无论什么时候都要时刻武装自己,只有这样,也许你的春天就在明天。

0

[转]TCP三次握手原理及故障排查

最近碰到一个问题,Client 端连接服务器总是抛异常。在反复定位分析、并查阅各种资料搞懂后,我发现并没有文章能把这两个队列以及怎么观察他们的指标说清楚。   因此写下这篇文章,希望借此能把这个问题说清楚。欢迎大家一起交流探讨。 1. 问题描述 场景:Java 的 Client 和 Server,使用 Socket 通信。Server 使用 NIO。 问题: 间歇性出现 Client 向 Server 建立连接三次握手已经完成,但 Server 的 Selector 没有响应到该连接。 出问题的时间点,会同时有很多连接出现这个问题。 Selector 没有销毁重建,一直用的都是一个。 程序刚启动的时候必会出现一些,之后会间歇性出现。 2.

[转]去哪儿网开源消息队列QMQ 0

[转]去哪儿网开源消息队列QMQ

GitHub 开源项目地址传送门: https://github.com/qunarcorp/qmq 1. 背   景 2012 年,随着公司业务的快速增长,公司当时的单体应用架构很难满足业务快速增长的要求,和其他很多公司一样,去哪儿网也开始了服务化改造,按照业务等要素将原来庞大的单体应用拆分成不同的服务。那么在进行服务化改造之前首先就是面临是服务化基础设施的技术选型,其中最重要的就是服务之间的通信中间件。一般来讲服务之间的通信可以分为同步方式和异步方式。同步的方式的代表就是 RPC,我们选择了当时还在活跃开发的 Alibaba Dubbo(在之后 Dubbo 官方停止了开发,但是最近 Dubbo 项目又重新启动了)。 异步方式的代表就是消息队列 (Message Queue),MQ 在当时也有很多开源的选择:RabbitMQ, ActiveMQ, Kafka, MetaQ(RocketMQ 的前身)。首先因为技术栈我们排除了 erlang 开发的 RabbitMQ,而 Kafka 以及 Java 版 Kafka 的 MetaQ 在当时还并不成熟和稳定。而...

0

[转] Istio是什么

如果你比较关注新兴技术的话,那么很可能在不同的地方听说过 Istio,并且知道它和 Service Mesh 有着牵扯。 这篇文章可以作为了解 Istio 的入门介绍,了解什么是 Istio,Istio 为什么最近这么火,以及 Istio 能给我们带来什么好处。 1. 什么是 Istio? 官方对 Istio 的介绍浓缩成了一句话: An open platform to connect, secure, control and observe services.

[资源]算法资源汇总 0

[资源]算法资源汇总

1. 基础教程 https://www.coursera.org/specializations/algorithms https://www.coursera.org/specializations/data-structures-algorithms https://www.coursera.org/learn/algorithmic-toolbox/   Top 5 Courses to learn Data Structure and Algorithms in 2022 – Best of Lot 6 Essential Data Structures Java Programmer should Learn in 2022 5 Free Courses...

0

[转]微前端 – 将微服务理念延伸到前端开发中

本文描述了采用不同 JavaScript 技术框架的多个团队中协同构建一个现代化前端 Web 应用所需要的技术、策略和方法。 1. 什么是微前端? 微前端这个术语最初来自 2016 年的 ThoughtWorks 技术雷达[ https://www.thoughtworks.com/radar/techniques/micro-frontends ],它将微服务的概念扩展到了前端领域。目前的趋势是构建一个功能丰富且强大的前端应用,即单页面应用(SPA),其本身一般都是建立在一个微服务架构之上。前端层通常由一个单独的团队开发,随着时间的推移,会变得越来越庞大而难以维护。这就是传说中的前端巨无霸(Frontend Monolith) [ https://www.youtube.com/watch?v=pU1gXA0rfwc ]。

程序员焦虑语言和框架,是因为没掌握核心? 0

程序员焦虑语言和框架,是因为没掌握核心?

近日看了一篇公众号的文章“写给期待年薪百万的IT同学”,作者是做海量分布式服务器系统设计开发的,文中提到: 核心能力是什么?是架构设计,关键细节设计的能力和经验。 在海量服务器设计领域,核心能力,大概包含物理设计和软件设计。物理设计包含:磁盘存储设计,内存缓存设计,核心数据结构设计,一致性问题处理,容灾设计等;软件设计方面包含:模块划分,接口定义,设计模式应用,核心数据传输结构设计等。拥有上面的核心能力,你用C/C++,Java,甚至python都可以实现。在这里,核心竞争能力跟语言其实没有多大的关系。