自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fashi的博客

刚刚进入互联网的小白,请大佬多多指教!!!

  • 博客(115)
  • 收藏
  • 关注

原创 Java转Go日记(六十三):gRPC

gRPC 是一个高性能、开源的远程过程调用(RPC)框架,由 Google 开发并基于 HTTP/2 和 Protocol Buffers(protobuf)构建。它支持多种编程语言,使不同服务之间的通信更加高效和可靠。在微服务架构中,gRPC 凭借其低延迟、强类型接口和双向流式通信等优势,成为构建分布式系统的理想选择。本文通过一个用户信息查询的示例,展示了如何使用 gRPC 实现客户端与服务端的交互。首先,通过 .proto 文件定义服务接口和数据结构,然后利用 protoc 工具生成对应语言的代码。

2025-06-10 20:50:59 467

原创 Java转Go日记(六十二):Raft

Raft是一种分布式共识算法,用于确保集群节点间状态机的一致性转换。核心机制包括:1)领导选举:节点初始为跟随者,超时未收到心跳则变为候选人发起投票,获多数票者成为领导者;2)日志复制:领导者接收客户端指令并广播日志条目,待多数节点确认后提交到状态机;3)安全性保障:确保所有节点最终执行相同日志序列。算法通过心跳触发选举,并采用持久重试机制处理节点故障,典型5节点集群可容忍2节点失效。网络分区时,Raft能自动恢复一致性。该算法已在Go、Java等多语言中实现,是Consul和etcd等系统的核心组件。

2025-06-10 11:18:04 374

原创 Java转Go日记(六十一):微服务之RPC

本文详细介绍了Golang中RPC的实现方法。首先讲解了RPC的基本概念及其优势,然后对比了流行的RPC框架。重点展示了Golang通过标准库net/rpc实现RPC的具体步骤,包括服务端注册方法、客户端调用方法等核心流程。文章还提供了两个完整示例:矩形计算服务和数学运算服务,并分别演示了基于HTTP和JSON-RPC的两种实现方式。最后深入解析了RPC的底层通信机制,包括网络传输数据格式、编码解码过程以及服务端和客户端的实现原理。通过测试案例验证了RPC通信的正确性,为开发者提供了完整的RPC实现方案。

2025-06-06 12:00:00 762

原创 Java转Go日记(六十):gin其他常用知识

本文介绍了Gin框架开发中的三个实用技巧:1) 日志文件配置方法,演示如何将Gin日志输出到文件;2) 使用Air工具实现实时加载功能,提升开发效率,包括安装配置方法;3) 验证码功能的实现方案,通过dchest/captcha库集成验证码生成与验证,并提供了完整的后端代码示例和前端调用方式。这些技巧涵盖了Gin开发中的日志管理、开发工具和安全性等关键环节。

2025-06-05 15:04:36 954

原创 Java转Go日记(五十九):参数验证

本文介绍了Gin框架中数据验证的三种方法:1)使用gin内置binding标签进行基础验证,如必填项、数值范围等;2)自定义验证方法,通过validator.v8注册校验函数实现特殊规则;3)多语言验证翻译,利用universal-translator根据不同locale返回定制化错误信息。这些方法可以减少if-else判断,提高代码简洁性,同时满足不同场景的验证需求,如中文/英文错误提示、自定义业务规则等。文中提供了完整的代码示例,展示了从简单字段验证到复杂国际化验证的实现过程。

2025-06-05 11:44:14 387

原创 Java转Go日记(五十八):会话控制

本文介绍了HTTP Cookie的基本概念及其在Gin框架中的实际应用。Cookie是解决HTTP协议无状态问题的方案之一,服务器通过Cookie可以识别客户端身份。文章详细演示了Gin框架中Cookie的设置和读取方法,包括一个完整的权限验证中间件实现示例。同时指出Cookie存在安全性低、增加带宽等缺点,并推荐使用更安全的Session机制,最后展示了gorilla/sessions库的使用方法,包括Session的存储、读取和删除。全文从基础概念到实际应用,再到替代方案,系统讲解了HTTP状态管理技术

2025-06-04 15:32:03 311

原创 Java转Go日记(五十七):gin 中间件

本文介绍了Gin框架中间件的几种使用方式。全局中间件通过r.Use()注册,适用于所有路由;局部中间件直接在路由中指定;Next()方法允许在中间件中执行后续处理并统计时间。并且本文还提供了计时中间件的实现示例,通过在请求前后记录时间来计算处理耗时。这些技术可用于日志记录、性能监控等场景。演示代码展示了如何在不同路由上使用中间件并输出执行时间。

2025-06-04 11:29:34 760

原创 Java转Go日记(五十六):gin 渲染

本文介绍了使用Gin框架处理多种数据格式响应、HTML模板渲染、重定向以及同步异步处理的方法。首先,Gin支持JSON、结构体、XML、YAML和ProtoBuf等多种数据格式的响应,开发者可以根据需求选择合适的格式返回数据。其次,Gin通过LoadHTMLGlob方法加载HTML模板,并支持模板参数配置,实现动态内容渲染。此外,Gin提供了简单的重定向功能,可以通过Redirect方法实现URL跳转。最后,Gin利用Go语言的goroutine机制,支持异步处理请求,开发者可以通过Copy方法创建上下文的

