自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 GoMicro学习笔记 简易搭建go micro服务并使用http形式请求这个服务

启动go micro服务创建好项目后,使用go mod init <项目名>生成一个go.mod文件获取micro工具包go get github.com/micro/micro获取protoc-gen-go(通过此可以直接生成go语言对应的编译代码)go get github.com/micro/protobuf/{proto,protoc-gen-go}启动Consul(使用consul作为注册中心注册所有服务)docker run consul编写greeter.pr

2020-12-30 17:17:10 622

原创 GoMicro学习笔记 Micro和GoMicro

Micro是运行时工具集,而GoMicro则是后端服务框架。Micro如下图所示,micro类似于中间层的作用,手机,web等通过micro中相应的API,BOT,WEB等工具,调用gomicro框架中的服务Micro Api主要功能在于将http请求转向到内部服务。即通过Micro Api将内部服务暴露给外部http请求。 Micro Proxy可以让服务客户端直接调用服务。与Mirco API不同的是,api主要是将rpc转成http形式给外部,而proxy则是只能使用rpc形式Go.

2020-12-27 21:34:37 297

原创 TCP/IP随笔 http和tcp的区别

简单来说,通常情况下http是基于tcp的。tpc是传输层的,而http是应用层的。tcp的优势在于长连接,即三次握手之后,理想情况下,除非一方主动关闭连接(四次挥手),tcp连接将一直持续下去(其中可能会受到防火墙等因素的干扰而关闭)。http是短连接,在已建立tcp连接的基础上,使用“请求—响应”的方式进行数据交换。http需要客户端向服务器发出请求后,服务器端才能回复数据。此外,应用层使用套接字(socket)将数据传递给传输层,并进一步使用传输层进行数据通信。参考:HTTP与TCP的区.

2020-12-27 16:30:49 142

原创 Go学习笔记 Context上下文

什么是上下文Context 也叫作“上下文”,是一个比较抽象的概念,一般理解为程序单元的一个运行状态、现场、快照。其中上下是指存在上下层的传递,上会把内容传递给下,程序单元则指的是 Goroutine。每个 Goroutine 在执行之前,都要先知道程序当前的执行状态,通常将这些执行状态封装在一个 Context 变量中,传递给要执行的 Goroutine 中。(个人理解为goroutine运行时的环境)Context的结构type Context interface { // 返回该上下

2020-12-25 18:10:40 288

原创 Go学习笔记 值拷贝和引用拷贝

只有map,slice,chan是引用类型,其拷贝为引用拷贝值拷贝package main import "fmt" func modify(a [3]int) { a[0] = 4 } func main() { a := [3]int{1, 2, 3} modify(a) fmt.Println(a) }这种情况是值拷贝,返回[1, 2, 3]引用拷贝func main() { a := make([]i

2020-12-23 15:34:58 698

原创 RocketMQ学习笔记 发送消息和消费消息

RocketMQ发送的消息分为普通消息,顺序消息,事务消息,延时消息四种普通消息的发送方式又分为同步(Sync)发送、异步(Async)发送和单向(Oneway)发送其中同步发送如图异步发送单向发送因为rocketmq的异步是开了一个线程去做的,而php是单线程的,所以目前的php rocketmq的示例sdk是同步发送的普通消息的情况下,不能保证消息的消费先后顺序。集群消费会将消息平均分配给同集群下的所有消费者。如果消费者没有消费消息,会导致消息一直处于未消..

2020-12-13 20:14:45 481

原创 RocketMQ学习笔记 名词解释

rocketMQ中,主要使用topic和tag对消息进行分类。其中,topic是一级分类,而tag是进一步的二级分类。每个Topic下会由一到多个队列来存储消息一个group下能有多个consumer。每个consumer生产或消费同一类消息,且消息发布或订阅的逻辑一致集群消费一个Group ID所标识的所有Consumer平均分摊消费消息。例如某个Topic有9条消息,一个Group ID有3个Consumer实例,那么在集群消费模式下每个实例平均分摊,只消费其中的3条消息。广播消费一个Gr.

2020-12-13 17:54:56 316

原创 Go语言学习笔记 利用cron执行定时脚本

import "github.com/robfig/cron"func main() { // 启动一个gorutine执行定时脚本 go func() { // 定时脚本 global.AppLog.Info("Starting FillBillCycle...") c := cron.New() // 新建一个定时任务对象 c.AddFunc("20 */2 * * * *", func() { Cycle() }) // 给对象增加定时任务 c.St.

2020-12-12 19:02:24 312

原创 Go语言学习笔记 grom追加事务

// 开始事务tx := db.Begin()// 在事务中做一些数据库操作(从这一点使用'tx',而不是'db')tx.Create(...)// ...// 发生错误时回滚事务tx.Rollback()// 或提交事务tx.Commit()基于grom,go中如何接收错误并回滚func test() (finErr error) { // 开启事务 tx := db.Begin() global.AppLog.Info("Begin Transaction...")

2020-12-12 18:43:20 272

空空如也

空空如也

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

TA关注的人

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