springboot
文章平均质量分 90
ouseika
这个作者很懒,什么都没留下…
展开
-
什么是缓存穿透,如何解决?
日常开发中,大家经常使用缓存,但是你知道大型的互联网公司面对高并发流量,要注意缓存穿透问题吗!!! 本文会介绍布隆过滤器,空间换时间,以较低的内存空间、高效解决这个问题。1、性能不够,缓存来凑现在的年轻人都喜欢网购,没事就逛逛淘宝,剁剁手,买些自己喜欢的东西,释放下工作压力。地址:https://detail.tmall.com/item.htm?id=628993216729上图是一个天猫 iphone12 的商品详情页,id表示商品的编号我们都知道淘宝的访问...原创 2021-08-12 11:36:40 · 1736 阅读 · 0 评论 -
SpringBoot 代码规范
如何更规范化编写Java 代码Many of the happiest people are those who own the least. But are we really so happy with our IPhones, our big houses, our fancy cars?忘川如斯,拥有一切的人才更怕失去。背景:如何更规范化编写Java代码的重要性想必毋需多言,其中最重要的几点当属提高代码性能、使代码远离Bug、令代码更优雅。一、MyBatis 不要为了多个查询..原创 2021-08-12 10:14:18 · 1636 阅读 · 0 评论 -
对象copy之BeanUtils
这里说的是spring的BeanUtils.copyProperties。场景开发中经常遇到,把父类的属性拷贝到子类中。通常有2种方法: 一个一个set 用BeanUtils.copyProperties 很显然BeanUtils更加方便,也美观很多。那么任何情况都能使用BeanUtils么,当然不是。要先了解他。BeanUtils是深拷贝,还是浅拷贝?是浅拷贝。 浅拷贝:只是调用子对象的set方法,并没有将所有属性拷贝。(也就是说,引用的一个内存地址)原创 2021-08-12 09:58:58 · 570 阅读 · 0 评论 -
Nginx 应用场景
一、HTTP服务器Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器,如果一个网站只是静态页面的话,那么就可以通过这种方式来实现部署。1、 首先在文档根目录Docroot(/usr/local/var/www)下创建html目录, 然后在html中放一个test.html;2、 配置nginx.conf中的serverusermengdaystaff;http{server{listen80...原创 2021-08-12 09:54:58 · 148 阅读 · 0 评论 -
Field injection is not recommended的原因探解
本章的内容主要是想探讨我们在进行 Spring 开发过程当中,关于依赖注入的几个知识点。感兴趣的读者可以先看下以下问题: @Autowired,@Resource,@Inject三个注解的区别 当你在使用@Autowired时,是否有出现过Field injection is not recommended的警告?你知道这是为什么吗? Spring 依赖注入有哪几种方式?官方是怎么建议使用的呢? 如果你对上述问题都了解,那我个人觉得你的开发经验应该是不错的????。下面原创 2021-08-12 09:48:13 · 3047 阅读 · 1 评论 -
有了HTTP,为什么还要RPC?
本文简单地介绍一下两种形式的 C/S 架构,先说一下他们最本质的区别,就是 RPC 主要是基于 TCP/IP 协议的,而 HTTP 服务主要是基于 HTTP 协议的。我们都知道 HTTP 协议是在传输层协议 TCP 之上的,所以效率来看的话,RPC 当然是要更胜一筹啦!下面来具体说一说 RPC 服务和 HTTP 服务。OSI 网络七层模型在说 RPC 和 HTTP 的区别之前,我觉的有必要了解一下 OSI 的七层网络结构模型(虽然实际应用中基本上都是五层)。它可以分为以下几层:(从上到下原创 2021-06-28 11:58:33 · 168 阅读 · 1 评论 -
SpringCloud中Hystrix容错保护原理及配置
1 什么是灾难性雪崩效应?如下图的过程所示,灾难性雪崩形成原因就大致如此:造成灾难性雪崩效应的原因,可以简单归结为下述三种: 服务提供者不可用。如:硬件故障、程序BUG、缓存击穿、并发请求量过大等。 重试加大流量。如:用户重试、代码重试逻辑等。 服务调用者不可用。如:同步请求阻塞造成的资源耗尽等。 雪崩效应最终的结果就是:服务链条中的某一个服务不可用,导致一系列的服务不可用,最终造成服务逻辑崩溃。这种问题造成的后果,往往是无法预料的。2 如何解决灾难性雪崩效应?转载 2021-03-16 16:57:37 · 206 阅读 · 0 评论 -
RabbitMQ 总结
前言 -RabbitMQ 是基于 AMQP 协议的,通过使用通用协议就可以做到在不同语言之间传递。- AMQP 协议 -核心概念1、Server:又称 broker,接受客户端连接,实现 AMQP 实体服务。2、Connection:连接和具体 broker 网络连接。3、Channel:网络信道,几乎所有操作都在 channel 中进行,channel 是消息读写的通道。客户端可以建立多个 channel,每个 channel 表示一个会话任务。4...原创 2021-02-25 09:53:09 · 376 阅读 · 0 评论 -
Jar包冲突问题及解决方案!
Jar包冲突是老生常谈的问题,几乎每一个Java程序猿都不可避免地遇到过,并且也都能想到通常的原因一般是同一个Jar包由于maven传递依赖等原因被引进了多个不同的版本而导致,可采用依赖排除、依赖管理等常规方式来尝试解决该问题,但这些方式真正能彻底解决该冲突问题吗?答案是否定的。笔者之所以将文章题目起为“重新看待”,是因为之前对于Jar包冲突问题的理解仅仅停留在前面所说的那些,直到在工作中遇到的一系列Jar包冲突问题后,才发现并不是那么简单,对该问题有了重新的认识,接下来本文将围绕Jar包冲突的问题本质和相原创 2021-02-25 09:31:28 · 2020 阅读 · 2 评论 -
MyBatis 的执行流程
前言MyBatis可能很多人都一直在用,但是MyBatis的SQL执行流程可能并不是所有人都清楚了,那么既然进来了,通读本文你将收获如下: 1、Mapper接口和映射文件是如何进行绑定的 2、MyBatis中SQL语句的执行流程 3、自定义MyBatis中的参数设置处理器typeHandler 4、自定义MyBatis中结果集处理器typeHandler PS:本文基于MyBatis3.5.5版本源码。概要在MyBatis中,利用编程式进行数据查询,主要就原创 2021-02-23 15:00:19 · 185 阅读 · 0 评论 -
retrofit 初了解
在SpringBoot项目直接使用okhttp、httpClient或者RestTemplate发起HTTP请求,既繁琐又不方便统一管理。因此,在这里推荐一个适用于SpringBoot项目的轻量级HTTP客户端框架retrofit-spring-boot-starter,使用非常简单方便,同时又提供诸多功能增强。目前项目已经更新至2.2.2版本,并且会持续进行迭代优化。github项目地址:https://github.com/LianjiaTech/retrofit-spring-boot-st原创 2021-02-03 10:17:50 · 830 阅读 · 0 评论 -
SpringBoot 接口幂等性的实现方案
一、什么是幂等性幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同。在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。二、什么是接口幂等性在HTTP/1.1中,对幂等性进行了定义。它描述了一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外),即第原创 2021-02-03 10:13:12 · 119 阅读 · 0 评论 -
RPC实现以及相关学习
我们即希望能够敏捷开发,不做重复的劳动,用别人的势能赋能自己;又要成为一名能够赋能别人的人,拥有自身的势能。在一个拥有成千上万大大小小的服务的公司里,每个团队在不同的机器上部署它们自己的服务,所以真实开发一个新服务的场景一定需要考虑两个问题: 我的团队开发一个新服务,可能需要调用别人的服务。 我的团队开发一个新服务,别的团队可能会调用。 RPC调用的变与不变由于服务部署在不同机器,想要进行服务间的调用必须进行网络通信,那服务消费方每调用一个服务都要写一大堆网络通信的东西,不仅复杂原创 2021-01-30 17:16:54 · 185 阅读 · 0 评论