-
身份验证 – 用于golang应用程序的Keycloak适配器
所属栏目:[大数据] 日期:2020-12-16 热度:83
我将使用keycloak保护我的golang应用程序,但keycloak本身不支持go语言.有一些go适配器作为 github中的一个开放项目,已经实现了openId connect协议作为提供者服务,但它们没有提供有关如何将库与应用程序集成的示例或文档.由于我是这个领域的新手,我很困惑如何[详细]
-
在golang中处理api版本的idomatic方法是什么?
所属栏目:[大数据] 日期:2020-12-16 热度:124
我正在Golang中创建一个用于移动应用程序的服务器.如果用户不更新应用程序,我需要能够支持多个版本的API.版本控制的主要问题是以正确的格式返回移动应用程序版本的数据. 我已经看到有三种基本方法可以做到这一点. A.一种方法是在“/”上设置一个路由处理程序[详细]
-
golang中的磁盘写性能
所属栏目:[大数据] 日期:2020-12-16 热度:178
在下面的代码中,我使用golang中的bufio将消息写入文件.我的磁盘I / O速度约为1000M / s.奇怪的是,当写入文件的大小小于20G时,写入速度约为每秒800M~900M,略低于I / O速度.但是,当文件大小超过21G时,我发现写入速度大约是每秒200M,远低于I / O速度.我不知道为[详细]
-
Golang模板范围中的最后一项
所属栏目:[大数据] 日期:2020-12-16 热度:159
鉴于模板 {{range $i,$e := .SomeField}} {{if $i}},{{end}} $e.TheString{{end}} 这可以输出 one,two,three 但是,如果我想输出 one,and three 我需要知道哪个是上面范围内的最后一个元素. 我可以设置一个包含数组.SomeField长度的变量,但总是3,而上面的$i值[详细]
-
mmonit golang重启慢和状态不存在
所属栏目:[大数据] 日期:2020-12-16 热度:108
我创建了 monit应用程序,必须在崩溃时重新启动golang站点 $cd /etc/monit/conf.d $vim checkSite 它用nohup启动程序并将其pid保存到文件: check process site with pidfile /root/go/path/to/goSite/run.pid start program = "/bin/bash -c 'cd /root/go/pa[详细]
-
golang如何测试一个http服务器?
所属栏目:[大数据] 日期:2020-12-16 热度:92
我使用gotests和gorilla mux,我可以对我的http handlefunc处理程序进行单元测试,但它们没有响应正确的http请求方法,因为它们应该在gorilla mux下.我怎么能做一个“实时服务器”版本的测试? func main() { router := mux.NewRouter() router.HandleFunc("/",[详细]
-
在golang文本/模板中取消引用指针
所属栏目:[大数据] 日期:2020-12-16 热度:108
在golang template内部,当简单地输出值时,似乎指针被自动解除引用.当.ID是指向int的指针时, {{.ID}}输出5 但是当我尝试在管道中使用它时,{{if eq .ID 5}}我收到错误. 在 eq .ID 5执行“mytemplate”:错误调用eq:无效类型进行比较 如何在模板管道中取消引用[详细]
-
数组 – 如何在golang中为泛型参数编写func
所属栏目:[大数据] 日期:2020-12-16 热度:66
我正在尝试编写一个函数Map,以便它可以处理所有类型的数组. // Interface to specify generic type of array.type Iterable interface {}func main() { list_1 := []int{1,2,3,4} list_2 := []uint8{'a','b','c','d'} Map(list_1) Map(list_2)}// This funct[详细]
-
golang中有更好的依赖注入模式吗?
所属栏目:[大数据] 日期:2020-12-16 热度:175
鉴于此代码: package mainimport ( "fmt")type datstr stringtype Guy interface { SomeDumbGuy() string}func (d *datstr) SomeDumbGuy() string { return "some guy"}func someConsumer(g Guy) { fmt.Println("Hello," + g.SomeDumbGuy())}func main() {[详细]
-
golang:在Windows上运行pdf文件的默认应用程序
所属栏目:[大数据] 日期:2020-12-16 热度:101
我想在文件系统中使用默认应用程序打开PDF文件.我怎样才能做到这一点?从命令行我只需编写pdf文件的文件名,然后打开应用程序(带有请求的文件).当我尝试使用exec.Command()时,我得到一个错误(不足为奇)exec:“foo.pdf”:%PATH%中找不到可执行文件. packag[详细]
-
Golang嵌套类里面的函数
所属栏目:[大数据] 日期:2020-12-16 热度:115
Go支持嵌套struct里面的函数,但没有嵌套函数,除了lambda,是否意味着没有办法在函数内定义嵌套类? func f() { // nested struct Cls inside f type Cls struct { ... } // try bounding foo to Cls but fail func (c *Cls) foo() { ... }} 因此,类内部功能削[详细]
-
访问golang / reflect中未导出的字段?
所属栏目:[大数据] 日期:2020-12-16 热度:185
有没有办法使用Reflect访问go 1.8中未导出的字段? 这似乎不再起作用: https://stackoverflow.com/a/17982725/555493 请注意,reflect.DeepEqual工作得很好(也就是说,它可以访问未导出的字段),但我无法做出该函数的正面或反面.这是一个go playarea,显示它在[详细]
-
如何在golang中处理HTTP超时错误和访问状态代码
所属栏目:[大数据] 日期:2020-12-16 热度:101
我有一些用Go编写的代码(见下文),它应该“扇出”HTTP请求,然后整理/聚合细节. I’m new to golang and so expect me to be a nOOb and my knowledge to be limited 该程序的输出目前是这样的: { "Status":"success","Components":[ {"Id":"foo","Status":20[详细]
-
导出结构仅用于在Golang中进行测试
所属栏目:[大数据] 日期:2020-12-16 热度:166
我有一个许多其他包使用的实用程序包.我还创建了一些实现这些接口的测试结构.我把它们放在interfaces_test.go中 我希望能够在我的* _test.go文件中的其他包中导入这些测试结构. 我在http://golang.org/src/pkg/os/export_test.go中看到类似的东西,但无论我尝[详细]
-
Golang HTTP集成测试
所属栏目:[大数据] 日期:2020-12-16 热度:146
我有一个用Go编写的小服务.我已经用httptest等测试了它,但是,我正在嘲笑数据库等… 我想做什么: 使用空数据库启动我在生产中使用的同一台服务器 使用HTTP对其进行测试 获取这些测试的覆盖范围 空数据库部分不是问题,因为我通过环境变量使所有内容都可以配置[详细]
-
goiling golang runtime.systemstack
所属栏目:[大数据] 日期:2020-12-16 热度:167
我有一个用go编写的网络应用程序.业务逻辑并不重要. 问题是我正在努力利用机器的全部功能 当我分析应用程序时,大部分时间都花在运行时的东西上. 似乎ALOT的时间花在runtime.systemstack下 我不明白它的含义或如何提高性能. 我添加了相关慢执行方法的分析. sv[详细]
-
golang如何实现反射?
所属栏目:[大数据] 日期:2020-12-16 热度:122
使用反射,我们可以获得类型名称,存储大小和给定类型的函数(例如uint64,用户定义的结构等).甚至,我们可以修改给定类型的某些字段. golang如何实现反思?我想通过以下方式: golang中的每个类型(包括用户定义的类型)本身都具有类型名称,字段名称和函数名称的信[详细]
-
date – 获取Go/Golang当月的第一天和最后一天?
所属栏目:[大数据] 日期:2020-12-16 热度:136
我想要获得当月的第一天和最后一天.您可以添加日期和小时但不是月份,我想从下个月减去一天以获得本月的最后一天.像这样的东西: package mainimport ( "fmt" "time")func main() { date := time.Now() nextMonth := date.Add(time.Month) LastDay := nextMon[详细]
-
GOlang:动态变量
所属栏目:[大数据] 日期:2020-12-16 热度:60
我是GO的新手,我想知道是否可以在GO中动态创建变量? 我在下面提供了一个伪代码来说明我的意思.我将新创建的变量存储在切片中: func method() { slice := make([]type) for(i=0;i10;i++) { var variable+i=i; slice := append(slice,variablei) }} 在循环结[详细]
-
golang:使用正则表达式返回字符串之间的最短字符串
所属栏目:[大数据] 日期:2020-12-16 热度:51
我有字符串: “123abc456def456” 我想返回“123”和“456”之间的最短字符串,即“abc”.我试过FindStringSubmatch: package mainimport ( "fmt" "regexp")func main() { re := regexp.MustCompile("123(.*)456") fmt.Printf("%qn",re.FindStringSubmatch[详细]
-
在Golang中将int32转换为字符串
所属栏目:[大数据] 日期:2020-12-16 热度:101
我需要在Golang中将int32转换为字符串.是否可以在Golang中将int32转换为字符串而不先转换为int或int64? Itoa需要一个int. FormatInt需要一个int64. 一行答案是fmt.Sprint(i). 无论如何,有许多转换,甚至在标准库函数内部,如fmt.Sprint(i),所以你有一些选项([详细]
-
Golang:如何从字符串中替换第n个字符
所属栏目:[大数据] 日期:2020-12-16 热度:150
我想从原始字符串中替换第n个字符,我可以使用字符[i]从字符串中访问第n个字符,但是当我为chars [i]赋值时,它会给出错误. package mainimport "fmt"func main() { var chars = "abcdef" fmt.Println(string(chars[3])) chars[3] = "z" // is not working,} 发[详细]
-
Golang中的正则表达“不是常量”错误
所属栏目:[大数据] 日期:2020-12-16 热度:75
我正在尝试在Golang中编写一个正则表达式来验证字符串是否只有字母数字,句点和下划线.但是,我遇到了一个我以前没有见过的错误,并且在Googling上没有成功. 这是正则表达式: pattern = regexp.MustCompile(`^[A-Za-z0-9_.]+`) 这是错误: const initializer[详细]
-
如何在golang中记录类型断言错误?
所属栏目:[大数据] 日期:2020-12-16 热度:158
我有一些数据,我想在[]字符串中映射.我可以用两种方式做到: 一个) // someDatas := someData.([]string) 在这种情况下,执行将在控制台上列出错误后停止. b) // someDatas,ok := someData.([]string) 在这种情况下,不会发生错误,但s将具有零值 我想在不停止[详细]
-
并发 – Golang渠道选择语句
所属栏目:[大数据] 日期:2020-12-16 热度:196
刚试试去吧.我想知道如果你有一个select语句等待几个频道上的通信,并且一条消息在两个或多个频道上同时出现,会发生什么.如果所有消息同时出现,select将如何确定接受哪个频道? 谢谢! 从 the spec开始: If multiple cases can proceed,a uniform pseudo-ran[详细]
