Fork me on GitHub
CongLin's Blog

敢于直面惨淡的人生。

  • 首页
  • 标签
  • 分类
  • 归档
  • 关于
  • 搜索

clrpc-简单的RPC工具

置顶 | 发表于 2019-06-17 | 分类于 RPC |
这是一个基于 Java 、 由 Netty 负责传输 、默认使用 Protostuff 负责编解码的简单的RPC(远程过程调用)工具。 服务提供者将服务发布注册到 注册中心 ZooKeeper 上后,服务消费者请求 注册中心 ZooKeeper 查找订阅服务后与服务提供者通信调用服务( 支持 同步服 ...
阅读全文 »

浅谈ProtoBuf编码

发表于 2019-11-14 | 分类于 编码 |
编码结构TLV 格式是我们比较熟悉的编码格式。 所谓的 TLV 即 Tag - Length - Value。Tag 作为该字段的唯一标识,Length 代表 Value 数据域的长度,最后的 Value 并是数据本身。 ProtoBuf 编码采用类似的结构,但是实际上又有较大区别,其编码结构可见下 ...
阅读全文 »

InnoDB中的AUTO_INCREMENT处理

发表于 2019-10-24 | 分类于 数据库 |
网站和app并发性能取决于访问链路的每个环节,包括前端、流量路由、后台业务逻辑代码、中间件和数据库等。大部分环节都可以通过横向扩展来提高并发性能,数据库作为链路的末端要保持数据一致性等特点不像其他环节容易横向扩展,所以数据库性能尤为重要,特别是插入性能。 数据库设计通常会用一列与业务无关的自增长id ...
阅读全文 »

浅谈ZGC

发表于 2019-10-21 | 分类于 Java |
ZGC is a new garbage collector recently open-sourced by Oracle for the OpenJDK. It was mainly written by Per Liden. ZGC is similar to Shenandoah or Az ...
阅读全文 »

短网址生成系统

发表于 2019-10-08 | 分类于 算法 |
概述过长的网址不利于传播,特别是对于微博和 Twitter 等有发文长度限制的网站,短网址生成系统(TinyURL)可以将一个网址变短。在浏览器中输入短网址之后,TinyURL 会将该短网址转换成原始网址并进行重定向。 最烂的回答实现一个算法,将长地址转成短地址。实现长和短一一对应。然后再实现它的逆 ...
阅读全文 »

微信红包的架构设计简介

发表于 2019-09-04 | 分类于 算法 |
背景有某个朋友在朋友圈咨询微信红包的架构。 概况2014年微信红包使用数据库硬抗整个流量,2015年使用cache抗流量。 问题微信的金额什么时候算?微信金额是拆的时候实时算出来,不是预先分配的,采用的是纯内存计算,不需要预算空间存储。 采取实时计算金额的考虑:预算需要占存储,实时效率很高,预算才效 ...
阅读全文 »

基于Redis的分布式锁的安全性

发表于 2019-08-22 | 分类于 分布式 |
实际上,关于Redis分布式锁的安全性问题,在分布式系统专家Martin Kleppmann和Redis的作者antirez之间就发生过一场争论。由于对这个问题一直以来比较关注,这场争论的大概过程是这样的:为了规范各家对基于Redis的分布式锁的实现,Redis的作者提出了一个更安全的实现,叫做Re ...
阅读全文 »

蓄水池采样

发表于 2019-08-15 |
问题描述给定一个无限的数据流,要求随机取出 k 个数。也就是说当数据流有 N 个数据时,不论 N 为多少,每个数被取出的概率都为 k/N 算法 先取出前 k 个数; 从第 k+1 开始,以 k/i 的概率取出这个数,并随机替换掉之前已经取出的 k 个数中的一个。 123456Init a rese ...
阅读全文 »

分布式事务实现方案

发表于 2019-08-07 | 分类于 分布式 |
分布式事务的实现主要有以下 5 种方案。 XA 方案所谓的 XA 方案,即:两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问问各个数据库你准备好了吗?如果每个数据库都回复 ok,那么就正式提交事务,在各个数据库上执行操作;如果任何其中一个数据库回答不 ok, ...
阅读全文 »

分布式ID生成算法-SnowFlake

发表于 2019-07-05 | 分类于 分布式 |
概述分布式id生成算法的有很多种,Twitter的SnowFlake就是其中经典的一种。SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图 结构 1位,不用。二进制中最高位为1的都是负数,但是我们生成的id一般都使用整数,所以这个最高位固定是0 41位,用来记录时间戳( ...
阅读全文 »
12…5
从林

从林

It is my personal website.

41 日志
14 分类
28 标签
0%
© 2018 — 2020 CongLin