摘要: 1. 前言 我们真实的服务器不应该直接暴露到公网上去,否则更加容易泄露服务器的信息,也更加容易受到攻击。一个比较“平民化”的方案是使用Nginx反向代理它。今天就来聊一聊使用Nginx反向代理的一些能力,Nginx代理能帮助我们实现很多非常有效的API控制功能。这也解释了我为什么一直推荐使用Nginx来代理... 阅读原文
2020-07-23 16:31:03 阅读(2398) 评论(0)
摘要: 线程池 “线程池”,顾名思义就是一个线程缓存,线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,因此Java中提供线程池对线程进行统一分配、调优和监控 线程池介绍 在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实... 阅读原文
2020-07-23 14:41:10 阅读(2392) 评论(0)
摘要: 假设,要你在控制台输出1到100,这个时候怎么输出,emmmmm我可以写100个输出语句。干得漂亮! for循环: for循环的结构:      for循环练习: 01:打印1到100的累加和: public static void main(String[] args) { /* 打印... 阅读原文
2020-07-23 14:26:07 阅读(2453) 评论(0)
摘要: Java NIO是一种基于通道和缓冲区的I/O方式,已经被广泛的应用,成为解决高并发与大量连接和I/O处理问题的有效方式。 Java NIO相关组件 Java NIO主要有三个核心部分组成,分别是:Channel(通道),Buffer(缓冲区), Selector(选择器) Channel Chann... 阅读原文
2020-07-23 13:48:01 阅读(2519) 评论(0)
摘要: 存储结构 threadLocal存储于Thread类上的ThreadLocalMap类型的threadLocals中。 从ThreadLocalMap的名字上可以看出其结构类似于HashMap,它也是使用key-value结构的Entry数组table来存储ThreadLocal和值。 但区别在于Entry... 阅读原文
2020-07-23 11:59:07 阅读(2422) 评论(0)
摘要: 上帝之火 本系列讲述的是开源实时监控告警解决方案Prometheus,这个单词很牛逼。每次我都能联想到带来上帝之火的希腊之神,普罗米修斯。而这个开源的logo也是火,个人挺喜欢这个logo的设计。 本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台。 本系列受众对... 阅读原文
2020-07-23 11:59:03 阅读(2450) 评论(0)
摘要: 使用Spring Aop注解的时候,如@Transactional, @Cacheable等注解一般需要在类方法第一个入口的地方加,不然不会生效。 如下面几种场景 1、Controller直接调用Service B方法:Controller > Service A 在Service A 上加@Tran... 阅读原文
2020-07-23 10:54:05 阅读(2287) 评论(0)
摘要: 在分布式系统中,应对高并发访问时,缓存、限流、降级是保护系统正常运行的常用方法。当请求量突发暴涨时,如果不加以限制访问,则可能导致整个系统崩溃,服务不可用。同时有一些业务场景,比如短信验证码,或者其它第三方API调用,也需要提供必要的访问限制支持。还有一些资源消耗过大的请求,比如数据导出等(参考 记一次线上J... 阅读原文
2020-07-23 10:02:09 阅读(2376) 评论(0)
摘要: Spring曾有过光辉岁月,它一路与时俱进,引领Java编程潮流至少10年。如今,Spring Boot的诞生,让我们再也不用被Spring 的繁琐配置所束缚。Spring Boot是当前后端开发的极佳框架。它在如今纷繁的技术中尤为突出。   这份文档针对Spring Boot 2.0及以上版本,采用“知... 阅读原文
2020-07-23 09:02:11 阅读(2529) 评论(0)
摘要: 作者:小小木https://juejin.im/post/5cab7ebf518825177637b2f9 熟悉Spring开发的朋友都知道Spring提供了5种scope分别是singleton、prototype、request、session、global session。 如下图是官方文档上的截... 阅读原文
2020-07-23 08:27:06 阅读(2960) 评论(0)