
golang
KlayLee
软件工程学生
展开
-
JWT验证的原理,以及在项目中实现JWT的验证登陆
因为之前实现的网关项目中存在以下的逻辑:租户需要在平台进行登陆租户在登陆之后获取到token之后才能通过网关的验证中间件进入到转发代理逻辑中不选择session的原因在这种登陆场景下,我们可以使用session来处理,session的处理流程如下:租户发起登陆请求,把用户名和密钥发送给转发代理服务器,服务器利用后台数据库中的数据进行验证后台服务器验证成功之后,利用服务器自己设置的租户session前缀+用户名+登陆时间这几个参数生成一个session并把session设置为Set-Cook原创 2020-07-22 13:39:23 · 2686 阅读 · 1 评论 -
实现服务注册与发现(Zookeeper介绍、安装以及使用)
ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.原创 2020-07-17 12:15:18 · 1018 阅读 · 0 评论 -
WebSocket的原理和golang实现WebSocket服务器
最近一直在做网关的项目,收获了不少关于网络协议的相关知识点,我打算把这些知识点都串起来完成一个大的项目,其中WebSocket就是其中的一个知识点WebSocket知识点Websocket 是服务器推送技术的一种,最大的特点是服务器可以主动向客户端推送消息,客户端也可以主动向服务器发送消息。WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocke原创 2020-07-16 19:50:30 · 2513 阅读 · 1 评论 -
HTTPS、HTTP1.1与HTTP2的区别、概念和联系(使用golang实现HTTP2服务器)
HTTPS是HTTP的加密传输版本,HTTP2是加密传输协议,所以HTTPS和HTTP2没有本质的联系HTTPS因为http的利用明文进行传输的,所以存在不安全性,https使用SSL\TLS协议对http报文进行加密传输http的默认端口为80,而https的默认端口为443在讲解https加密传输之前我们还需要先解释公钥和私钥公钥和私钥在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开原创 2020-07-16 14:02:32 · 2140 阅读 · 0 评论 -
谈一谈go中的限流方法以及time/rate限速器
在高并发系统中有三个常见的利器:缓存、限流、降级缓存:提升系统访问的速度和增大处理的容量降级:当服务器的压力剧增时,可以根据业务策略进行降级、以此释放服务资源保证业务正常限流:通过对并发降速以达到拒绝服务、排队或等待、降级等处理限流器,从字面上理解就是用来限制流量,有时候流量突增比如秒杀活动,会将后端服务压垮,甚至直接宕机,使用限流器能限制访问后端的流量,起到一个保护作用,被限制的流量,可以根据具体的业务逻辑去处理,直接返回错误或者返回默认值等等限流方法目前主流的限流方法有两个:漏桶限流:原创 2020-07-15 16:52:50 · 2289 阅读 · 0 评论