最近在学 Golang(Go语言),也在 Github 上找了一些基于 Golang 的优秀开源框架,在这里分享给大家。一、Gin 框架(45.7k star)Gin 是一个用 Go (Golang) 编写的 HTTP web 框架。 它是一个类似于 martini 但拥有更好性能的 API 框架, 优于 httprouter,速度提高了近 40 倍。Gin 框架的特性:支持中间件,传入的 HTT
转载 2023-11-06 22:22:35
226阅读
提到分布式系统,我们会想到很多机器,分别部署着各自的服务,然后整体组成一个分布式系统。在这类系统中,分布式系统与常规的集中式系统存在着以下三个区别。(来自分布式算法导论)1、缺乏全局状态知识2、缺乏全局时间帧3、非确定性这三大特点也成为分布式系统设计的难点。也正是如此,分布式系统的设计比常规的集中式系统要难的多。为了区别,我们称这种分布式系统为,群体分布式。这种犹如社会群体。golang语言天生具
最近项目的后端需求是全球同服的,在使用语言方面确定了为golang之后,了解了一下当前的一些goalng游戏服务器框架,终于在leaf/pitaya/ 等众多框架中选择了 Origin, 主要是因为它是分布式框架,微服务架构,比较匹配做全球同服需求下的功能模块分离。 | (后续2021.08.04补充更正一下,Origin的服务发现功能现已实现,参看Origin服务发现详解)目前基本已经上手,现在
mqantmqant是一款基于Golang语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性,的游戏服务器框架,也希望mqant未来能够做即时通讯和物联网方面的应用为什么要用golang特性高性能分布式支持分布式跟踪系统接口传送门基于golang协程,开发过程全程做到无callback回调,代码可读性更高RPC支持本地和远程自动切换远程RPC使用r
1. 背景介绍近期接到任务,需要用Golang开发一个基于Redis的分布式锁,因为目前网上已存在的golang分布式锁要么是性能都不够,要么就是功能不全,根据网上收集到的资料,最终决定参考Redisson的设计思想来设计Go语言的Redis分布式锁。完整代码可以点这里: 外网:GitHub DisGo 内网:Gitee DisGo2. 难点分析主流分布式锁的对比MySQLZookeeperRed
转载 2023-11-24 22:32:26
124阅读
作者: Super 导语:hashicorp/raft是raft算法的一种比较流行的golang实现,基于它能够比较方便的构建具有强一致性的分布式系统。本文通过实现一个简单的分布式缓存系统来介绍使用hashicorp/raft来构建分布式应用程序的方法。 1. 背景 对于后台开发来说,随着业务的发展,由于访问量增大的压力和数据容灾的需要,一定会需要使用分布式的系统,而分
文章目录前言Seata架构Seata Golang 支持的模式AT模式TCC模式Seata源码浅析1.TC 全局事务协调器1.1 LockManager1.2 SessionManager1.3 Transaction Manager2.TM 事务管理器3.RM 资源管理器 前言Seata 是一款简单易用,高性能、开源的一站分布式事务解决方案,由阿里开源。2020 年 4 月,刘晓敏开始基于
分布式计算框架MapReduceMapReduce简介MapReduce计算模型Map和Reduce函数Shuffle机制 MapReduce简介1.MapReduce是Hadoop生态中的一款分布式运算框架,它提供了非常完善的分布式架构,可以让不熟悉分布式计算的人员也能编写出优秀的分布式系统,因此可以让开发人员将精力专注到业务逻辑本身。 2.MapReduce采用“分而治之”的核心思想,可以先
转载 2023-12-12 15:40:47
31阅读
dubbo原理解析互联网架构演化单一应用架构:网站初期,访问量小,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。分布式服务架构:当网站访问量越来越多,系统升级越来越频繁,单一应用架构的不可靠和难以维护的特点会逐渐显露。需要将大的服务系统拆成多个小型服务,利用分布式服务框架进行相互调用。dubbo是什么Dubbo[]是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方
转载 2023-10-07 18:03:18
94阅读
一、Spark 概述Spark 是 UC Berkeley AMP Lab 开源的通用分布式并行计算框架,目前已成为 Apache 软件基金会的顶级开源项目。Spark 支持多种编程语言,包括 Java、Python、R 和 Scala,同时 Spark 也支持 Hadoop 的底层存储系统 HDFS,但 Spark 不依赖 Hadoop。1.1 Spark 与 HadoopSpar
随机value 防止释放其他服务的锁 import ( "crypto/rand" "encoding/base64" "errors" "fmt" "github.com/go-redis/redis/v7" "time" ) //分布式锁实现(不可重入) type RedisLock struc ...
转载 2021-06-02 23:37:00
305阅读
2评论
**实现Golang分布式存储教程** 作为一名经验丰富的开发者,我将教你如何实现Golang分布式存储。在分布式存储中,数据在多台计算机上进行存储和处理,以提高系统的性能和可靠性。在Golang中,我们可以使用一些库和工具来实现分布式存储,如etcd、consul、Zookeeper等。 ### 整体流程 首先,让我们来看一下整件事情的流程,如下表所示: | 步骤 |
原创 2024-05-28 11:12:47
69阅读
在现代分布式系统中,Redis 常常被用作数据存储和缓存解决方案。而结合 Golang 的强大功能,构建一个分布式的 Redis 系统并实现有效的备份和恢复策略,就显得尤其重要。以下是我整理的关于“Golang 分布式 Redis”的一系列技术细节。 ### 备份策略 在进行 Redis 数据备份时,我们的目标是确保数据的持久性和可恢复性。这一过程可以分为几个步骤。首先,理解不同的备份存储介质对
原创 5月前
39阅读
**实现“golang 分布式事务”教程** **一、整体流程** | 步骤 | 描述 | |---|---| | 1 | 创建一个分布式事务的全局唯一ID | | 2 | 开启事务 | | 3 | 执行本地业务逻辑 | | 4 | 调用其他服务,执行其他业务逻辑 | | 5 | 提交事务(确认操作)或回滚事务(撤销操作) | **二、详细步骤** **1. 创建一个分布式事务的全局唯一I
原创 2024-05-28 11:12:33
111阅读
1. go实现分布式锁通过 golang 实现一个简单的分布式锁,包括锁续约、重试机制、singleflght机制的使用1.1 redis_lock.gopackage redis_lock import ( "context" _ "embed" "errors" "github.com/go-redis/redis/v9" "github.com/google/uuid" "go
转载 2023-10-08 23:44:33
378阅读
MySQL分布式事务介绍InnoDB存储引擎提供了对XA事务的支持,并通过XA事务来支持分布式事务的实现。分布式事务指的是允许多个独立的事务资源参与到一个全局的事务中。事务资源通常是关系型数据库系统,但也可以是其他类型的资源。全局事务要求在其中的所有参与的事务要么都提交,要么都回滚,这对于事务原有的ACID要求又有了提高。另外,在使用分布式事务时,InnoDB存储引擎的事务隔离级别必须设置为SER
1.什么是dubbo框架?dubbo是阿里巴巴开发的分布式框架(之前的框架为集中式框架)。2.dubbo框架有什么用   把一个大的项目拆分成多个项目,由原来的一个项目处理工作,变为多个项目一同处理工作,提高工作效率3.dubbo框架如何使用     生产者(服务端):service+dao项目组合   &n
    最开始关注Spark,是在csdn首页上看到一篇文件《Spark核心开发者:性能超Hadoop百倍,算法实现仅有其1/10或1/100》的,看着标题确实感觉比较年逼的。后来稍微研究了一下,其实发现,这个描述有点问题。Spark是一个基于内存的纯计算框架,而hadoop是包括计算框架的mapreduce和分布式存储hdfs,所以应该描述为Spark性能超Hadoop的ma
转载 2023-09-13 10:40:40
85阅读
我们设计的分布式系统,在正常工作时呈现出网状。服务有层次性,客户的请求会逐步经历各层服务进行处理,当遍历完所有服务后才会完成一次请求。每层服务会有若干台机器,上游节点的机器可以把输出结果传递到下游节点的任意一台机器上。 当服务所依赖的数据需要更新时,我们需要做好同步工作,并保证在数据更新过程中服务是可用的。这儿介绍两类更新的操作方式,它们都需要用到zookeeper来实现。 第
转载 2023-08-24 15:54:11
78阅读
2-1. Spring Cloud 是什么?Spring Cloud是一个一站的开发分布式系统的框架,为开发者提供了一系列的构建分布式系统的工具集Spring Cloud为开发人员提供了快速构建分布式系统中一些常见的工具(比如:配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分部署会话和集群状态管理等)。开发分布式系统都需要解决一系列共同关心的问题,而使用Spring
转载 2024-03-16 08:43:07
16阅读
  • 1
  • 2
  • 3
  • 4
  • 5