2021
06-08
06-08
golang elasticsearch Client的使用详解
elasticsearch的client,通过NewClient建立连接,通过NewClient中的Set.URL设置访问的地址,SetSniff设置集群获得连接后,通过Index方法插入数据,插入后可以通过Get方法获得数据(最后的测试用例中会使用elasticsearchclient的Get方法)funcSave(iteminterface{}){client,err:=elastic.NewClient(elastic.SetURL("http://192.168.174.128:9200/"),//Mustturnoffsniffindockerelastic.SetSn...
继续阅读 >
参数及返回值参数一指定数据类型为int参数二(…interface{})可传任何多个不同类型的参数返回值:单个返回值直接指定数据类型可以不使用(),多个返回值需使用()。各返回值之间使用逗号分隔funcmain(){demo.Params(10,20,"golang",true)}funcParams(idint,params...interface{})(error,error){fmt.Println(id)fmt.Println(params[0])fmt.Println(params[1])fmt.Println(params[2])forkey,val:=rangeparams...
众所周知,目前的golangerror只关注Error()信息,而不关注它的堆栈路径,对错误的定位大多数通过log.SetFlags(log.Llongfile|log.LstdFlags)log.Println(e)一旦代码分层,为了定位错误,可能出现每一个层次的同一个error,都得log好几次,比如:funcDB()error{returnerrors.New("timeout")}funcDao()error{ifer:=DB();er!=nil{log.Println(er)returnerror}returnnil}funcService()error{i...
简单的DNS服务器提供一个简单的可以查询域名和反向查询的DNS服务器。dig命令主要用来从DNS域名服务器查询主机地址信息。查找www.baidu.com的ip(A记录):命令:dig@127.0.0.1www.baidu.com根据ip查找对应域名(PTR记录):命令:dig@127.0.0.1-x220.181.38.150源码:packagemainimport("fmt""net""golang.org/x/net/dns/dnsmessage")funcmain(){conn,err:=net.ListenUDP("udp",&net.UDPAddr{Port:53})if...
interface{}转为普通类型我们都知道在golang中interface{}可以代表任何类型,对于像int64、bool、string等这些简单类型,interface{}类型转为这些简单类型时,直接使用p,ok:=t.(bool)p,ok:=t.(int64)如果ok==true的话,就已经类型转换成功。假设有这样一个场景,我们有一个函数有返回值,但是返回值的类型不定,所以我们的返回值类型只能以接口来代替了。返回接口类型之后,我们就要对其类型进行判断然后进行类型转换。如果...
今天用go实现一个简单的负载均衡的算法,虽然简单,还是要写一下。1.首先就是服务器的信息packagebalancetypeInstancestruct{hoststringportint}funcNewInstance(hoststring,portint)*Instance{return&Instance{host:host,port:port,}}func(p*Instance)GetHost()string{returnp.host}func(p*Instance)GetPort()int{returnp.port}2.接着定义接口packagebalanc...