首页 文章 精选 留言 我的

精选列表

搜索[图形后端],共10000篇文章
优秀的个人博客,低调大师

后端稳定性|容错四大金刚:超时(五)MQ、异步、线程池阻塞全套治理(超时系列收官)

同步 HTTP 接口有网关、RPC 客户端双层超时兜底,卡住请求会快速释放 Tomcat 线程;但 MQ 消费、异步任务、定时任务属于常驻后台线程模型,线程不依附单次 HTTP 请求,一旦缺少超时限制,慢逻辑会永久占用工作线程,线程池打满后业务功能隐性瘫痪,排查难度远高于同步故障。

优秀的个人博客,低调大师

后端稳定性|容错四大金刚:超时(四)OpenFeign & gRPC 全链路超时、Deadline 统一治理实战

微服务架构下,OpenFeign、gRPC 是跨服务远程调用最核心的两类 RPC 组件,几乎所有业务请求都会经过远程调用环节。如果 RPC 调用缺少合理超时控制,接口出现网络抖动、下游慢 SQL、实例宕机时,请求会无限阻塞占用 Tomcat/Netty 工作线程,线程池快速打满,整条业务链路雪崩,形成连锁故障。超时本质是分布式系统的止损、快速失败保护机制,给单次远程调用设置最大等待上限,卡住的请求及时抛出异常释放线程,避免单点故障扩散至全链路。

优秀的个人博客,低调大师

FydeOS v16.1 更新发布,加入图形化系统备份恢复工具和全新真文韵输入法 2.0

新界面 ​FydeOS v16 将给你带去更新过的桌面环境交互体验,让你耳目一新:在桌面模式下,点击左下角的 ⭕️ 即可打开全新设计的应用程序抽屉;系统级的暗色模式正式启用,你可以在更换壁纸的界面选择浅色、暗色或是根据当下的时间自动调整;系统通知的样式也经过调整和重新设计,提供更统一的视觉感受。 虚拟桌面管理 FydeOS v16 提供更完善的虚拟桌面控制和管理能力。现在你可以保存当前桌面的所有应用程序以及浏览器打开的标签页,方便之后一键回到之前保存的工作状态。另外,你也可以一键关闭当前桌面的所有程序和浏览器标签页。 现代的「终端」程序 此次更新为你提供了一个独立的且可配置的「终端」系统程序,不管是主系统的 crosh 命令行还是 Linux 子系统的 Debian 环境均可使用它。有了这个更为现代化的终端程序,你在 FydeOS 上的开发(瞎折腾)体验必将会大幅提升。 更完善的 SWA 系统出厂携带的网页程序(SWAs)迎来更深度的优化和性能提升,还有更多的更新和惊喜等待你去发现。比如说此次在「文件」程序中,首次加入了对「回收站」的支持。 FydeOS v16.1 是我们对 FydeOS v16 的一个维护版本。在此次的发布里,值得一提的修改有: 在 FydeOS 设置中增加了「备份」的功能:你可以在系统 OOBE 界面以及「添加新用户」界面恢复备份文件。请注意,该功能仍在 beta 阶段,存在若干已知的局限以及可能出现的问题,详情请查阅此功能的 说明文档 。 添加了全新制作的「真文韵输入法」;以下优化和新功能将给你带去耳目一新的输入体验: 极大提升了输入法引擎加载的时间 借助于 WebAssembly 技术包裹 RIME 引擎,使真文韵输入法本身与系统解耦,可以实现独立升级 支持多种流行输入方案一键下载切换 按下左 Shift 键切换中/英输入状态时,提供系统级的提示 优化了输入法选词 UI 的设计 优化了平板模式下屏幕键盘的输入体验 添加了对 Borealis 虚拟机下 Steam 客户端的支持,详情请查阅此功能的 说明文档 。 修复了之前版本里对某些 USB wifi 网卡不适配的问题。 修复了系统启动后提示已接入并不存在的 USB 设备的问题。 修复了在「访客模式」下浏览器窗口默认尺寸的问题。 修复了系统内置「屏幕录制」功能在录制视频时帧率极低的问题。 修复了安卓子系统可能会出现极不稳定状况的问题。 其他稳定性和性能的提升。 希望你喜欢本次更新的新功能,有什么想对我们说的,欢迎随时到 FydeOS 社区 或 Telegram 讨论组 来告诉我们。

