首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
something
haifeiWu
创建于2021-05-17
订阅专栏
just record
等 4 人订阅
共34篇文章
创建于2021-05-17
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
单元测试之gomock
简介 gomock 的由来和概述 gomock 是 Uber 公司开源的一个 mock 框架,于 2015 年开源。它是基于 Go 语言中的反射机制实现的,可以自动生成接口的 mock 对象。
GFS论文阅读
概述 这篇论文主要讲述了Google文件系统(GFS)的设计和实现。它介绍了GFS的目标、架构、组件、数据流和一些关键技术,如租约、快照和恢复等。
MapReduce论文阅读
概述 这篇论文主要介绍了MapReduce编程模型和相关实现,用于处理和生成大型数据集。它隐藏了并行化、容错、本地性优化和负载平衡等细节,使得即使对于没有并行和分布式系统经验的程序员也很容易使用。
配送特征平台
现实世界中,一个运单的完成过程是从用户下单开始到用户收餐骑手离客为止,需经历一系列室内室外的场景——用户下单,系统派单,骑手室外骑行到目的地然后下车步行到商家,等待取餐驻留室内,商家出餐,骑手取餐离店
Kafka的Replica机制
Kafka 是一个分布式的发布-订阅消息系统。它最初是在 LinkedIn 开发的,2011年7月成为一个 Apache 项目。
Zookeeper 与分布式锁
在上篇文章中讨论了基于 Redis 的单机分布式锁与集群分布式锁的方案,在数据一致性要求不是很高的情况下,Redis 实现的分布式锁可以满足我们的要求。最近在拜读了 zookeeper 的论文之后,对于 zookeeper 实现的分布式锁,也是有必要了解一下的。 使用 Zook…
基于 Redis 的分布式锁到底安全吗?
4,那么部署 Redis 的主从可以保证吗?主要原因是 Redis 主节点与从节点之间的数据同步是异步的。 Redlock 算法是基于 N 个完全独立的 Redis 节点(通常情况下 N 可以设置成 5)。 1,获取当前时间(毫秒数)。 2,按顺序依次向 N 个 Redis 节…
MapReduce 实现的简单实现
相信用过 Hadoop 的同学在等待结果输出的时候会出现类似于这样的 INFO : 2020-01-17 11:44:14,132 Stage-11 map = 0%, reduce = 0% 的日志,它展示了 MapReduce 的执行过程,下面我们也将就 MapReduce…
使用 Go 优化我们的接口
特征数据暴增,导致获取一个城市下所有的特征的接口延时高,下面是监控上看到的接口响应耗时,最慢的时候接口响应时间能达到 5s 多。 1,使用缓存。 分析业务需求,当前需要存储起来的数据是ObjectId,ObjectId 是一个长度为14左右的字符串,我们假设平均下来Object…
如何使用 Redis 实现分布式锁
锁是我们在设计和实现大多数系统时绕不过的话题。一旦有竞争条件出现,在没有保护的操作的前提下,可能会出现不可预知的问题。 而现代系统大多为分布式系统,这就引入了分布式锁,要求具有在分布各处的服务上保护资源的能力。 使用数据库实现。 使用 Redis 等缓存系统实现。 使用 Zoo…
我理解的 TCP 连接
TCP 是面向连接的协议。运输连接是用来传输 TCP 报文的。TCP 运输连接的建立和释放是每一次面向连接通信中必不可少的过程。因此,运输连接有三个阶段,即:连接建立,数据传输和连接释放。 在TCP连接建立过程中要解决一下三个问题。 (1)要使一方明确知道对方的存在。 (2)要…
Kafka Consumer 的 Rebalance 机制
如上图所示,Consumer 使用 Consumer Group 名称标记自己,并且发布到主题的每条记录都会传递到每个订阅消费者组中的一个 Consumer 实例。 Consumer 实例可以在单独的进程中或在单独的机器上。 如果所有 Consumer 实例都属于同一个 Con…
双重检查锁定与单例
对于单例模式,相信大多数人都可以写出好几种实现方法,懒汉,饿汉等等,然而小小单例真要写好,写的完全正确也并非易事。 下面是我们经常使用的一种单例的实现,也就是双重检查所的实现方案。 让我们来看一下这个代码是如何工作的:首先当一个线程发出请求后,会先检查instance是否为nu…
实时数据并发写入 Redis 优化
当前架构的逻辑是将并发请求数据写入队列中,然后起一个单独的异步线程对数据进行串行处理。这种方式的好处就是不用考虑并发的问题,当然其弊端也是显而易见的~ 根据当前业务的数据更新在秒级,key 的碰撞率较低的情况。笔者打算采用使用 CAS 乐观锁方案:使用 Lua 脚本实现 Red…
我理解的零拷贝
最近做的业务涉及到的 I/O 操作比较多,对于Linux上的 I/O 操作的优化 Zero Copy 早有耳闻,今天打算由上而下(从应用层到底层,当然并不会涉及到内核的细节)的研究一下这个问题。 为了更好的描述 zero copy ,本文将以网络服务器的简单过程所涉及的内容展开…
Redis 与 Lua 使用中的小问题
通过上面的脚本可以看到,当 Redis 返回的结果为 (nil) 时候,其真实的数据类型为 boolean,因此我们直接判断 nil 是有问题的。 Redis to Lua conversion table. Lua to Redis conversion table. Lua…
lang3 的 split 方法误用
apache 的 lang3 是我们开发常用到的三方工具包,然而对这个包不甚了解的话,会产生莫名其秒的 bug ,在这里做下记录。 通过分析字符串的拆分结果,发现该方法并不是将分隔符去截取字符串,而是将分隔符的每一个字符都当成分隔符去截取字符串,当我们的分隔符是一个字符的时候一…
实现自己的 RPC 框架(二)
前段时间自己搞了个 RPC 的轮子,不过相对来说比较简单,最近在原来的基础上加以改造,使用 Zookeeper 实现了 provider 自动寻址以及消费者的简单负载均衡,对之前的感兴趣的请转 造个轮子---RPC动手实现。 在原来使用 TCP 直连的基础上实现基于 Zooke…
Docker 快速上手指南
Docker 听其大名已久,但总是疏于操练,今天准备好好搞一下。
Docker 快速上手指南
Docker 听其大名已久,但总是疏于操练,今天准备好好搞一下。 Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。 它是目前最流行的 Linux 容器解决方案。 Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚…
下一页