1前言 高性能的HTTP和反向代理服务器,Nginx用来: 搭建WebServer 作负载均衡 供配置的日志字段丰富,从各类HTTP头部到内部性能数据都有 Nginx的访问日志中,存在499状态码的日志。但常见4xx状态码只有400、401、403、404等,499并未在HTTPRFC文档。这499错误日志,在流量较大场景下,特别是面向Internet的Web站点场景下还是很常见。 2案例 某客户反馈:Nginx服务器连续几天记录较多499错误日志,之后几天趋零,再回升,整体状况不定。 经营的ToC产品,跟手机端App协同。App会定时把消息上传到微信消息网关,后者再把这些消息推送到该客户...

  m6lGkTn3A7VM   2023年11月01日   34   0   0 Java

古时候写代码,权限这块写过一个库,基本就是一个泛型接口,里面有几个方法: 如验证输入的principal和credentials,返回token和authorities和roles,role就是一堆authorities集,也就说就是返回一堆authorities。然后每次请求会拿token找到authorities,然后再判断当前请求的资源(其实就是url)包不包括在authorities内。 这接口实现不复杂,也可很复杂自己实现,因为是接口,里面的方法参数都带了很多上下文,所以基本可以获取到所有有用的信息。当年用这接口几乎就没解决不了的权限问题。 后来用spring,更简单了,就是aop一...

  m6lGkTn3A7VM   2023年11月01日   61   0   0 Java

0前言 一般初学者学习编码和[错误处理]时,先知道[编程语言]有一种处理错误的形式或约定(如Java就抛异常),然后就开始用这些工具。但却忽视这问题本质:处理错误是为了写正确程序。可是 1啥叫“正确”? 由解决的问题决定的。问题不同,解决方案不同。 如一个web接口接受用户请求,参数age,也许业务要求字段是0~150之间整数。如输入字符串或负数就肯定不接受。一般在后端某地做输入合法性检查,不过就抛异常。 但归根到底这问题“正确”解决方法总是要以某种形式提示用户。而提示用户是某种前端工作,就要看界面是app,H5+AJAX还是类似于[jsp]的服务器产生界面。不管啥,你要根据需求去”设计一个修...

  m6lGkTn3A7VM   2023年11月01日   64   0   0 Java

1全新并发编程模式 JDK9后的版本你觉得没必要折腾,我也认可,但是JDK21有必要关注。因为JDK21引入全新的并发编程模式。 一直沽名钓誉的GoLang吹得最厉害的就是协程了。JDK21中就在这方面做了很大的改进,让Java并发编程变得更简单一点,更丝滑一点。 之前写过JDK21Feature。VirtualThreads、ScopedValues、StructuredConcurrency就是针对多线程并发编程的几个功能。。 2发展历史 虚拟线程是轻量级线程,极大地减少了编写、维护和观察高吞吐量并发应用的工作量。 虚拟线程是由JEP425提出的预览功能,并在JDK19中发布,JDK21中...

  m6lGkTn3A7VM   2023年11月01日   32   0   0 Java

1摘要 通过使用记录模式来增强Java编程语言,以解构记录值。记录模式和类型模式可嵌套使用,从而实现强大、声明式和可组合的数据导航和处理形式。 2发展史 由JEP405提出的预览功能,并在JDK19发布,然后由JEP432再次预览,并在JDK20发布。该功能与用于switch的模式匹配(JEP441)共同演进,并且二者有相当大的交互作用。本JEP提议在持续的经验和反馈基础上对该功能完善。 除了一些次要的编辑更改,自第二个预览版以来的主要变化是删除了对增强for语句头部出现记录模式的支持。这个功能可能会在未来的JEP中重提。 3目标 扩展模式匹配以解构记录类的实例,实现更复杂的数据查询 添加嵌...

  m6lGkTn3A7VM   2023年11月01日   53   0   0 Java
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~