首页
学习
活动
专区
工具
TVP
发布

后端技术探索

专栏作者
285
文章
480136
阅读量
63
订阅数
漫画学算法:什么是LRU算法?
用户信息当然是存在数据库里。但是由于我们对用户系统的性能要求比较高,显然不能每一次请求都去查询数据库。
后端技术探索
2019-07-19
6280
一定是最适合你的后端面试指南
不论是校招还是社招都避免不了各种面试、笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的,我这个“有章可循”说的意思只是说应对技术面试是可以提前准备。 我其实特别不喜欢那种临近考试就提前背啊记啊各种题的行为,非常反对!我觉得这种方法特别极端,而且在稍有一点经验的面试官面前是根本没有用的。建议大家还是一步一个脚印踏踏实实地走。
后端技术探索
2019-07-19
1.4K1
高并发之服务降级与熔断
由于爆炸性的流量冲击,对一些服务进行有策略的放弃,以此缓解系统压力,保证目前主要业务的正常运行。它主要是针对非正常情况下的应急服务措施:当此时一些业务服务无法执行时,给出一个统一的返回结果。
后端技术探索
2019-07-05
4.2K0
为什么分布式一定要有Redis?
考虑到绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。
后端技术探索
2018-10-18
4350
深入 Nginx:我们是如何为性能和规模做设计的
NGINX 在网络应用中表现超群,在于其独特的设计。许多网络或应用服务器大都是基于线程或者进程的简单框架,NGINX突出的地方就在于其成熟的事件驱动框架,它能应对现代硬件上成千上万的并发连接。
后端技术探索
2018-09-18
6610
面向切面缓存设计
在互联网行业,缓存作为一种家喻户晓的技术,在各个系统中起着提效降压的作用。但是缓存的引入,也使得处理逻辑变得复杂,尤其在当下微服务大行其道,一个大型系统动辄十几个模块,多人共同开发、维护的情况下,不同开发人员的缓存设计都不尽相同,并且多与业务代码紧密耦合。在这个背景下,本文着重思考一种统一的方案,借鉴面向切面的编程思想(AOP),实现面向切面的缓存设计,将系统中的缓存设计与主业务逻辑剥离开来。
后端技术探索
2018-08-10
9110
京东老司机:巧用Nginx+Lua解决数据托底大痛点
随着京东商城的发展,内部也出现了一些比较有意思的小系统小模块来解决一些业务系统的痛点,而这些小系统小模块虽说不复杂但是解决了当时的痛点。数据托底就是其中一个痛点,因为依赖系统或者其他方面的不稳定性导致用户访问页面是404或者503、或者出现天窗(页面局部内容没出来),这在一个大流量系统中是不允许的。因此就需要更健壮的系统设计来解决此问题,解决此问题的方法大家又都是类似的,因此作者就抽象了一个小模块来解决更多人的兜底问题。
后端技术探索
2018-08-10
1.1K0
再聊缓存技术
对于现在的各种系统来说,缓存的应用无处不在。如果能合理的利用缓存,整个系统的性能将会得到大大的提高,Web开发尤其如此。一般高并发大访问量的应用,主要压力都在服务器端,所以服务器端的性能至关重要,缓存的使用,很多时候是有决定性影响的。
后端技术探索
2018-08-10
6260
nginx如何实现高性能和可扩展性
主进程:负责执行特权操作,如阅读配置文件、绑定套接字、创建/通知协调(Signalling)子进程。 工作进程:负责接收和处理连接请求,读取和写入磁盘,并与上游服务器通信。当NGINX处于活跃状态时,只有工作进程是忙碌的。 缓存加载器进程:负责将磁盘高速缓存加载到内存中。这个进程在启动时运行后随即退出。 缓存管理器进程:负责整理磁盘缓存的数据保证其不越界。这个进程会间歇性运行。 NGINX能够实现高性能和可扩展性的关键取决于两个基本的设计选型: 尽可能限制工作进程的数量,从而减少上下文切换带来的开销。默认和推荐配置是让每个CPU内核对应一个工作进程,从而高效利用硬件资源。 工作进程采用单线程,并以非阻塞的方式处理多个并发连接。 NGINX的每个工作进程通过状态机处理多个连接请求,这个状态机被实现为非阻塞的工作方式: 每个工作进程需要处理若干套接字,包括监听套接字或者连接套接字。 当监听套接字收到新的请求时,会打开一个新的连接套接字来处理与客户端的通信。 当一个事件到达连接套接字时,工作进程迅速完成响应,并转而处理其他任何套接字新收到的事件。 Garrett说,NGINX选择这样的设计,使它从根本上区别于其他Web服务器。通常的Web服务器会选用将每个连接分配给独立线程的模式,这使得多个连接的处理非常容易,因为每个连接可以被认为是包含多个步骤的一个线性序列,但这样会产生上下文切换的开销。事实上,工作线程大部分的时间处于阻塞的状态,在等待客户端或其它上游服务器。当试图执行I/O等操作的并发连接数/线程数的规模超过一定阈值,或是内存消耗殆尽的时候,上下文切换的成本就显现出来了。 从另一方面讲,NGINX的设计是不让工作进程阻止网络流量,除非没有任何工作要做。此外,每一个新的连接只消耗很少的资源,仅包括一个文件描述符和少量的工作进程内存。 总的来说,NGINX的这种工作模式在系统调优后,它的每个工作进程都能够处理成百上千的HTTP并发连接。 深入NGINX:我们如何设计它的性能和扩展性
后端技术探索
2018-08-10
7870
nginx 缓存策略实现方案
由于本人工作原因,涉及到网络直播领域,其中视频的回放下载,涉及到了一些视频下载方面的技术。针对于一个完整视频的下载,目前市面上的主流做法是,先将整个视频流切片,存储到文件服务器中,在用户需要观看回放视频时。通过一个视频回源服务器,去文件服务器中逐个请求切片,返回给用户播放。
后端技术探索
2018-08-09
2.7K0
一种高并发环境下交易日志连续输出的机制
原文地址:http://www.xzbu.com/1/view-6507464.htm
后端技术探索
2018-08-09
8370
nginx+memcached构建页面缓存应用
nginx的memcached_module模块可以直接从memcached服务器中读取内容后输出,后续的请求不再经过应用程序处理,如php-fpm、django,大大的提升动态页面的速度。nginx只负责从memcached服务器中读取数据,要往memcached写入数据还得需要后台的应用程序来完成,主动的将要缓存的页面缓存到memcached中,可以通过404重定向到后端去处理的。 ngx_http_memcached_module可以操作任何兼用memcached协议的软件。如ttserver、membase等。
后端技术探索
2018-08-09
6860
纯干货!-- Memcache详解
网址:http://www.cnblogs.com/xrq730/p/4948707.html
后端技术探索
2018-08-09
1.7K0
什么是堆和栈,它们在哪儿?
编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是我理解什么是栈,但是它们到底是什么,在哪儿呢(站在实际的计算机物理内存的角度上看)?
后端技术探索
2018-08-09
6310
纯干货!-- Memcache详解
网址:http://www.cnblogs.com/xrq730/p/4948707.html
后端技术探索
2018-08-09
7490
nginx+memcached构建页面缓存应用
nginx的memcached_module模块可以直接从memcached服务器中读取内容后输出,后续的请求不再经过应用程序处理,如php-fpm、django,大大的提升动态页面的速度。nginx只负责从memcached服务器中读取数据,要往memcached写入数据还得需要后台的应用程序来完成,主动的将要缓存的页面缓存到memcached中,可以通过404重定向到后端去处理的。 ngx_http_memcached_module可以操作任何兼用memcached协议的软件。如ttserver、membase等。
后端技术探索
2018-08-09
1K0
使用Nginx的proxy_cache缓存功能取代Squid|--|下一篇区分桃花和樱花
Nginx从0.7.48版本开始,支持了类似Squid的缓存功能。这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302这样的非200状态码。虽然目前官方的Nginx Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面,但是,通过一个第三方的Nginx模块,可以清除指定URL的缓存。   Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存。两者的功能基本上一样。   最新的Nginx 0.8.32版本,proxy_cache和fastcgi_cache已经比较完善,加上第三方的ngx_cache_purge模块(用于清除指定URL的缓存),已经可以完全取代Squid。我们已经在生产环境使用了 Nginx 的 proxy_cache 缓存功能超过两个月,十分稳定,速度不逊于 Squid。   在功能上,Nginx已经具备Squid所拥有的Web缓存加速功能、清除指定URL缓存的功能。而在性能上,Nginx对多核CPU的利用,胜过Squid不少。另外,在反向代理、负载均衡、健康检查、后端服务器故障转移、Rewrite重写、易用性上,Nginx也比Squid强大得多。这使得一台Nginx可以同时作为“负载均衡服务器”与“Web缓存服务器”来使用。
后端技术探索
2018-08-09
8360
纯干货!-- Memcache详解
网址:http://www.cnblogs.com/xrq730/p/4948707.html
后端技术探索
2018-08-09
3860
Web 开发人员需知的 Web 缓存知识
今天踩着前辈们的肩膀,再次把这篇文章翻译整理下。一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~~
后端技术探索
2018-08-09
5260
一步步构建大型网站
今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告诉我们事物是在发展中不断前进的,网站架构也是随着业务的扩大、用户的需求不断完善的,下面是一个网站架构逐步发展的基本过程,读完后,请思考,你现在在哪个阶段。
后端技术探索
2018-08-09
6281
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战,赢鹅厂证书、公仔好礼!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档