小米信息部技术团队

gRPC 系列——grpc 超时传递原理

微服务 Golang gRPC
gRPC 系列——grpc超时传递原理[作者简介] 郑伟,小米信息技术部架构组 引子有个业务方反馈说日志中偶尔出现 xorm 抛出来的 context deadline exceeded 的报错,想咨询下是什么原因。业务方实现的 gRPC Handler 大概代码如下: 12345678fu ...
Read more

浅析 MySQL 的隐式转换

MySQL 隐式转换
浅析 MySQL 的隐式转换[作者简介] 陈晓,信息部订单组研发工程师,目前主要负责小米订单中台业务。 前言跟大家一块看下 MySQL 的隐式转换相关知识,主要是相等操作时,先看两个可能都遇到过的场景。 表 1234567891011CREATE TABLE `t1` ( `c1` var ...
Read more

一次线上线程池任务问题处理历程

Java Spring 线程池 阻塞队列
一次线上线程池任务问题处理历程[作者简介] 王日华,小米信息技术部订单组研发工程师,目前主要负责小米订单中台业务。 一、前言在一次新功能上线过程中,出现线程池提交任务抛出 RejectedExecutionException 异常,即任务提交执行了拒绝策略的操作。查看业务情况和线程池配置,发 ...
Read more

分布式锁的实现之 redis 篇

redis 分布式锁
分布式锁的实现之 redis 篇[作者简介] 钟梦浩,信息部订单组研发工程师,目前主要负责小米订单中台业务。 一、引言我们在系统中修改已有数据时,需要先读取,然后进行修改保存,此时很容易遇到并发问题。由于修改和保存不是原子操作,在并发场景下,部分对数据的操作可能会丢失。在单服务器系统我们常用 ...
Read more

走进 NSQ 源码细节

Golang NSQ
1. 前言:为什么要使用 MQ 消息队列随着互联网技术在各行各业的应用高速普及与发展,各层应用之间调用关系越来越复杂,架构、开发、运维成本越来越高,高内聚、低耦合、可扩展、高可用已成为了行业需求。 一提到消息队列 MQ(Message Queue),我们会想到很多应用场景,比如消息通知、用户 ...
Read more

如何高效对接第三方支付

如何高效对接第三方支付[作者简介] 逄志强,海外小米网研发工程师,目前主要负责小米网服务构建和研发工作。 海外小米网是小米集团自建的电商网站,是小米集团重要的销售渠道之一。电商购物流程中核心的一环是用户支付。目前我们已经服务 30 个国家和地区,不同国家往往需要对接不同的第三方支付公司,所以 ...
Read more

走进Golang之运行与Plan9汇编

Golang 汇编
通过上一篇走进 Golang 之汇编原理,我们知道了目标代码的生成经历了那些过程。今天我们一起来学习一下生成的目标代码如何在计算机上执行。以及通过查阅 Golang 的 Plan9 汇编来了解 Golang 的一些内部秘密。 Golang 的运行环境当我们把编译后的 Go 代码运行起来,它会 ...
Read more

走进Golang之编译器原理

Golang 编译器
认识 go build当我们敲下 go build 的时候,我们的写的源码文件究竟经历了哪些事情?最终变成了可执行文件。 这个命令会编译 go 代码,今天就来一起看看 go 的编译过程吧! 首先先来认识以下 go 的代码源文件分类 命令源码文件:简单说就是含有 main 函数的那个文件,通 ...
Read more

设计模式基础之——面向对象的设计过程

设计模式
前言我一直认为分享的目的不是炫技。 一是,自我学习的总结。 二是,降低他人的学习成本。 三是,别人对自己学习结果的审核。 同时,本次分享有下面四个要素: 观点 本次分享的观点是一个软件工程中的思维方法,不限于编程语言 探讨 我可能理解错的,或者大家没理解的,欢迎大家可以积 ...
Read more

当我们在谈论高并发的时候究竟在谈什么?

什么是高并发?12高并发是互联网分布式系统架构的性能指标之一,它通常是指单位时间内系统能够同时处理的请求数,简单点说,就是QPS(Queries per second)。 那么我们在谈论高并发的时候,究竟在谈些什么东西呢? 高并发究竟是什么?这里先给出结论:高并发的基本表现为单位时间内系统能 ...
Read more
Prev Next