go
XiZhi_BUAA
这个作者很懒,什么都没留下…
展开
-
golang gin/net/http demos
1."net/http"包可以用来做什么?可以通过url接口进行参数、文件的传递,并获取响应response。方法包括:GET、PUT、DELETE、POST等。举个例子:在浏览器中输入:http://localhost:8080/start_test?projectid=QQ%E9%A3%9E%E8%BD%A6&zoneid=0,则将参数projectid=QQ%E9%A3%9E%E8%BD%A6和zoneid=0传递给服务器,服务器会返回一个响应,在浏览器页面显示。这是采用在浏览器中输入原创 2021-07-05 15:29:29 · 235 阅读 · 0 评论 -
ES学习demo大全
为了便于以后使用ES方便,自己整理了ES使用的demo,如下:package mainimport ( "context" "encoding/json" "fmt" "log" "os" "reflect" "time" "github.com/olivere/elastic/v7")// 索引mapping定义,这里仿微博消息结构定义const mapping = `{ "mappings": { "properties": { "user":原创 2021-06-28 15:07:25 · 784 阅读 · 0 评论 -
elasticsearch使用过程中的坑
在使用es的过程中遇到了很多坑,导致花费了很多精力。为了避免后面犯同样的错误,将这些坑记录在这。1.搜索结果最大返回值默认为10000问题解决这个问题的步骤应当是:设置max_result_window的值按照上图的提示改写代码2.search.max_buckets值1000限制问题解决:如果增加这个值之后仍然报这个问题,则继续调大,若调整到100000000还是不行,则可能是别的问题引起的。3.插入数据后,立马进行查询,查询不到问题插入数据后,立马进行查询,可能会遇到查询不到原创 2021-06-28 15:01:56 · 349 阅读 · 0 评论 -
go语言学习--RabbitMQ学习(routing交换器绑定队列)
交换器需要和队列绑定才能使用绑定队列需要一个额外的参数routing key,routing key决定了消息由交换器插入哪一个队列。err = ch.QueueBind( q.Name, // queue name "", // routing key "logs", // exchange false, nil)err = ch.QueueBind( q.Name, // queue name "black", // routing key "l原创 2021-05-17 19:52:37 · 302 阅读 · 0 评论 -
go语言学习--RabbitMQ学习(Publish/Subscribe交换器的用法)
fanout交换器的使用fanout交换器将接收到的消息发送到所有队列中。package mainimport ( "log" "os" "strings" "github.com/streadway/amqp")func failOnError(err error, msg string) { if err != nil { log.Fatalf("%s: %s", msg,原创 2021-05-17 17:31:43 · 272 阅读 · 0 评论 -
go语言学习--RabbitMQ学习(work queues)
一.消息丢失可能的原因及其解决方法1.worker未完成工作便崩溃、关闭、断连了问题来源: 工作任务消息发送给工人(worker),但是工人(worker)尚未完成全部工作任务,便死掉了。该工人接收到的,尚未完成的和尚未进行的工作任务消息,将全部丢失。解决方法: 使用RabbitMQ的消息确认机制。将auto-ack参数设置为false msgs, err := ch.Consume( q.Name, // queue原创 2021-05-17 16:36:11 · 303 阅读 · 0 评论 -
go语言学习--RabbitMQ学习(概论及hellowold实例)
一.什么是RabbitMQ?RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。二.RabbitMQ可以用来干什么?用于程序之间进行通信,可以是一个程序,也可以是多个程序。通信过程为,生产者程序将消息发送给消息队列(RabbitMQ的服务端),消费者可以从消息队列获取消息。三.RabbitMQ原理是什么?生产者:产生消息,并将消息发送给消息队列。消费者:从消息队列中获取消息。交换器:我们不是把消息直接发送到队列里面的,而是先发送到了交换器,交换器再原创 2021-05-17 14:53:29 · 314 阅读 · 0 评论 -
go语言学习--day4interface
package mainimport( "fmt")//接口是一种类型,规定了该类型有哪些方法//可以使用接口实现多态//例1/*type cat struct{}func (c cat) speak() { fmt.Println("喵喵喵~")}type dog struct{}func (d dog) speak() { fmt.Println("汪汪汪~")}type pig struct{}func (p pig) speak() { fmt.Pr原创 2021-05-14 16:15:58 · 110 阅读 · 0 评论 -
go语言学习--day3方法
package mainimport( "fmt")//在一个函数前面加一个变量作为接收器,即为一个方法//例如:type person struct{ name string age int sex string}func (wlm person ) PrintMsg() { fmt.Println(wlm.name) fmt.Println(wlm.age) fmt.Println(wlm.sex)}func (wlm *person ) PrintMsgPtr(原创 2021-05-13 20:59:45 · 123 阅读 · 0 评论 -
go语言学习--day3(函数)
package mainimport ( "fmt")func main() { //函数 fmt.Println("函数学习") //函数格式 /* func 函数名(参数列表)(返回值列表){ 函数体 } */ //递归 number := 1 numbers := Recurrent(number) fmt.Println(numbers) //多返回值 a,b,c:=FunTest() fmt.Println(a) fmt.Println(b)原创 2021-05-13 18:54:10 · 128 阅读 · 0 评论 -
go语言学习--day2
package mainimport( "fmt" "strings" "strconv" "encoding/json")//结构体type Employee struct{ Name string Ages int ID int}func main() {//基础数据类型和复合数据类型//1.基础数据类型var my_int int = 10;fmt.Printf("%08b\n",my_int)var my_float float32 = 1.1101fmt.原创 2021-05-13 15:35:05 · 107 阅读 · 0 评论 -
go语言学习--day2-1
go语言数据类型有四种:基础类型、复合类型、引用类型、接口类型基础类型–数字、字符串、布尔型复合类型–数组、结构体引用类型–指针、切片、字典、函数、通道,都是对程序中一个变量或者状态的间接引用接口类型–抽象的类型go语言只有强制类型转换T()3.基础数据类型3.1整型:整型:int int8 int16 int32 int64无符号整型:uint uint8 uint16 uint32 uint64无符号整型:uintptr,用于存放指针,底层编程时使用3.2浮点型:float32原创 2021-05-12 11:32:16 · 117 阅读 · 0 评论