ActorModel学习(一)--Gateway网关服设计
本文主要参考Everything you wanted to know about the Actor Model but might have been afraid to ask, 本义是讲解actor模型的基本方面,了解actor模型背后的关键思想及其主要前提 Actor模型是一种计算的数学理论,基于Actors的概念。Actor是计算的基本单元,体现为三件事: 信息处理 ...
本文主要参考Everything you wanted to know about the Actor Model but might have been afraid to ask, 本义是讲解actor模型的基本方面,了解actor模型背后的关键思想及其主要前提 Actor模型是一种计算的数学理论,基于Actors的概念。Actor是计算的基本单元,体现为三件事: 信息处理 ...
搭建集群概况 2台2g2g、1台2g4G云服务器实例 集群内服务器角色如下: 节点 角色 IP k8s-m-1 master 192.168.1.1 k8s-m-2 worker 192.168.1.2 ...
redis缓存数据库数据,当数据库数据被更新时,需要通知redis对应缓存失效。最简单的通知方式就是在数据库完成更新后,更新redis的数据,但是这样会面临一个问题,这个操作不是原子的,因此客户会请求到失效的缓存。如果更新完数据库后更新缓存之前,线程被调度,这样就会产生时间gap。如何解决这个问题呢?大部分人可能想到加锁,锁住一个热点数据缓存可不是一个明智之举。 发布订阅设计模型是非常著名...
我们熟悉在多线程并发编程中,需要对共享资源加锁,使得混乱的并发访问降级为合理的串行访问。同理在分布式系统中,可能存在多个进程对一个共享资源进行并发的修改,比如某个进程的数据库数据;这个时候需要对这个数据库上分布式锁,以保证该数据能被串行访问。 分布式锁的性质 工程上对分布式锁规定需要如下几项核心性质: 独占性:在某一时刻,锁只能被一个取锁方持有 健壮性:不允许产生死锁,假设持有...
设计高并发实时排行榜所需redis基础 redis四大统计 基数统计 基数 / Cardinality 是指集合中不同的元素的数量,简单来说,就是去重后的个数。 二值统计 二值统计是指将数据分为两个类别或状态,成功失败这样的,并对这些数据进行计数和分析。 排序统计 排序统计涉及将数据按照一定的顺序(升序或降序)进行排序,以便分析比较。 聚合统计 将多个数据记录组合成一个集合,并对该集合进行数...
实际开发中,我们经常会遇到这样的需求,在日常开发中,经常会遇到这样的需求:查看某条记录是否存在,不存在的话创建一条新记录,存在的话更新某些字段。正常我们会这样处理,先查询有没有,然后在insert。针对这个需求,mysql提供了更加方便的指令 insert into ... on duplicate key update ... 在insert的时候,如果insert的数据会引起唯一索...
一个完整的go项目通常包括两个部分module 和 package。module表示第三方包;package表示项目源码,项目源码以package的形式组合,一个package包含多个代码源文件。module和package共同负责go项目的项目管理; module常用命令 module
简历描述 Cachelyt 项目描述:使用Go语言实现的高性能分布式缓存,可以单点部署或集群部署,实现分布式缓存节点通信协调机制和多种缓存淘汰策略自选功能。重视系统的高并发、可扩展和易维护性,实现分布式环境下高效的缓存服务。 主要工作: 实现LRU和LRU2缓存淘汰算法,针对不同缓存访问场景提供灵活的缓存策略选择,提高缓存命中率。 实现集群部署机制,设计自适应的一致性哈希算法,...
protobuf的数据类型大致可以分为以下几种: 变长编码类型Varints 固定32bits类型 固定64bits类型 有长度标识的变量 根据这些类型,编码方式也就分成四种。下面我来一一介绍一下不同数据类型的编码方式。 Varints编码 Varints编码用于处理变长编码类型。 核心思想其实就一句话:数字小的占用空间小,数字大的占用空间大。那要如何实现这个结果呢...