java架构
文章平均质量分 70
一枚进阶码农
这个作者很懒,什么都没留下…
展开
-
主流消息队列对比
为什么使用消息队列?消息队列的优点和缺点?kafka、activemq、rabbitmq、rocketmq都有什么优缺点? 面试官角度分析: (1)你知不知道你们系统里为什么要用消息队列这个东西? (2)既然用了消息队列这个东西,你知不知道用了有什么好处? (3)既然你用了MQ,那么当时为什么选用这一款MQ? 1. 为什么使用消息队列? 面试官问这个问题的期望之一的回答是,你们公司有什么业务场景,这个业务场景有什么技术挑战,如果不用MQ可能会很麻烦,但是再用了之后带来了很多好处。 消息队列的常原创 2021-04-15 14:01:22 · 623 阅读 · 0 评论 -
线上服务平均响应时间太长排查
最近线上环境某个接口服务响应时间偏长,导致用户体验超差,那平时该怎么快速的排查这类问题呢? ①、为代码添加上详细的打印日志;不建议,一是线上环境,没法随便的重新部署更换了详细日志的代码,二是 添加详细的日志输出,那就意味这会生成大量的日志文件,这些日志文件会占据大量服务器磁盘空间。 ②、搭建一个模拟了线上环境的测试环境进行复盘排查;额,出现了这种问题哪有那么多的时间让你进行环境复盘排查,所以此方案也是不建议的。 ③、线上诊断神器Arthas,这个工具是阿里开源的,专门用于线上环境问题排查的,这...原创 2021-04-15 13:57:10 · 258 阅读 · 0 评论 -
java多线程使用场景
多线程使用的主要目的在于: 1、吞吐量:你做WEB,容器帮你做了多线程,但是他只能帮你做请求层面的。简单的说,可能就是一个请求一个线程。或多个请求一个线程。如果是单线程,那同时只能处理一个用户的请求。 2、伸缩性:也就是说,你可以通过增加CPU核数来提升性能。如果是单线程,那程序执行到死也就利用了单核,肯定没办法通过增加CPU核数来提升性能。 鉴于是做WEB的,第1点可能你几乎不涉及。那这里我就讲第二点吧。 举个简单的例子: 假设有个请求,这个请求服务端的处理需要执行3个很缓慢的IO操作(比如数据原创 2021-04-15 10:25:28 · 268 阅读 · 0 评论 -
Spring的 IOC 容器与New对象比较
ioc的思想最核心的地方在于,资源不由使用资源的双方管理,而由不使用资源的第三方管理,这可以带来很多好处。 资源集中管理,实现资源的可配置和易管理。 降低了使用资源双方的依赖程度,也就是我们说的耦合度。 也就是说,甲方要达成某种目的不需要直接依赖乙方,它只需要达到的目的告诉第三方机构就可以了,比如甲方需要一双袜子,而乙方它卖一双袜子,它要把袜子卖出去,并不需要自己去直接找到一个卖家来完成袜子的卖出。 它也只需要找第三方,告诉别人我要卖一双袜子。这下好了,甲乙双方进行交易活动,都不需要自原创 2021-04-15 10:02:24 · 1421 阅读 · 1 评论 -
缓存常见三大问题
缓存常见三大问题 简单说明 开始 1、缓存穿透 2、缓存并发 3、缓存雪崩 开始 缓存穿透、缓存并发、缓存雪崩常见的由于并发量大而导致。 缓存穿透:恶意攻击或者无意造成 缓存并发:设计不足 缓存雪崩:缓存同时失效造成 1、缓存穿透 说明: 缓存穿透指的是使用不存在的key进行大量的高并发查询,这导致缓存无法命中,每次请求都要穿透到后端数据库系统进行查询,使数据库压力过大,甚至使数据库服务被压死。 解决: 我们通常将空值缓存起来,再次接收到同样的查询请求时,若命中缓存并且值为空,就会直接返回,不会透原创 2021-04-12 15:40:50 · 158 阅读 · 0 评论 -
分布式系统个人理解
分布式系统:分的微小服务,以小而独立的业务为单位,形成子系统。 然后分布式系统中需要有统一的调用,形成大的聚合服务。 同时,微服务群,需要有交流(通讯,注册中心,同步,异步),有管理(监控,调度)。 对外服务,需要有控制的对外开发,安全网关。 ...原创 2021-04-12 15:29:22 · 77 阅读 · 0 评论