草庐IT

Cassandra-cli

全部标签

Cassandra Decimal 的 Golang 类型

很抱歉问了这个问题,但是累了就写在这里。我无法将Golang的任何变量类型映射到Cassandra的多精度Decimal类型我使用了接口(interface){},只要我不在变量中赋值,它就可以工作。我这样做的那一刻,它有问题 最佳答案 可以使用无限精度小数包,直接导入这个gopkg,导入“gopkg.in/inf.v0”假设您有一个特定模型,该模型反射(reflect)或绑定(bind)到具有十进制数据类型的Scylla/Cas​​sandra表,typeTradeModelstruct{Balance*inf.Dec}要将您的字

algorithm - 如何将 CLI 客户端实现到 golang 守护进程?

我有一个带有httpapi的linux守护进程,我已经在golang上编写了它。一开始他初始化变量,当我问api时,他总是回答。初始化是硬操作:读取很多配置,添加很多对象等。我的问题是如果主进程死了我就不能使用httpapi;)。我的代码并不完美,有时他会堆栈或死亡,或者用户禁用linux服务。但我仍然需要一些低级功能才能工作。如果我尝试在cli中实现webapi的所有功能:他的启动对于系统来说会非常缓慢和困难。但是如果实现在CLI和WebAPI之间分开,我会遇到更多问题:不一致。例如:我可以在CLI中同时在WebAPIcreate&&中启动-全部删除。我必须实现锁定功能来防止这种情况

go - 为具有多个主机 ip 的 cassandra 迁移库实现

我正在尝试使用golang-migrate库进行cassandra迁移。在Docs,他们提到像这样使用cassandraurlcassandra://host:port/keyspace?param1=value¶m2=value2我们将为cassandra提供不止一台主机。我是否需要为每个主机循环并分别运行迁移?还是有其他办法? 最佳答案 ALTER应该在整个集群中实现/复制。Migrate使用最高级别的一致性(ALL/https://docs.datastax.com/en/cql/3.3/cql/cql_referen

go - 不断重新连接到 Cassandra

我在网上了解到,使用Cassandra时的最佳做法是在您的服务生命周期内拥有1个Cluster和1个Session。我的问题是:如果我们的Cassandra服务器出现故障,我如何确保我的集群和/或session将继续尝试重新连接,直到我们的Cassandra服务器重新联机?应该只有集群尝试重新连接,还是只有session,或者两者都尝试重新连接?我们正在使用Go和github.com/gocql/gocql为我们的服务。我在gocql文档中看到了以下代码片段,但看起来它只有有限的重试次数:cluster.ReconnectionPolicy=&gocql.ConstantReconne

go - 如何在 AWS SDK 中实现 AWS CLI Sync 命令的性能

CLI中的awss3sync命令可以非常快速地下载大量文件,而我无法使用AWSGoSDK实现相同的性能。我的存储桶中有数百万个文件,所以这对我来说至关重要。我还需要使用listpages命令,以便我可以添加syncCLI命令不支持的前缀。我曾尝试使用多个goroutine(10到1000个)向服务器发出请求,但与CLI相比,时间要慢得多。每个文件大约需要100毫秒来运行GoGetObject函数,这对于我拥有的文件数量来说是NotAcceptable。我知道AWSCLI在后端也使用PythonSDK,那么它为什么有如此好的性能(我在boto和Go中试过我的脚本)。我正在使用ListOb

go - 如何用GO语言创建持久的cassandra连接?

我正在尝试学习GO语言。在我的小项目中,建立了CassandraDB连接,但创建session需要更多时间。我想创建持久连接,以便从下一次点击开始,连接时间可以忽略不计。有什么方法可以建立持久连接吗?Cassandra连接代码如下:cluster:=gocql.NewCluster("cluseter_ip")pass:=gocql.PasswordAuthenticator{"username","password"}cluster.Keyspace="keyspace_name"cluster.Authenticator=passcluster.Consistency=gocql.

支持连接池的 Golang cassandra 客户端

我们正在使用gocql(https://github.com/gocql/gocql)驱动程序从我们的golang服务器连接到Cassandra。对于每个http请求,我们都会创建一个新session并将行插入到cassandra中。我们觉得为每个请求创建一个session非常耗费资源。典型代码funcNewSession()(*gocql.Session,error){config:=NewClusterConfig()ifconfig==nil{returnnil,&CassandraError{"Oops!Clusterinitializationfailed."}}return

go - 如何在 Go CLI 程序中输入不带参数的可选标志

我已经阅读了以下两个用于创建标志的库的文档。:https://golang.org/pkg/flag/https://github.com/codegangsta/cli而且还没有找到一种方法来做可选的标志。如何做到这一点?根据https://gobyexample.com/command-line-flags中的代码:packagemainimport"flag"import"fmt"funcmain(){boolPtr:=flag.Bool("fork",false,"abool")fmt.Println("fork:",*boolPtr)}并执行:$./command-line-

go - 如何在 cli 应用程序 ( golang ) 中执行自动完成命令?

我想在按下“TAB”键“\t”时自动完成我的命令,并在按下“ENTER”键“\r?\n”时执行命令。这段代码例如:packagemainimport("bufio""fmt")funcmain(){reader:=bufio.NewReader(os.Stdin)command,err:=reader.ReadString('\n')iferr!=nil{fmt.Printf("%s\n",err)}else{fmt.Printf("%s\n",command)}} 最佳答案 如果你想要类似bash的功能,那么这比使用bufio阅读

go - 使用 'go run' 将 CLI 参数传递给可执行文件

我有一个程序readfile.go并且我想给命令行参数os.Args[1]也作为readfile.go.然而,'gorun'认为它是对自身的附加参数,而不是对输出可执行文件的参数。是否有一个标志可以告诉'gorun'这是可执行文件的参数?mvaidya@mvaidya-VirtualBox:~/junkeork$gorunreadfile.goreadfile.gopackagemain:case-insensitivefilenamecollision:"readfile.go"and"readfile.go"mvaidya@mvaidya-VirtualBox:~/junkeork