LuaLua使用C编写而成的脚本语言。同为脚本语言的Python拥有庞大的类库工具包,定位于独立开发,Lua极度精简化,没有提供太多功能包,必须与C、C++等语言混合使用,目的是为了快速并动态的嵌入式地胶合、扩展普通程序的功能模块,也用于作为普通配置文件替代XML、ini等文件。脚本解释、运行速度很快,解释器内核精简。支持面向过程与函数式编程、多线程,仅提供number和string两种简单类型及
转载
2024-02-27 22:46:59
85阅读
在web编程领域,Openresty与Go均有十分优秀的处理能力,在面对高并发的web编程,两者一般都是首选的技术方案。这两者我也一直使用,而且两者均有协程,现总结下,留个备忘。Openresty及其工作流程基于Openresty 1.18版本将Lua集成到Nginx中,而Nginx,更是高性能HTTP服务器的代表。Nginx是多进程单线程:一个master进程和多个worker进程,处理请求的是
转载
2024-07-01 18:04:43
263阅读
OAuth 2.0授权框架中文版 [1] - 简介1. 简介 - Introduction1.1 角色 - Roles1.2 协议流程 - Protocol Flow1.3 授权许可 - Authorization Grant1.3.1 授权码模式 - Authorization Code1.3.2 隐式授权模式 - Implicit1.3.3 密码凭证模式 - Resource Owner P
LuaLua使用C编写而成的脚本语言。同为脚本语言的Python拥有庞大的类库工具包,定位于独立开发,Lua极度精简化,没有提供太多功能包,必须与C、C++等语言混合使用,目的是为了快速并动态的嵌入式地胶合、扩展普通程序的功能模块,也用于作为普通配置文件替代XML、ini等文件。脚本解释、运行速度很快,解释器内核精简。支持面向过程与函数式编程、多线程,仅提供number和string两种简单类型及
转载
2024-05-24 09:45:50
34阅读
从性能上,依照公开的 benchmark,Golang 和 Java、Scala 大概在一个量级,是 Python 的 30 倍左右。其次 Golang 的编译速度较快,这点相对于 Java、Scala 具有比较明显的优势,再次其语言特性决定了 Golang 的开发效率较高,此外因为缺乏 trycatch 机制,使得使用 Golang 开发时对异常处理思考较多,因此其上线之后维护成本相对较低。但
转载
2024-04-12 15:50:41
482阅读
我们在的项目组呢,有一项工作是,收邮件(很大程度上使用邮件是为了存个底),然后从我们的系统里边查一下相关信息,然后回复个邮件的工作。虽然工作量并不大,但是会把时间切的稀碎。为了拯救我的时间,所以做了一个邮件的值班机器人。让他来顶替我自动回复邮件,考虑到这个东西应该也有不少人会用得到,所以就把这个东西分享出来。先把效果分享出来。服务器上就很简单,dutyrobot就是Golang编译之后的框架。lu
转载
2024-03-20 18:35:58
231阅读
在 GitHub 玩耍时,偶然发现了 gopher-lua ,这是一个纯 Golang 实现的 Lua 虚拟机。我们知道 Golang 是静态语言,而 Lua 是动态语言,Golang 的性能和效率各语言中表现得非常不错,但在动态能力上,肯定是无法与 Lua 相比。那么如果我们能够将二者结合起来,就能综合二者各自的长处了(手动滑稽。在项目 Wiki 中,我们可以知道 gopher-lua 的执行效
转载
2024-08-15 11:45:05
139阅读
基础路由从 beego 1.2 版本开始支持了基本的 RESTful 函数式路由,应用中的大多数路由都会定义在 routers/router.go 文件中。最简单的 beego 路由由 URI 和闭包函数组成。基本 GET 路由beego.Get("/",func(ctx *context.Context){
ctx.Output.Body([]byte("hello
转载
2024-05-17 12:29:40
38阅读
redis是目前流行的高性能key/value缓存,基本上在各种项目都经常出现,后续教程针对golang如何操作redis进行展开。本教程是使用的是go-redis/redis包操作redis。 github: GitHub - go-redis/redis: Type-safe Redis client for Golang1.安装依赖包 go get -u github.c
转载
2023-08-15 17:02:57
278阅读
微服务的网关和应用场景什么是网关?API Gateway,是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,处理非业务功能,提供路由请求、鉴权、监控、缓存、限流等功能统一接入
智能路由AB测试、灰度测试负载均衡、容灾处理日志埋点(类似Nignx日志)流量监控
限流处理服务降级安全防护
鉴权处理监控机器网络隔离主流的网关Zuul:是 Netflix 开源的微服务网关,和 Eureka、Rib
并发和并行是一个相似而本质上又有不同的一个概念。 并发:在操作系统同一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个CPU上运行,但任一个时刻点上只有一个程序在处理机上运行。&nb
Lua学习笔记二在Lua中使用自己的C函数 OK,上次我们掌握了如何在Lua脚本中编写一个函数,并在C文件中接应它。现在让我们来学习另外一种交互方式。本节的目的:在Lua脚本中调用自己写的函数。侧重点为自己编写可以被Lua脚本使用的C函数的规则。 啥都不说了, RTFS -------以下是Lua脚本----------test.lua
Lu
JavaScript的性能问题(摘自《Ajax+Lucence构建搜索引擎》) javascript是一种解释型语言,性能无法达到和C、C++等编译语言的水平,但还是有一些方法来改进。 1、循环 JavaScript中的
转载
2023-11-17 15:58:16
62阅读
熊传亮:Klook的后端技术总监前言大家下午好!这次我给大家带来的分享是 Go 在客路的应用实践。我将从以下几个方面作分享:一、Go In KLOOK二、不同阶段的架构回顾三、面临的新挑战四、 一点探索和思考Go In KLOOK首先给大家介绍一下客路,目前主要业务是在海外,是一个全球目的地旅游体验预订平台,当地遍布全世界 250 个热门国家,提供 8万+ 服务的预定,包括折扣景点门票、一日游、当
**标题:Python、Lua和Go的比较及其在不同领域的应用**
**摘要:**本文将介绍Python、Lua和Go这三种编程语言,并比较它们在不同领域的应用。我们将通过代码示例和流程图来展示它们的特点和优势。最后,我们将通过饼状图来展示它们在不同领域的使用情况。
## 1. 引言
编程语言是计算机的重要组成部分,不同的编程语言适用于不同的场景和任务。Python、Lua和Go是三种在软件
原创
2024-01-20 06:01:51
42阅读
lua是如何执行的 其中分析、执行部分都是c语言实现的。lua与c的关系lua的虚拟机是用c语言实现的,换句话说一段lua指令最终在执行时都是当作c语言来执行的,lua的global表,函数调用栈也都是存在c语言中的一个叫lua_State的结构体中的。 举个例子,来看下lua中的加指令 OP_ADD a b c 是如何实现的: lua在运行时,会在c语言中的一个叫luaV_excute的函数中不
Redis的事务,Go+luaRedis 事务Redis的基本事务(basic transaction)需要用到MULTI命令和EXEC命令,这种事务可以让一个客户端在不被其他客户端打断的情况下执行多个命令。和关系数据库那种可以在执行的过程中进行回滚(rollback)的事务不同,在Redis里面,被MULTI命令和EXEC命令包围的所有命令会一个接一个地执行,直到所有命令都执行完毕为止。当一个事
转载
2023-09-10 21:50:06
92阅读
最近遇到一个有意思的关于分布式锁的问题,期间产生了有很多有意思的问题和讨论,这里记录一下。在大多数场景下很多程序员都喜欢使用redis来做分布式锁,但是公司内最近缓存服务为了推行标准化禁用了lua脚本,使得原有的分布式锁实现都要另谋出路,最后选择了zk来做分布式锁,因为go-zookeeper只支持阻塞锁,做了一些改造使其支持非阻塞和待失效时间的锁,有类似需求的同学也可以参考下https://gi
转载
2023-08-15 18:09:32
66阅读
使用redis实现分布式令牌桶算法:团队接了个根据告警的进行处理的需求,需要限制这个处理的速度,比如说一个小时只能最多处理三个,防止在晚上出现大量不可控变更影响。令牌桶算法原理可以参照,k8s限速队列、令牌桶原理可以参照k8s限速队列。问题描述限速队列在单实例的环境下用go可以很方便实现,大概是使用一个定时任务来轮询。设定一个根据补充间隔设定定时任务要是bucket是满的就直接更新时间并返回,bu
转载
2023-07-06 23:06:02
64阅读
Goroutine是什么?Goroutine是Go语言特有的名词。区别于进程Process,线程Thread,协程Coroutine,因为Go语言的创造者们觉得和他们是有所区别的,所以专门创造了Goroutine。搞清楚Goroutine是什么首先要先清楚协程的概念协程协程是一种用户态的轻量级线程,协程的调度完全由用户控制,协程间切换只需要保存任务的上下文,没有内核的开销。协程是编译器级别的,现在