搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 大学生考证资料网 > 是OpenResty服务12306余票查询哟!

是OpenResty服务12306余票查询哟!

大学生考证资料网 2020-10-17

360,UPYUN,阿里云,新浪,腾讯网,去哪儿网,酷狗音乐等都是 OpenResty 的深度用户。目前,OpenResty 是全球排名第五的 Web 服务器,我们常用的 12306 的余票查询功能、京东的商品详情页,这些高流量的背后,都是 OpenResty 在默默地提供服务。



什么是 OpenResty



OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。


OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web 应用系统。


为你打开服务端的新世界



对服务端工程师来说,如果你的工作中涉及到 Nginx、高性能、高并发、动态控制、性能测试、分析等,那么,不论你使用什么开发语言和平台,OpenResty 都是不可多得的高性能开发利器。


如果你之前没接触过 OpenResty,确信它会为你打开服务端的「新世界大门」。


是OpenResty服务12306余票查询哟!


作为一个兼具开发效率和性能的服务端开发平台,OpenResty 并不像其他开发语言一样从零开始搭建,而是基于成熟的开源组件 —— Nginx 和 LuaJIT。


其核心是基于 Nginx 的一个 C 模块(lua-nginx-module),这个模块将 LuaJIT 嵌入到 Nginx 服务器中,并对外提供一套完整的 Lua API,透明地支持非阻塞 I/O,提供了轻量级线程、定时器等高级抽象。


围绕这个模块,OpenResty 构建了一套完备的测试框架、调试技术和由 Lua 实现的周边功能库。


你可以用 Lua 语言进行字符串和数值运算、查询数据库、发送 HTTP 请求、执行定时任务、调用外部命令等,还可以用 FFI 的方式调用外部 C 函数。


这基本上满足了服务端开发所需要的全部功能。所以,OpenResty 的适用范围早已超出了反向代理和负载均衡。


这就意味着,掌握了 OpenResty,就能同时拥有脚本语言的开发效率和迭代速度,以及Nginx C 模块的高并发和高性能优势。


通过丰富的 lua-resty 库,OpenResty 已逐渐摆脱 Nginx 的影子,形成了自己的生态体系,在 API 网关、软 WAF 等领域被广泛使用。


你应该知道的场景应用



1.动态负载均衡

  • 普通流量走一致性哈希,提升命中率;热点流量走轮训减少单服务器压力。

  • 根据请求特征将流量分配到不同分组并限流(爬虫、或者流量大的IP)。

  • 动态流量(动态增加upstream或者减少upstream或者动态负载均衡)可以使用balancer_by_lua或者微博开源的upsync。


2.防火墙

如:DDOS、IP/URL/UserAgent/Referer黑名单、防盗链等。

  • 非法请求过滤,比如应该有Referer却没有,或者应该带着Cookie却没有Cookie。

  • 请求头过滤,比如有些业务是不需要请求头的,因此可以在往业务Nginx转发时把这些数据过滤掉。


3.防止DDOS限流

  • 可以将请求日志推送到实时计算集群,然后将需要限流的IP推送到核心Nginx进行限流。

  • 按照接口特征和接口吞吐量来实现动态限流,比如后端服务快扛不住了,那我们就需要进行限流,被限流的请求作为降级请求处理;通过lua-resty-limit-traffic可以通过编程实现更灵活的降级逻辑,如根据用户、根据URL等等各种规则,如降级了是让用户请求等待(比如sleep 100ms,这样用户请求就慢下来了,但是服务还是可用)还是返回降级内容。


4.服务端请求聚合

Nginx会在服务端把Nginx并发的请求并把结果聚合然后一次性吐出。


5.多级缓存模式

对于读服务会使用大量的缓存来提升性能,我们在设计时主要有如下缓存应用:首先读取Nginx本地缓存 Shared Dict或者Nginx Proxy Cache,如果有直接返回内容给用户;如果本地缓存不命中,则会读取分布式缓存如Redis,如果有直接返回;如果还是不命中则回源到Tomcat应用读取DB或调用服务获取数据。另外我们会按照维度进行数据的缓存。


6.降级

如果请求量太大扛不住了,那我们需要主动降级;如果后端挂了或者被限流了或者后端超时了,那我们需要被动降级。


7.AB测试/灰度发布

比如要上一个新的接口,可以通过在业务Nginx通过Lua写复杂的业务规则实现不同的人看到不同的版本。


8.服务质量监控

我们可以记录请求响应时间、缓存响应时间、反向代理服务响应时间来详细了解到底哪块服务慢了;另外记录非200状态码错误来了解服务的可用率。


那对于服务端工程师而言,学习OpenResty是很棒的选择。


如果你想要学习优质的内容,肯定不能错过下面这份资料!

今天,小证君为你精心整理了
一份OpenResty学习资料,这份资料包含:

1.软件特性

2.教学视频

3.实战项目

如果你想要学习OpenResty绝对是你不能错过的选择!


资料总览


是OpenResty服务12306余票查询哟!

是OpenResty服务12306余票查询哟!

是OpenResty服务12306余票查询哟!

是OpenResty服务12306余票查询哟!


资料领取方式


后台回复  OpenResty


1、将该文章配上一句走心推荐语,集赞10个满一小时后截图,即可。


2、请分享到3个50人学习微信群,满3分钟后截图,凭截图即可领取本资料。


资料发放时间



2、工作日17:00之后按规则参与活动的朋友,下一个工作日17:00~20:00发放。


直接获取资料


1、扫描下方二维码或点击“阅读原文”,便可立即领取资料!

是OpenResty服务12306余票查询哟!


2、扫描下方二维码加入SVIP资料会员群,免转发获取所有资料!

是OpenResty服务12306余票查询哟!


(点击图片即可获取全文)

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《是OpenResty服务12306余票查询哟!》的版权归原作者「大学生考证资料网」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注大学生考证资料网微信公众号

大学生考证资料网微信公众号:QQ36102900

大学生考证资料网

手机扫描上方二维码即可关注大学生考证资料网微信公众号

大学生考证资料网最新文章

精品公众号随机推荐