2025-05-23 11:55:33 931

原创 Java转Go日记(五十五):gin 数据解析和绑定

本文介绍了如何使用Gin框架处理JSON、表单和URI数据的解析与绑定。首先,定义了一个Login结构体,用于接收客户端传递的用户名和密码。通过gin.Default()创建路由,并分别使用ShouldBindJSON、Bind和ShouldBindUri方法解析JSON、表单和URI数据。如果解析失败或用户名密码不匹配,返回相应的错误信息;否则,返回成功状态码。代码示例展示了如何实现这些功能,并提供了简单的HTML表单用于测试。

2025-05-23 11:07:18 317

原创 Java转Go日记(五十四):gin路由

本文介绍了Gin框架的基本路由、Restful风格API、API参数、URL参数、表单参数、文件上传、路由组等功能。Gin框架基于httprouter库,支持GET、POST、PUT等HTTP方法,能够通过Context获取API参数和URL参数,处理表单数据和文件上传。文件上传支持单个和多个文件,并能限制文件类型和大小。路由组功能用于管理相同URL前缀的路由。Gin框架通过前缀树结构高效处理路由匹配,适合构建高性能的Web应用。

2025-05-22 17:41:11 968

原创 Java转Go日记(五十三):gin框架简介

Gin是一个基于Go语言的轻量级Web框架,以其优雅的封装、友好的API和清晰的源码注释著称。它具备快速、灵活和容错方便等特点,适合开发高性能的Web应用。与Python、Java等语言相比,Go语言的Web框架依赖较少,其自带的net/http库已经足够简单且性能优异。使用Gin框架可以节省常用功能的封装时间,并有助于统一团队的编码风格。安装Gin需要先安装Go(1.10+版本),然后通过go get -u github.com/gin-gonic/gin命令安装。在代码中导入Gin后,可以快速创建一个简

2025-05-22 16:19:45 232

原创 Java转Go日记(五十二):静态文件处理

在Beego框架中,静态文件的处理是通过设置静态目录来实现的。默认情况下,Beego将static目录注册为静态文件处理目录,包含css、img和js子目录。开发者可以在main.go文件中的beego.Run()之前,通过StaticDir或SetStaticPath方法设置多个静态文件处理目录。例如,设置/down1和/down2分别映射到download1和download2目录,用户访问相应URL时,Beego会自动从映射的目录中获取文件。这种机制使得静态资源的管理和访问更加灵活和高效。

2025-05-22 10:50:15 196

原创 Java转Go日记(五十一):View编写

在Beego框架中,Controller通过this.TplName设置模板文件,默认支持tpl和html后缀,其他后缀可通过beego.AddTemplateExt接口添加。Beego使用Go语言默认的模板引擎,模板语法与Go一致,数据通过map类型传递,模板中通过{{.Key}}访问。例如,{{.Website}}和{{.Email}}分别输出网站和邮箱信息。此外,Beego还支持静态文件的输出,具体方法将在后续讲解。

2025-05-21 20:23:42 221

原创 Java转Go日记(五十):Model逻辑

在Web应用中,Model层通常用于处理数据库操作,是数据读取和逻辑复用的核心。在简单的应用中,Controller可以处理所有逻辑,但随着应用复杂度增加,Model层的作用变得不可或缺。通过将可复用的逻辑抽象成模块,Model层有助于代码的组织和维护。例如,在日志分析应用中,Model层可以包含处理特定数据读取的函数,如判断URL是否为页面访问(PV)的函数。因此,Model层的引入是应用逐步抽象和模块化的过程,对于需要逻辑分离和复用的复杂应用,Model层是必不可少的。接下来,我们将探讨如何编写View

2025-05-21 20:11:27 220

原创 Java转Go日记(四十九):路由设置

本文介绍了Beego项目路由设置的基本流程。首先从main函数入口分析,通过引入路由包执行init函数注册URL到Controller的映射。接着详细解析了beego.Run()的内部机制,包括配置文件解析、hook函数执行、session初始化、模板预编译、文档功能和管理模块启动等。最后指出服务会监听8080对外端口和8088监控端口,为后续Controller逻辑处理奠定基础。

2025-05-21 17:53:34 386

原创 Java转Go日记(四十八):新建项目

本文介绍了使用beego框架创建和运行项目的步骤。首先通过bee命令创建项目,自动生成MVC架构的目录结构,包含conf、controllers、models等标准文件夹。然后使用beerun命令运行项目,实现热编译效果,项目默认在8080端口启动。整个过程无需依赖nginx或apache,因为Go语言已内置网络层功能,beego在此基础上进行了封装。创建完成后,开发者可以立即在浏览器中查看运行效果

2025-05-21 15:00:26 142

原创 Java转Go日记(四十七):bee工具的使用

本文通过简单的例子来让读者快速了解bee工具的使用

2025-05-21 12:00:00 1863

原创 Java转Go日记(四十六):go操作memcached

本文通过简单的例子来让读者快速熟悉memcached中的一些常见操作

