自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?

原文地址面试题为什么使用消息队列? 消息队列有什么优点和缺点? Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?面试官心理分析其实面试官主要是想看看: 第一,你知不知道你们系统里为什么要用消息队列这个东西? 不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用而用...

2019-11-08 10:58:41 134

原创 Java接入支付宝/微信支付

支付

2023-11-13 11:24:43 567

原创 java读取图片每个像素颜色值

直接赋代码 public void getImagePixel(String image) throws Exception { System.out.println("---------start-----------"); int[] rgb = new int[3]; File file = new File(image); BufferedImage bi; //输出到指定文件 String .

2021-09-09 10:09:40 1291

原创 Spring中的事务传播行为

先来看一下Spring 中的七种事务传播行为先提供几个结论:Propagation.REQUIRED1,通过这两个方法我们证明了在外围方法未开启事务的情况下Propagation.REQUIRED修饰的内部方法会新开启自己的事务,且开启的事务相互独立,互不干扰。2,在外围方法开启事务的情况下Propagation.REQUIRED修饰的内部方法会加入到外围方法的事务中,所有Propagation.REQUIRED修饰的内部方法和外围方法均属于同一事务,只要一个方法回滚,整个事务均回滚。

2021-04-25 18:05:10 176

原创 Spring统一异常处理

在说解决方案前,首先我们要看下与切面相关的几个定义JoinPoint: 程序在执行流程中经过的一个个时间点,这个时间点可以是方法调用时,或者是执行方法中异常抛出时,也可以是属性被修改时等时机,在这些时间点上你的切面代码是可以(注意是可以但未必)被注入的Pointcut: JoinPoints 只是切面代码可以被织入的地方,但我并不想对所有的 JoinPoint 进行织入,这就需要某些条件来筛选出那些需要被织入的 JoinPoint,Pointcut 就是通过一组规则(使用 AspectJ point

2021-04-25 16:44:39 187

原创 redis 的雪崩、穿透和击穿

了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透?缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没有采用什...

2019-11-21 18:13:00 359

原创 Redis 哨兵集群实现高可用

哨兵的介绍sentinel,中文名是哨兵。哨兵是 redis 集群机构中非常重要的一个组件,主要有以下功能:集群监控:负责监控 redis master 和 slave 进程是否正常工作。 消息通知:如果某个 redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员。 故障转移:如果 master node 挂掉了,会自动转移到 slave node 上。 配置中心:如果故障...

2019-11-21 16:19:14 134

原创 Redis 主从架构(后配Linux下配置redis主从链接)

Redis 主从架构单机的 redis,能够承载的 QPS 大概就在上万到几万不等。对于缓存来说,一般都是用来支撑读高并发的。因此架构做成主从(master-slave)架构,一主多从,主负责写,并且将数据复制到其它的 slave 节点,从节点负责读。所有的读请求全部走从节点。这样也可以很轻松实现水平扩容,支撑读高并发。redis replication -> 主从架构 -&gt...

2019-11-21 11:19:14 214

原创 redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现?

这是我们在使用redis时常见的两个问题:往 redis 写入的数据怎么没了?可能有同学会遇到,在生产环境的 redis 经常会丢掉一些数据,写进去了,过一会儿可能就没了。我的天,同学,你问这个问题就说明 redis 你就没用对啊。redis 是缓存,你给当存储了是吧?啥叫缓存?用内存当缓存。内存是无限的吗,内存是很宝贵而且是有限的,磁盘是廉价而且是大量的。可能一台机器就几十个 G 的内...

2019-11-21 10:58:35 103

原创 如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题?

原文链接面试题如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题?面试官心理分析这个是肯定的,用 MQ 有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是前面说的重复消费和幂等性问题。不能少,就是说这数据别搞丢了。那这个问题你必须得考虑一下。如果说你这个是用 MQ 来传递非常核心的消息,比如说计费、扣费的一些消息,那必须确保这个 MQ 传递过程中绝对不会把计费消...

2019-11-08 11:03:37 130

原创 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性

原文链接面试题如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?面试官心理分析其实这是很常见的一个问题,这俩问题基本可以连起来问。既然是消费消息,那肯定要考虑会不会重复消费?能不能避免重复消费?或者重复消费了也别造成系统异常可以吗?这个是 MQ 领域的基本问题,其实本质上还是问你使用消息队列如何保证幂等性,这个是你架构里要考虑的一个问题。面试题剖析回答这个问题,首...

2019-11-08 11:02:39 109

原创 如何保证消息队列的高可用?

原文链接面试题如何保证消息队列的高可用?面试官心理分析如果有人问到你 MQ 的知识,高可用是必问的。上一讲提到,MQ 会导致系统可用性降低。所以只要你用了 MQ,接下来问的一些要点肯定就是围绕着 MQ 的那些缺点怎么来解决了。要是你傻乎乎的就干用了一个 MQ,各种问题从来没考虑过,那你就杯具了,面试官对你的感觉就是,只会简单使用一些技术,没任何思考,马上对你的印象就不太好了。这...

2019-11-08 11:00:27 97

转载 ZooKeeper实际应用案例

本文链接:https://blog.csdn.net/liyiming2017/article/details/85063868项目背景介绍首先给大家介绍一下本文描述项目的情况。这是一个检索网站,它让你能在几千万份复杂文档数据中检索出你所需要的文档数据。为了加快检索速度,项目的数据分布在100台机器的内存里,我们称之为数据服务器。除了数据,这100台机器上均部署着检索程序。这些server...

2019-11-05 18:29:05 231

原创 SpringBoot 多模块项目实践(附打包方法)

来源序言:比起传统复杂的单体工程,使用Maven的多模块配置,可以帮助项目划分模块,鼓励重用,防止POM变得过于庞大,方便某个模块的构建,而不用每次都构建整个项目,并且使得针对某个模块的特殊控制更为方便。接下来,本文将重点阐述SpringBoot在Maven环境的多模块构建过程。本项目传送门:https://github.com/yizhiwazi/springboot-so...

2019-11-05 10:28:02 135

转载 Redis缓存 + 定时写入数据库实现高性能点赞功能

本文基于 SpringCloud, 用户发起点赞、取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储。点赞功能在很多系统中都有,但别看功能小,想要做好需要考虑的东西还挺多的。点赞、取消点赞是高频次的操作,若每次都读写数据库,大量的操作会影响数据库性能,所以需要做缓存。至于多久从 Redis 取一次数据存到数据库中,根据项...

2019-11-04 19:09:20 2417

转载 springboot项目调优

作为一名工程师,项目调优这事,是必须得熟练掌握的事情。在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。修改配置文件关于修改配置文件application.properties。SpringBoot项目详细的配置文件修改文档https://docs.spring.io/spring-boot/docs/current/reference/html...

2019-11-04 17:51:58 113

原创 java知识点整理 (持续更新中。。。)

持续更新中。。。1. sleep() 和 wait() 有什么区别?sleep():方法是线程类(Thread)的静态方法,让调用线程进入睡眠状态,让出执行机会给其他线程,等到休眠时间结束后,线程进入就绪状态和其他线程一起竞争cpu的执行时间。因为sleep() 是static静态的方法,他不能改变对象的机锁,当一个synchronized块中调用了sleep() 方法,线程虽然进入休眠,...

2019-11-02 19:20:14 136

原创 系统是如何支撑高并发的?

本文经授权转载石杉的架构笔记(ID:shishan100)很多人面试的时候被问到一个让人特别手足无措的问题:你的系统如何支撑高并发?大多数同学被问到这个问题压根儿没什么思路去回答,不知道从什么地方说起,其实本质就是没经历过一些真正有高并发系统的锤炼罢了。因为没有过相关的项目经历,所以就没法从真实的自身体会和经验中提炼出一套回答,然后系统地阐述出来自己复杂过的系统如何支撑高并发的。所...

2019-11-01 16:17:00 174

原创 RabbitMQ基础知识详细解读

什么是MQMQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。 RabbitMQ是MQ的一种。下面详细介绍一下RabbitMQ的基本概念。1、队列、生产者、消费者 队列是RabbitMQ的内部对象,用于存储消息。生产者...

2019-11-01 14:23:41 280

转载 一次给女朋友转账引发我对分布式事务的思考

前两天发了工资,第一反应是想着要给远方的女朋友一点惊喜!于是打开了平安银行的APP给女朋友转点钱!填写上对方招商银行卡的卡号、开户名,一键转账!搞定!在我点击的那瞬间,就收到了app的账户变动的提醒,并且出现了图一所示的提示界面:“处理中,正在等待对方银行返回结果…”。嗯!毕竟是跨行转账嘛,等个几秒也正常!脑海开始浮现出女朋友收到转账后惊喜与感动的画面!  然而,一切并没有那...

2019-10-28 13:39:05 152

原创 idea去掉不想commit的文件

我们项目在每次commit代码时,有时候会有一些不想提交又不能删除的代码,怎么做呢?此方法亲测最方便!!!第一步,找到。。。。直接上图吧。我这里是加了一个 no commit 的 changelist接着你在提交的时候把不想提交的时候,移到另外的changelist上就可以啦...

2019-09-19 17:47:29 8523

转载 十大经典排序算法(动图演示)

0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 0.2 算法复杂度0.3 相关概念...

2019-01-04 12:13:59 105

转载 docker 基本原理及快速入门

什么是dockerDocker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc...

2019-01-04 10:41:43 97

原创 JAVA 中BIO,NIO,AIO的理解

BIO、NIO、AIO含义跟适用场景:     BIO(同步阻塞IO):定义:同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。适用场景:适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观...

2018-12-26 16:00:49 172

原创 SpringBoot调用第三方接口

Spring框架提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接, 我们只需要传入url及返回值类型即可。相较于之前常用的HttpClient,RestTemplate是一种更优雅的调用RESTful服务的方式。RestTemplate默认依赖JDK提供http连接的能力(HttpURLConnect...

2018-12-04 17:10:00 20220 4

转载 一次完整的HTTP请求所经历的步骤

一次完整的HTTP请求所经历的7个步骤HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:1. 建立TCP连接在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比...

2018-12-03 11:59:08 279

转载 RabbitMQ和kafka从几个角度简单的对比

业界对于消息的传递有多种方案和产品,本文就比较有代表性的两个MQ(rabbitMQ,kafka)进行阐述和做简单的对比,在应用场景方面,RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上。kafka是Linkedin于2010年12月份开源的消息发布订阅系统,它主要用于处理活跃的流式数据,大数据量的数据处理上。1)在架...

2018-12-01 22:53:54 86

原创 一个足够大的数字,删去k个数字后得到最小值

直接上代码了 /** * 删除整数的k个数字,获得删除后的最小值 * @param num 目标整数(用String做参数是因为考虑到num的值足够大) * @param k 删除数量 * @return */ public static String removeKDigits(String num,int k) { ...

2018-11-30 14:29:30 512

原创 2018初冬阿里巴巴面试题——(部分一)

1.开发中用了比较多的数据结构有哪些? 原贴:https://blog.csdn.net/qq_31615049/article/details/805457132.谈谈你对HashMap的理解,底层的基本实现。HashMap怎么解决碰撞的问题的?理解:hashMap是基于哈希表的map接口的非同步实现,相对hashtable来说,是hashtable的轻量级的实现.允...

2018-11-08 10:50:10 269

原创 Zookeeper在Linux下的安装

安装Zookeeper首先可以从 apache.org 下载最新版本的Zookeeper: https://zookeeper.apache.org/releases.html#download 。建议下载未定版本。下面演示的是Zookeeper的3.4.6稳定版的安装。1. 单机服务下面的例子慎示了如何使用基本的配置安装 Zookeeper,安装目录为 /usr/local/z...

2018-11-06 10:38:28 563

原创 我的kafka学习之路

初识kafkaKafka 从何而来?我们为什么要开发 Kafka ? Kafka 到底是什么?Kafka 最初是 Linkedln 的一个内部基础设施系统。我们发现,虽然有很多数据库和系统可以用来存储数据,但在我们的架构里,刚好缺一个可以帮助处理持续数据流的组件。在开发 Kafka 之前,我们实验了各种现成的解决方案,从消息系统到日志聚合系统,再到 ETL工具,它们都无陆搞足我们的需求。最...

2018-11-05 17:14:17 216

转载 Zookeeper 基础之基本概念

在深入了解ZooKeeper的运作之前,让我们来看看以下的ZooKeeper基本概念。1、Architecture(架构)2、Hierarchical namespace(层次命名空间)3、Session(会话)4、Watches(监视)ZooKeeper的架构(Architecture)ZooKeeper的“客户端-服务器架构”,作为ZooKeeper架构的一部分的每个组件的说明...

2018-11-05 15:31:08 108

原创 tomcat本地启动Failed to initialize component错误

昨天想在本地做nginx负载均衡测试时,启动tomcat的时候报Failed to initialize component错误,如下 网上看了很多资料都说tomcat报错无非是:1.端口占用2.项目jar包冲突3.环境配置问题但我tomcat是刚从官网下载解压,启动就报了这个错误。后来再仔细看,发现了问题所在。我们只需要将conf目录下的server.xml文件里面的...

2018-10-25 10:17:26 12931

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除