获得徽章 0
- #青训营 x 字节后端训练营# Hadoop是一个开源的分布式计算框架,它可以处理大规模数据集并在集群中分布式地运行。它基于Google的MapReduce和Google文件系统(GFS)的思想而设计,旨在解决大数据处理的问题。Hadoop主要由两个核心组件组成:Hadoop分布式文件系统(HDFS)和MapReduce计算框架。HDFS是一个分布式文件系统,可以在不同的计算节点上存储大规模数据集,并提供高可靠性和高可用性。MapReduce是一个用于分布式计算的编程模型,它可以将大规模数据集分成多个小的数据块,然后在集群中分布式地处理这些数据块,最后将结果合并。展开评论点赞
- #青训营 x 字节后端训练营# [ElasticSearch|字节青训营]
ElasticSearch的核心概念包括索引、文档、分片和副本。
索引:索引是ElasticSearch中的主要数据容器,它类似于关系型数据库中的表。每个索引包含多个文档。
文档:文档是ElasticSearch中的基本数据单元,它类似于关系型数据库中的记录。每个文档包含多个字段,可以是文本、数字、日期等类型。
分片:分片是将一个大的索引分成多个小的部分,每个部分称为一个分片。分片可以提高查询展开评论点赞 - #青训营 x 字节后端训练营# 在分布式系统中,多个进程或线程需要协调彼此的行为以完成任务。分布式锁是一种用于协调进程或线程之间的同步机制,它可以避免多个进程或线程同时对同一个资源进行修改。ZooKeeper是以Paxos算法为基础分布式应用程序协调服务。评论点赞
- #青训营 x 字节后端训练营# Git是一种分布式版本控制系统,它的原理是基于快照的版本控制。在Git中,每一次提交都会生成一个快照,这个快照是当前文件系统的状态。Git会将这些快照保存在一个名为“对象库”的地方,这个对象库是Git仓库的核心。
Git的对象库包括三种对象:blob、tree和commit。Blob对象表示文件内容,Tree对象表示文件夹内容,Commit对象表示提交记录。每个对象都有一个唯一的SHA-1哈希值作为其ID,Git通过这个哈希值来唯一标识每个对象。
当用户进行提交时,Git会将当前文件系统的状态生成一个快照,并将快照转换为一个Commit对象。这个Commit对象包含了当前提交的作者、提交时间、提交信息以及指向上一个Commit对象的指针。如果当前提交是第一个提交,则没有上一个Commit对象。
在Git中,分支是一个指向Commit对象的指针。当用户创建一个新的分支时,Git会创建一个指针指向当前分支所在的Commit对象。当用户进行提交时,Git会创建一个新的Commit对象,并将当前分支的指针指向这个新的Commit对象。这样,就完成了一次提交和分支的操作。
Git的分布式特性是基于其对象库的复制实现的。当用户克隆一个远程仓库时,Git会将远程仓库的对象库复制到本地,这样就可以在本地进行提交和分支的操作。当用户将本地的提交推送到远程仓库时,Git会将本地的Commit对象上传到远程仓库,并将远程分支的指针指向这个新的Commit对象。
总之,Git的原理是基于快照的版本控制,它通过对象库保存文件系统的状态,并通过Commit对象表示提交记录。Git的分布式特性是基于对象库的复制实现的,它允许多个用户在不同的计算机上同时进行版本控制。展开评论点赞 - #青训营 x 字节后端训练营# 分布式架构是指将一个大型的系统拆分成多个子系统,每个子系统运行在不同的计算机上,通过网络连接进行通信和协作,共同完成系统的任务。分布式架构的优点包括可扩展性、高可用性、容错性等。本文将介绍分布式架构的基本概念和常见技术。
基本概念
分布式架构中的核心概念包括节点、通信、协调和数据共享。
节点:分布式系统由多个节点组成,每个节点都是一个独立的计算机或服务器,它们通过网络互相连接。
通信:节点之间通过网络通信,可以使用TCP/IP协议、HTTP协议、RPC协议等。
协调:分布式系统中的节点需要协调彼此的行为,以完成系统的任务。常用的协调技术包括分布式锁、选举算法、分布式事务等。
数据共享:分布式系统中的节点可以共享数据,常用的数据共享技术包括数据库复制、分布式缓存、消息队列等。
常见技术
分布式架构中常用的技术包括:
RPC:远程过程调用是一种分布式通信技术,它允许程序在不同的计算机上调用远程的方法或函数。常用的RPC框架包括gRPC、Thrift等。
消息队列:消息队列是一种异步通信技术,它允许程序在不同的计算机上通过消息传递进行通信。常用的消息队列包括Kafka、RabbitMQ等。
分布式缓存:分布式缓存是一种将数据缓存在多个节点上的技术,它可以提高系统的性能和可扩展性。常用的分布式缓存包括Redis、Memcached等。
分布式数据库:分布式数据库是一种将数据分布在多个节点上的技术,它可以提高系统的可用性和容错性。常用的分布式数据库包括MySQL Cluster、Cassandra等。
负载均衡:负载均衡是一种将请求分配到多个节点上进行处理的技术,它可以提高系统的性能和可用性。常用的负载均衡技术包括Nginx、HAProxy等。
总结
分布式架构是一种将系统拆分成多个子系统的架构,它可以提高系统的可扩展性、高可用性和容错性。常用的技术包括RPC、消息队列、分布式缓存、分布式数据库和负载均衡等。在设计分布式系统时,需要考虑节点之间的通信、协调和数据共享等问题,以保证系统的正常运行。展开评论点赞 - #青训营 x 字节后端训练营# gorm的model结构体的使用
为了方便模型定义,GORM内置了一个gorm.Model结构体。gorm.Model是一个包含了ID,CreatedAt,UpdateAt,DeleteAt四个字段的Golang结构体,可以把这个结构体嵌入到自己的模型中。评论点赞 - #青训营 x 字节后端训练营# 【Go设计模式之并发|字节后端青训营】
并发组合模式,即一个具有层级关系的对象由一系列拥有父子关系的对象通过树形结构组成,子对象即可被串行执行,也可被并发执行。
第一点:并发子组件需要设置超时时间
第二点:区分普通组件和并发组件
第三点:拥有并发子组件的父组件需要等待并发子组件执行完毕(包含超时)展开评论点赞 - #青训营 x 字节后端训练营# [Go 语言工程实践之测试|字节青训营]在这个论坛项目测试中,文件追加和map追加都涉及到并发安全性的问题,这里使用了互斥锁,自增id这里因为可以保证临界区的互斥访问,因此采用计数累加的形式实现帖子id唯一性。评论点赞
- #青训营 x 字节后端训练营# [ GoFrame | 青训营笔记 ]
GoFrame是一款模块化、高性能、企业级的Go基础开发框架。GF框架提供了非常强大的WebServer,由ghttp模块实现。实现了丰富完善的相关组件,例如:Router、Cookie、Session、路由注册、配置管理、模板引擎、缓存控制等等,支持热重启、热更新、多域名、多端口、多实例、HTTPS、Rewrite等等特性。
初步应用流程
1、定义数据结构,在数据库建表,配置config.yaml数据库、gf cli配置(另外建个目录放)
created_at、updated_at、deleted_at 有这几个字段时,启动时间记录和软删除
字段名 不区分大小写,也会忽略特殊字符
加上Unscoped()时忽略自动时间更新特性
2、使用gf gen dao生成 dao/do/entity
一般生成的内容不需要、也尽量不去修改,避免下次生成覆盖
目前了解到如果需要配置orm模型关联需要修改
3、在api/controller/service,model里的inputModel和outputModel等处写业务代码展开评论点赞