2025-05-20 21:46:50 130

原创 Java转Go日记(四十五):Gorm用法介绍

本文通过简单的例子来带读者快速学习Gorm的各种基本用法

2025-05-20 21:37:58 258

原创 Java转Go日记(四十四):Sql构建

本文通过简单的例子来讲解Gorm中的Sql构建方法

2025-05-20 19:20:23 349

原创 Java转Go日记(四十三):Gorm事务

本文通过简单的例子去介绍Gorm中事务的用法

2025-05-20 14:21:41 287

原创 Java转Go日记(四十二):错误处理

本文通过一个简单的例子来简洁介绍Gorm中的错误处理

2025-05-20 12:05:44 341

原创 Java转Go日记(四十一):Gorm删除

本文通过简单的例子来让读者快速上手Gorm的删除操作,并附有对应的sql语句和讲解

2025-05-20 11:52:22 421

原创 Java转Go日记(四十):Gorm更新

本文通过一些简单的例子,来让读者快速了解Gorm更新的操作,并配备了相应的sql语句进行辅助理解

2025-05-20 11:33:34 246

原创 Java转Go日记(三十九):Gorm查询

本文通过简单的例子,来实操Gorm中的各种查询语句,并配有对应的sql语句讲解

2025-05-19 20:06:13 878

原创 Java转Go日记(三十八):Gorm介绍

本文通过简单的例子来向读者介绍什么go中常用的操作数据库的工具Gorm

2025-05-19 19:37:02 158

原创 Java转Go日记(三十七):Zookeeper命令行使用

本文通过简单的例子来讲解zookeeper中的常见的命令行的使用

2025-05-15 16:41:25 521

原创 Java转Go日记(三十六):简单的分布式

本文通过zookeeper去实现一个简单的分布式server例子,以此来理解zookeeper作为服务注册和配置中心的角色

2025-05-15 16:36:16 461

原创 Java转Go日记(三十五):zookeeper的基本操作测试

本文通过简单的例子来让读者快速对zookeeper进行基本操作测试

2025-05-14 20:40:19 141

原创 Java转Go日记(三十四):操作ETCD

本文通过简单的例子来让读者快速上手操作etcd的一些常见操作

2025-05-14 10:46:03 150

原创 Java转Go日记(三十三):ETCD介绍

本文通过简单的例子介绍什么是etcd,以及说明对于java转go语言的同学来说,etcd是一个go语言开发的比ZooKeeper更高效的分布式key-value存储系统

2025-05-13 17:51:10 1550

原创 Java转Go日记(三十三):Redis连接池

本文通过简单的例子,来让读者快速在实践中了解Redis连接池子的概念

2025-05-13 16:21:19 232

原创 Java转Go日记(三十二):Hash表

本文通过简单的例子,来让读者快速上手Redis中的Hash表数据结构

2025-05-13 15:05:21 116

原创 Java转Go日记(三十一):List队列操作

本文通过简单的例子来让读者快速上手redis中的List数据结构

2025-05-13 15:01:44 116

原创 Java转Go日记(三十一):设置过期时间

本文通过简单的例子来讲解,redis中如何设置数据的过期时间

2025-05-13 14:59:47 74

原创 Java转Go日记(三十):String批量操作

本文通过简单的例子,来让读者快速理解redis中string类型的批量操作

2025-05-13 14:57:51 105

原创 Java转Go日记(二十九):String类型Set、Get操作

本文通过例子来让读者快速进行redis中string类型的相关操作

2025-05-13 14:33:54 124

原创 Java转Go日记(二十八)链接Redis

本文通过简单的例子来让读者快速链接Redis,以方便进行后续操作

2025-05-13 14:12:50 94

原创 Java转Go日记(二十七):Redis介绍

本文为go操作Redis的第1小节,介绍redis到底是什么东西

2025-05-08 16:20:37 215

原创 Java转Go日记(二十六):MySQL事务

本文为go语言操作MySQL的第6小节,如何在代码中使用MySQL事务

2025-05-08 16:14:26 93

第六届字节跳动青训营前端基础班大项目-仿掘金网站JueJin

亲爱的小伙伴,你准备好了吗? 第六届字节跳动青训营-暑假专场来咯! 无论你是初学者还是有一定经验 都可以在青训营找到属于自己的位置 全方位课程讲解&项目实践指导 让你轻松掌握【前端or后端】技术 更有字节内部精品课程,带你走进互联网生活 线上活动,全程免费 天马行空,比如一起仰望星空 加入我们,创造属于自己的无限可能吧! 青训营是什么? 1.青训营是字节跳动稀土掘金社区发起的技术培训&人才选拔项目,面向在校大学生,旨在培养优秀且有职业竞争力的开发工程师。 2.第六届字节跳动青训营-暑假专场,将开设前端、后端方向,同时招募来自字节各大业务线的技术大咖及一线优秀工程师们参加专业技术课程的设计和开发,为同学们分享知识,帮助提升同学们的技术专业力。 报名链接如下: https://juejin.cn/activityregister/7236177108368572475/info?utm_source=campus-5104

2023-06-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除