随笔分类 - Golang
GO语言
摘要:iris路由实现原理 首先,我们看iris.New函数的作用。该函数就是创建了一个Application结构体的实例 app。然后后面的操作都是基于该实例 app 进行的操作。下面是该Application结构体的主要字段, 在Application的字段中,从名字上看有两个字段是和路由相关的:ro
阅读全文
摘要:1.NEW函数分析 iris.go 其中 router.NewRouter()初始化了一个默认路由router.go 2.RUN函数分析 (1)首先分进行app.build,构建一次可设置框架 app.build的函数如下 如果有用到视图的话,默认要建立视图的目录和模板,不在的话引用会报如下错误 h
阅读全文
摘要:package mainimport "fmt"func main() { array := []int{1, 5, 9, 15, 81, 89, 123, 189, 333} target := 500 result := BinarySearch(array, target, 0, len(ar
阅读全文
摘要:Es中处理父子关系的两种方式 1.nested类型 将goods类型设置为nested 这时候就可以查到数据了。 2.join类型 在mapping中指定字段类型为join 定义父子关系属性 PUT order{ "settings": { "number_of_shards": 1, "numbe
阅读全文
摘要:一.通过邻尽查询提升相关度 1.配合使用match_query和match_phrease 2.match_phrease匹配条件比match_query复杂 二.直接通过排序存在哪些问题 1.将权重转化为排序的先后顺序不一定合理 2.实际场景中最终的排序结果可能是多个字段的叠架的 3.排序的权重和
阅读全文
摘要:ES 字段Mapping的确认步聚 一.确定字段的数据类型 1.需要使用范围或数值排序的数值类型设置为数值 2.只进行term过滤的数值类型使用keyword 3.如果数值类型字段是可枚举的,使用keyword压缩率更高 二确定字段是否需要分词和高亮 1.不需要分词的字段,index的属性可以设置为
阅读全文
摘要:grpc服务端和客户端都提供了interceptor功能,功能类似middleware,很适合在这里处理验证、日志等流程,话不多说直接上代码 1.编写helloworld.proto 并用命令生成相应的go文件,生成的文件内容如下: // Code generated by protoc-gen-g
阅读全文
摘要:srteam 顾名思义 就是 一种 流,可以源源不断的 推送 数据,很适合 传输一些大数据,或者 服务端 和 客户端 长时间 数据交互,比如 客户端 可以向 服务端 订阅 一个数据,服务端 就 可以利用 stream ,源源不断地 推送数据。 1. grpc的四种数据流 1.简单模式 2.服务端数据
阅读全文
摘要:在gRPC里,客户端可以像调用本地方法一样直接调用其他机器上的服务端应用程序的方法,帮助你更容易创建分布式应用程序和服务。与许多RPC系统一样,gRPC是基于定义一个服务,指定一个可以远程调用的带有参数和返回类型的的方法。在服务端程序中实现这个接口并且运行gRPC服务处理客户端调用。在客户端,有一个
阅读全文
摘要:HTTP 1.1与HTTP 2的对比头信息压缩HTTP 1.1中,每一次发送和响应,都有HTTP头信息。HTTP 2压缩头信息,减少带宽。推送功能HTTP 2之前,只能客户端发送数据,服务器端返回数据。HTTP2中,服务器可以主动向客户端发起一些数据传输(如css和png等),服务器可以并行发送ht
阅读全文
摘要:一.创建项目 1.1创建项目 在Linuxshare/cloud_center/目录下创建module项目 kratos new module -r https://gitee.com/go-kratos/kratos-layout.git 进入到module删除多余的文件 internal/dat
阅读全文
摘要:1.chan数据结构 一个channel只能传递一种类型的值,类型信息存储在hchan数据结构中。 elemtype代表类型,用于数据传递过程中的赋值; elemsize代表类型大小,用于在buf中定位元素位置。 一个channel同时仅允许被一个goroutine读写,为简单起见,本章后续部分说明
阅读全文
摘要:package timerimport ( "fmt" "time")var ( BackOffset = -1 * time.Millisecond)type TimeRange struct { Start time.Time End time.Time}func (s TimeRange) S
阅读全文
摘要:rabbitmq.go文件代码如下 package RabbitMQimport ( "fmt" "github.com/streadway/amqp" "log")const MQURL = "amqp://lyc:lyc123456@192.168.66.130:5672/imooc"type
阅读全文
摘要:package mainimport ( "fmt" "sort")type frequency struct { char string fre int}func frequencies(s string) []frequency { m := make(map[string]int) for _
阅读全文

浙公网安备 33010602011771号