优秀的个人博客,低调大师

【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--请求处理结果适配篇(7/8)

文章目录 前情概要 前面一大坨一大坨的代码把route、controller、action、attribute都搞完事儿了,最后剩下一部分功能就是串起来的调用。 那接下就说个说第二个中间件,也是最后一个中间件RequestHandler RequestHandler 中间件的注册 app.use一下就完事啦。在RouteHandler把路由处理好之后,接着就是RequestHandler真正的来调用我们的处理函数啦,也就是我们的action。 import { RequestHandler, RouteHandler } from 'gd-express-basic' //第二个中间件,拦截所有请求对路由做自动映射 RouteHandler(_app, controllers); //第三个中间件,处理请求 _app.use(RequestHandler); RequestHandler 请求处理中间件代码 从当前请求拿到对应的action描述对象,如果没有就继续往后面的中间件走,比如走到404。 new一个新的controller对象,并把req,res对象传入。 完成参数的自动解析 调用action,得到返回结果 判断返回结果是否view类型,如果是view类型则调用render来渲染页面,如果不是则返回该对象 判断需要返回的对象是否是jsoncallback调用方式,是的话就适配一下 7.完事儿 /** * 请求处理中间件 * * @export * @param {core.Request} req * @param {core.Response} res * @param {(core.NextFunction | undefined)} next */ export function RequestHandler(req: core.Request, res: core.Response, next: core.NextFunction | undefined) { //1. 从当前请求拿到对应的action描述对象,如果没有就继续往后面的中间件走,比如走到404。 var desc: ActionDescriptor = res.locals.actionDescriptor if (!desc) { return next && next(); } var cname = desc.ControllerName; new Promise((reslove, reject) => { var cType = desc.ControllerType;//*controller class对象 //2. new一个新的controller对象,并把req,res对象传入。 var c = new cType(req, res);//new 一个controller 对象出来 //3. 完成参数的自动解析 var agrs = bindActionParameter(desc.ControllerType, desc.ControllerTypeName, desc.ActionType, desc.ActionName, req) //4. 调用action,得到返回结果 var actionResult = desc.ActionType.apply(c, agrs) return reslove(actionResult) }).then(actionResult => { if (actionResult instanceof ViewResult) { //5. 判断返回结果是否view类型,如果是view类型则调用render来渲染页面,如果不是则返回该对象 Promise.resolve(actionResult.data).then(ViewActionResultData => { var findViewNamePath = actionResult.name[0] === '/' ? actionResult.name.substr(1) : (cname + '/' + actionResult.name) res.render(findViewNamePath, ViewActionResultData, (err, html) => { if (err) { next && next(err); } else { res.send(html); res.end(); } }); }).catch(function (viewDataError) { next && next(viewDataError); }); } else if (typeof actionResult !== 'undefined') { //process object send response json //6. 判断需要返回的对象是否是jsoncallback调用方式,是的话就适配一下 let resultData = req.query['callback'] ? req.query['callback'] + '(' + JSON.stringify(actionResult) + ')' : actionResult; res.send(resultData); res.end() } else { //process not response or origin response.render or response.send. process.nextTick((_res: any) => { if (!_res.finished) { _res.end(); } }, res) } }).catch(processRequestError => { next && next(processRequestError); }) } 经过RouteHandler、RequestHandler两个方法的串联调用,就把我们整个零散的功能就完整统一的进行了一次调用。从controller的发现、注册,action的发现、注册,action参数配置,route解析、匹配,action调用,处理结果适配输出。 在编码调试过程中,发现目前dotnet core mvc的中间件的某些思想和实现方式和express的中间件基本一致。果然,思想都是相同的,哈哈哈。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册