欢迎来到第二十四节。什么是select?select模式是用来从多输入/输出通道中进行选择的一种操作。select模式下会一直阻塞直到至少一个可读/写操作就绪,如果多个读写操作就绪,那么久随机从中选择一个。语法有点类似switch除了每个case选择都是一个通道操作。为了更好理解上代码:package main
import (
"fmt"
"time"
)
func
转载
2024-04-02 10:19:15
9阅读
GolangReflect小编是一个Java程序员,近来自学了一下golang这门语言。(秉持一个理念,语言无国界,万事皆可盘) 本文介绍主要介绍golang的映射关系部分。该部分为基础go的映射关系入门讲解。我看很多资料或教程上都将这一部分省略掉了,今天就专门在官网上学习了一下。小编也是刚入门,有所不足的地方还望大佬多多指教。一 简介计算中的反射是指程序检查自身结构的能力,特别是通过类型;它是元
转载
2024-07-15 06:17:21
57阅读
前言Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。如果花时间学习官方 doc、wiki、讨论邮件列表、 Rob Pike 的大量文章以及 Go 的源码,会发现这篇文章中的坑是很常见的,跳过这些坑,能减少大量调试代码的时间。高级篇:52-5852.使用指针作为方法的 rece
转载
2024-04-13 10:48:27
120阅读
传统方式在刚开始学go的时候,没用过Context包,那么退出携程的方式一般有这么几种使用携 chan 发送消息通知,这种一般只适合单个goroutinefunc exit01() {
done := make(chan bool)
go func() {
for {
select {
case <-done:
方法Go 语言中同时有函数和方法。方法就是一个包含了接受者(receiver)的函数,receiver可以是内置类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集。如下面的这个例子,定义了一个新类型Integer,它和int一样,只是为它内置的int类型增加了个新方法Less()type Integer int
func (a Integer) Less(b Int
转载
2024-02-27 09:15:20
81阅读
前言golang读取文件的方式主要有4种:使用File自带的Read方法使用bufio库的Read方法使用io/ioutil库的ReadAll()使用io/ioutil库的ReadFile()关于前3种方式的速度比较,我最早是在 GoLang几种读文件方式的比较 看过,但在该blog的评论区有人(study_c)提出了质疑,并提供了测试代码。根据该代码的测试,结果应该是bufio > iou
文章目录1. Resty简介2. GET方法3. POST方法4. PUT方法5. 高级应用5.1 代理5.2 重试6. 中间件1. Resty简介微服务开发中服务间调用的主流方式有两种HTTP
原创
2022-05-30 20:10:59
706阅读
简单的 HTTP 和 REST 客户端,受到 Ruby rest-client 的启发。2、发送POST请求。
原创
2024-05-27 14:32:20
316阅读
TIME_WAIT和CLOSE_WAIT过多netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'我们用netstat可以查看到目前的tcp连接中,各个状态的数量,最常见的问题是,TIME_WAIT和CLOSE_WAIT状态的数量过多了,严重占用端口资源。众所周知,TCP连接是三次握手,四次挥手的状态。当客户端或服务
转载
2024-05-11 23:53:49
225阅读
github: https://github.com/go-resty/resty go-resty 特性# go-resty 有很多特性: 发起 G
原创
2023-07-05 13:29:05
1223阅读
resty-redis-cluster下载地址
https://github.com/steve0511/resty-redis-cluster
转载
2023-07-11 20:18:17
35阅读
golang的sync的包有一个功能WaitGroup 作用:阻塞主线程的执行,直到所有的goroutine执行完成,说白了就是必须同步等待所有异步操作完成!!! 三个方法:Add:添加或者减少等待goroutine的数量Done:相当于Add(-1)Wait:执行阻塞,直到所有的WaitGroup数量变成0 example:package main
import
转载
2023-07-02 19:53:29
98阅读
[code="lua"]
local t = {}
local function produce_thread()
for i=1,5 do
t[i] = i
ngx.say("produce:",i)
ngx.sleep(0.01)
end
end
local function consume_thread()
for i=1,5 ...
原创
2023-04-11 00:28:01
30阅读
[code="lua"]
local m, err = ngx.re.match("hello, 1234", "[0-9]+")
if m then
原创
2023-04-11 00:21:19
71阅读
fragment 懒加载在我们的应用中使用 tablayout + ViewPager + fragment 来呈现多标签页面,那么就会出现一个问题, viewpager 有预加载的功能,一般会加载 4 个所有的fragment ,也就是说,如果在 fragment 初始化的时候请求网络,那么就会同时有 4 个页面都会请求,但是用户只想查看 1 个页面,这就会造成流量的浪费,当然啦,现
转自:http://www.lxlib.cn/topics/2/awesome-resty-zh什么是OpenResty#OpenResty是一个完整的Web平台,它集成了标准的Nginx核心,LuaJIT,许多精心编写的Lua库,大量高质量的第三方Nginx模块,以及大多数外部依赖项。它旨在帮助开发人员轻松构建可伸缩的Web应用程序,Web服务和动态Web网关。通过利用各种...
转载
2021-07-07 16:54:55
927阅读
什么是OpenResty#OpenResty是一个完整的Web平台,它集成了标准的Nginx核心,LuaJIT,许多精心编写的Lua库,大量高质量的第三方Nginx模块,以及大多数外部依赖项。它旨在帮助开发人员轻松构建可伸缩的Web应用程序,Web服务和动态Web网关。通过利用各种...
转载
2022-02-18 13:42:25
245阅读
对于开发来说需要有好的生态开发库来辅助我们快速开发,而Lua中也有大多数我们需要的第三方开发库如Redis、Memcached、Mysql、Http客户端、JSON、模板引擎等。一些常见的Lua库可以在github上搜索,https://github.com/search?utf8=%E2%9C%93&q=lua+resty。 Redis客户端lua-resty-redis是为基
转载
2023-08-11 10:26:49
337阅读
set_keepalivesyntax: ok, err = red:set_keepalive(max_idle_timeout, pool_size)将当前redis链接放入ngx_lua cosocket链接池,可以设置连接的最大空闲时间和每个nginx工作进程的池的最大数如果成功返回1,如果错误返回nil,并返回错误描述注:这个方法用户替代close方法,调用该方法后,redis链接变为关
转载
2023-06-29 11:44:55
163阅读
Go 通过接口来实现多态。我们已经讨论过,在 Go 语言中,我们是隐式地实现接口。一个类型如果定义了接口所声明的全部方法,那它就实现了该接口。现在我们来看看,利用接口,Go 是如何实现多态的。使用接口实现多态一个类型如果定义了接口的所有方法,那它就隐式地实现了该接口。所有实现了接口的类型,都可以把它的值保存在一个接口类型的变量中。在 Go 中,我们使用接口的这种特性来实现多态。通过一个程序我们来理
转载
2024-03-07 10:21:07
42阅读