Go
文章平均质量分 92
有码无尘
web开发工程师
展开
-
一脚踢你进Go语言大门!入门者必看,万字长文,建议收藏!
第一部分:一脚踢你进Go语言大门!基础不牢,地动山摇1.第一个例子:Hello Worldpackage mainimport "fmt"func main(){ fmt.Println("Hello World")}第一行 package main 代表当前的文件属于哪个包,package 是 go 语言生命包的关键字,main 是包名,main包是一个特殊的包,代表此项目为一个可运行的应用程序,而不是一个被其他项目引用的库。第二行 import “fmt” 是导入一个 fmt原创 2021-07-11 20:13:15 · 483 阅读 · 0 评论 -
go语言微服务项目,高级篇--09上传头像-房屋信息-简单shell管理
FastDFS 和 NginxFastDFS三端:客户端:client监听端(监听服务器):tracker存储端(存储服务器):storage使用步骤:监听服务器定时查看存储服务器的状态。client 访问监听服务器, 获取到可用的 存储服务器地址。客户端根据返回的地址,访问存储服务器。存储服务器存储文件,并返回凭证。如:“组名/M00/00/00/xxxxxx”与以往的区别图片需要上传!但是不需要下载。 直接按 “凭证” 展示到 浏览器即可。fastDFS 不提供 “原创 2021-04-30 17:20:21 · 120 阅读 · 2 评论 -
go语言微服务项目,高级篇--08用户登录-获取细腻-改名-中间件
用户登录修改 GetSession 方法之前实现的 web/controller/user.go 中的 GetSession() 方法,是一个伪实现,没有真正的获取 Session。从 容器中, 真正的获取 Session,展示给浏览器。func GetSession(ctx *gin.Context) { resp := make(map[string]interface{}) // 获取 Session 数据 s := sessions.Default(ctx) // 初始化原创 2021-04-30 17:18:55 · 104 阅读 · 1 评论 -
go语言微服务项目,高级篇--07注册业务微服务-获取地域信息-Cookie-Session-用户登录
微服务实现 注册用户微服务端修改密码本 —— proto 文件syntax = "proto3";package go.micro.srv.user;service User { rpc SendSms(Request) returns (Response) {}; rpc Register(RegReq) returns (Response) {}; // 注册用户}message RegReq { string mobile = 1; string pas原创 2021-04-30 17:17:16 · 89 阅读 · 1 评论 -
go语言微服务项目,高级篇--06gorm操作mysql-创建项目用表
ORM 框架ORM 框架介绍ORM:Object Relational Mapping —— 对象关系映射。作用:通过操作结构体对象,来达到操作数据库表的目的。通过结构体对象,来生成数据库表。优点:SQL有可能 比较复杂。(Oracle — 子查询 – 嵌套)ORM 操作数据库,不需要使用 SQL不同开发者,书写的 SQL 语句执行效率不同。go语言支持的 ORM:gORM:http://gorm.book.jasperxu.com/xORM:原创 2021-04-30 17:15:30 · 223 阅读 · 1 评论 -
go语言微服务项目,高级篇--05短信验证码-获取绑定数据
短信验证码测试短信验证码申请 阿里云账号、开通短信验证码功能、申请签名、申请模板、申请 AccessKey打开 OpenAPI Explorer。选择 左侧 SendSms在中间位置依次填:华东1(杭州)、手机号、签名的名称、模板Code、{”code“:验证码}在右侧自动生成代码。 拷贝至,测试.go 程序中将 dysmsapi.NewClientWithAccessKey() 函数的 :<accessKeyId> 和 <accessSecret&原创 2021-04-30 17:08:30 · 246 阅读 · 2 评论 -
go语言微服务项目,高级篇--04图片验证码-redis-开发者平台说明
图片验证码获取 注册页面 图片验证码ID启动 web页面,点击“注册” 按钮。在 NetWork —— Headers 中 看到 错误信息!从 URL中,提取 图片验证码ID 。 保存 成 uuid查看 gin 框架 中文文档。—— “获取路径中的参数”web/main.go 中 添加 路由匹配:router.GET("/api/v1.0/imagecode/:uuid", controller.GetImageCd)web/controller/user.go 中 ,实原创 2021-04-30 17:06:55 · 365 阅读 · 2 评论 -
go语言微服务项目,高级篇--03go-mirco框架-gin框架-mvc-REST-Session
go-Micro 框架创建 micro 服务命令:micro new --type srv test66框架默认自带服务发现:mdns。使用consul服务发现:1. 初始consul服务发现: consulReg := consul.NewRegistry()2. 在 NewService 中 添加 服务。 micro.Registry(consulReg ),使用 go-micro框架 创建 客户端命令:micro new --type web test77补充 http 相关知识:原创 2021-04-30 17:04:10 · 557 阅读 · 1 评论 -
go语言微服务项目,高级篇--02micro-consul-grpc-gomicro框架
作业:grpc 远程调用。服务端 grpc初始一个 grpc 对象注册服务设置监听, 指定 IP、port启动服务。---- serve()客户端 grpc连接 grpc 服务给 grpc.Dial() 传参2 : grpc.WithInsecure() . 表示:以安全的方式操作。初始化 grpc 客户端调用远程服务。给 grpc.SayHello() 传参1: context.TODO() 表示:空对象。go-mircomicro 简介go-原创 2021-04-30 16:57:47 · 529 阅读 · 1 评论 -
go语言微服务项目,高级篇--01微服务介绍-rpc-protobuf-grpc
单体式和微服务单体式架构服务—— 过往大家熟悉的服务器。特性:复杂性随着开发越来越高, 遇到问题解决困难。技术债务逐渐上升。耦合度高,维护成本大!出现bug, 不容易排查解决旧bug, 会出新bug持续交付时间较长。技术选型成本高,风险大。扩展性较差垂直扩展:通过增加单个系统程的负荷来实现扩展。水平扩展:通过增加更多的系统成员来实现扩展。微服务优点:职责单一轻量级通信独立性迭代开发。缺点:运维成本高分部式复杂度接口成本高重复性劳动业原创 2021-04-30 16:53:11 · 354 阅读 · 3 评论 -
go语言微服务项目,基础篇--go4-聊天室
一、概述实现一个网络聊天室(群),功能分析:上线下线聊天,其他人、自己都可以看到聊天消息查询当前聊天室用户名字 who可以修改自己名字rename|Duke超时踢出效果展示:技术点分析:sockt tcp编程map结构,存储所有的用户map遍历map删除go程、channelselect(超时退出,主动退出)timer 定时器二、实现基础第一阶段:思路分析1.tcp socket,建立多个连接package mainimp原创 2021-04-20 16:15:20 · 286 阅读 · 0 评论 -
go语言微服务项目,基础篇--go3-socket-http
一、网络分层二、socket- Server Demo接收一个链接,而且只能发送一次数据package mainimport ( "fmt" "net" "strings")func main() { //创建监听 ip := "127.0.0.1" port := 8848 address := fmt.Sprintf("%s:%d", ip, port) //func Listen(network, address string) (Listener, error原创 2021-04-20 16:10:11 · 442 阅读 · 0 评论 -
go语言微服务项目,基础篇--go2-高级语法
一、基础语法补充1. switchpackage mainimport ( "fmt" "os")//从命令输入参数,在switch中进行处理func main() { //C: argc , **argv //Go: os.Args ==> 直接可以获取命令输入,是一个字符串切片 []string cmds := os.Args //os.Args[0] ==> 程序名字 //os.Args[1] ==> 第一个参数 ,以此类推 for key, cm原创 2021-04-20 16:06:27 · 799 阅读 · 0 评论 -
go语言微服务项目,基础篇--go1-基础语法
学习该项目能做什么go语言本身为什么学习go语言?go语言2008年前后由google公司开发,开发人员都是c语言的大佬2020年4月TIOBE排名12位开发速度快,执行效率高:开发速度:c < go < python效率:python < go < cgo语言开发的项目:docker, k8s,区块链项目(以太坊,fabric)公司开发新项目、旧项目重构:后台服务器、web服务器 ==》 使用go语言go语言找工作一般都会认为是其他语言转行过来,一般会原创 2021-04-19 16:31:25 · 590 阅读 · 0 评论 -
go语言微服务项目,基础篇--02-shell
一、输入输出echo回声,用于打印输出工作-n: 可以不换行-e:对字符进行转义,\t ===》 enableprintfprintf “%d,%s\n” 10 “你好”注意10 和 “你好” 两个参数之间,没有逗号3管道|使用| 可以将多个命令拼接在一起 cat /etc/passwd | grep itcast | cut -d: -f41000原理:将前一个命令的标准输出作为后一个命令的标准输入标准错误输出是不会被管道传递的cp |原创 2021-04-19 16:07:49 · 210 阅读 · 0 评论 -
go语言微服务项目,基础篇--01-shell
一、shell介绍shell是用户与操作系统交互工具,桥梁它本身是一个应用程序,可以使用echo $$来查看它的pidshell贝壳的意思,像一个贝壳一样将操作系统包裹起来,供用户交互使用在开发过程中,需求:统计一个日志中错误日志的条数:c,python,java,开发效率很低,需要2小时shell,几个命令就可以搞定了运维上的需求,打包,编译,预处理,批量的、重复性的操作,我们可以快速的使用shell脚本进行完成。shell开发人员是必须掌握的技能!主流的shell工具:原创 2021-04-19 15:43:28 · 427 阅读 · 0 评论