自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(324)
  • 资源 (15)
  • 收藏
  • 关注

原创 我的知识树

通过工作中以及业余时间自学,目前接触到了如下这么多知识点。

2020-04-02 08:37:41 357

原创 rabbitmq高可用

rabbitmq高可用2020年12月13日19:30rabbit集群+ 级联 + 镜像队列1、多机多节点集群搭建RabbitMQ集群中的所有节点都会备份所有的元数据信息,包括以下内容:(1)队列元数据:队列的名称及属性(2)交换器:交换器的名称及属性(3)绑定关系元数据:交换器与队列或者交换器与交换器之间的绑定关系(4)vhost元数据:为vhost内的队列、交换器和绑定提供命名空间以及安全属性但是不会备份消息(镜像队列可以解决此问题)!集群中节点...

2020-12-27 15:07:43 481 4

原创 mysql主从搭建

mysql主从搭建2020年12月13日17:06搭建:1、mysqld.cnf 配置文件区分master和slavemysql服务器唯一标识设置:server-id=1 作用:server-id用于标识数据库实例,防止在链式主从、多主多从拓扑中导致SQL语句的无限循环: (1)标记binlog event的源实例 (2)过滤主库binlog,当发现server-id相同时,跳过该event执行,避免无限循环执行。 (3)如果设置了repli...

2020-12-27 15:05:45 355 2

原创 mysql主从复制原理

mysql主从复制原理2020年12月20日11:24MySQL 是以容易学习和方便的高可用架构,被开发人员青睐的。而它的几乎所有的高可用架构,都直接依赖于 binlog参考 <https://time.geekbang.org/column/article/76446> 1、主从复制原理:一条更新语句的执行过程:主库接收到客户端的更新请求后,执行内部事务的更新逻辑,同时写 binlog备库 B 跟主库 A 之间维持了一个长连接。主库 A 内...

2020-12-27 15:03:42 797 2

原创 rabbitMQ级联消费方案验证

参考资料:https://www.rabbitmq.com/federation.html1、开启federation2、配置federation,添加上游mq节点(1)页面方式:(2)命令行方式:rabbitmqctl set_parameter federation-upstream my-upstream \'{"uri":"amqp://server-name","expires":3600000}'(3)Http方式:PUT /api/par..

2020-11-29 12:46:49 531

转载 RAID学习笔记

磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。[1]磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。[1]磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。[1]优点提...

2020-10-23 11:37:56 193

原创 java项目运维手册

1、生成dump文件jmap -dump:live,format=b,file=heap-dump-1829.bin 321712、查看子文件夹磁盘空间占用情况Du -sh *3、实时监控gc情况:jstat -gcutil pid interval(ms)4、开启jmx远程监控:执行foo.jar启动命令java -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=f.

2020-09-30 08:31:50 1446

原创 http客户端超时重试机制总结

超时设置:Feign_Ribbon超时机制结论一,默认情况下Feign的读取超时是1秒,如此短的读取超时算是坑点一。结论二,也是坑点二,如果要配置Feign的读取超时,就必须同时配置连接超时,才能生效。结论三,单独的超时可以覆盖全局超时,这符合预期,不算坑除了可以配置Feign,也可以配置Ribbon组件的参数来修改两个超时时间。这里的坑点三是,参数首字母要大写,和Feign的配置不同。结论五,同时配置Feign和Ribbon的超时,以Feign为准...

2020-08-24 07:40:06 1930

原创 Spring Security配置(单体springboot项目,前后端不分离)

spring boot集成jwt+spring security的大致流程为:1、使用jwt类库生成token、刷新token、验证token2、创建filter拦截请求,拿到token进行校验3、创建spring security配置类,配置请求拦截(1)拦截动态请求配置如下,以及配置当token验证不通过时返回的状态码和json结构的配置(默认返回302重定向到登陆页面)(2)配置静态文件过滤...

2020-07-25 10:40:09 1368

原创 ThreadLocalRandom的正确用法

java里有伪随机型和安全型两种随机数生成器,伪随机生成器根据特定公式将seed转换成新的伪随机数据的一部分,安全随机生成器在底层依赖到操作系统提供的随机事件来生成数据。安全随机生成器需要生成加密性强的随机数据的时候才用它 生成速度慢 如果需要生成大量的随机数据,可能会产生阻塞需要等待外部中断事件而伪随机生成器,只依赖于“seed”的初始值,如果给生成算法提供相同的seed,可以得到一样的伪随机序列。一般情况下,由于它是计算密集型的(不依赖于任何IO设备),因此生成速度更快。以下是伪随机生成器

2020-06-27 13:21:38 17681 3

原创 java后端工程师高频面试考点之消息中间件

如何保证消息不重复 1、消费端处理消息的业务逻辑保持幂等性或者借助redis等其他产品进行去重处理。更加通用的方法是,给你的数据增加一个版本号属性,每次更数据前,比较当前数据的版本号是否和消息中的版本号一致,如果不一致就拒绝更新数据,更新数据的同时 将版本号+1,一样可以实现幂等更新 2、保证每条消息都有唯一编号且保证消息处理成功与去重表的日志同时出现。 https://blog.csdn.net/sinat_27143551/article/de...

2020-06-18 09:46:25 241

原创 Dubbo学习笔记

注册中心宕机情况下,dubbo高可用:1、dubbo客户端可以缓存服务提供者的信息,进行调用2、dubbo配置url进行直连调用

2020-04-10 12:12:51 184 2

原创 大货车燃油盗窃案件管控应用详述

1、项目业务介绍盗窃大货车燃油基本是深夜凌晨在高速服务区、出入口和路边等地作案。 由于夜间监控模糊,监控被大货车遮挡,同时嫌疑人故意绕开有监控的路 段,导致作案车辆监控抓拍线索非常少。因此,在侦查大货车燃油盗窃案 件时,常常会遇到作案车辆发现难,行车轨迹研判难这到两个难题。为此我们开发了几种找车的方法:1、 首先是案件找盗油车,我们利用几个案件发生的时空区域的数据碰撞,加 上 AI ...

2020-03-21 09:36:15 533 4

转载 mysql主从复制原理

主从复制复制功能数据分布 负载均衡(读) 备份 高可用和故障切换 MySQL 升级测试复制原理Mysql 中有一种日志叫做 bin 日志(二进制日志)。这个日志会记录下所有修改了数据库的 SQL 语句(insert,update,delete,ALTER TABLE,grant 等等)。主从复制的原理其实就是把主服务器上的 BIN 日志复制到从服务器上执行一遍,这样从服务...

2020-03-05 15:30:16 168

转载 mysql数据库设计与优化与架构 模拟场景(京东商城)

mysql数据库设计与优化与架构 模拟场景(京东商城)任何优化多需要场景,本次所有的场景为京东商城的数据库设计模拟!有问题或者宝贵意见联系我的QQ,非常希望你的加入!##简介: 设计: 1.数据库开发规范的制定 2.数据库结构与设计 3.mysql执行计划的分析 4.mysql数据库的备份和恢复 5.mysql高性能高可用架构变迁场景说明 用户登录->选购商品...

2020-02-23 15:57:51 702

转载 秒杀tomcat优化

秒杀tomcat优化有问题或者宝贵意见联系我的QQ,非常希望你的加入!要求:本文以tomcat8.5.20为准目标1.内存优化2.并发优化3.APR优化APR优化相关包1.内存优化内存优化catalinaJAVA_OPTS="-server -Xms2048M -Xmx2048M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDum...

2020-02-23 15:52:02 284

转载 秒杀nginx优化

秒杀nginx优化要求:目标1.并发优化2.KeepALive长连接优化3.压缩优化4.配置缓存/docs/tools/nginx nginx优化相关包安装:cdyum install -y gcc gcc-c++./configure --prefix=/usr/local/nginx --with-pcre=/home/qiurunze/下载/pcre-8.38 --...

2020-02-23 15:10:42 604

原创 简单秒杀功能实现思路

秒杀步骤* 1、发送获取验证码请求,后台生成验证码并写入redis* 2、用户填写验证码,发送检验验证码请求,后台校验成功后创建并返回秒杀专属路径* 3、发送秒杀请求,发送商品id和path,后台验证path,验证是否已经秒杀成功(防止重复下单),并预减库存(内存操作)* 4、发送mq消息* 5、监听mq秒杀消息,校验库存,判断是否已经秒杀成功* 6、减库存,创建订单,将秒杀成功信息...

2020-02-23 10:26:40 2339

原创 原子类为何能支持高并发(CAS介绍)

无锁方案相对互斥锁方案,最大的好处就是性能。互斥锁方案为了保证互斥性,需要执行加锁、解锁操作,而加锁、解锁操作本身就消耗性能;同时拿不到锁的线程还会进入阻塞状态,进而触发线程切换,线程切换对性能的消耗也很大。 相比之下,无锁方案则完全没有加锁、解锁的性能消耗,同时还能保证互斥性,既解决了问题,又没有带来新的问题,可谓绝佳方案。其实原子类性能高的秘密很简单,硬件支持而已。CPU 为了解决并发问题...

2020-02-16 22:54:03 279

原创 控制反转和依赖注入

1. 控制反转实际上,控制反转是一个比较笼统的设计思想,并不是一种具体的实现方法,一般用来指导框架层面的设计。这里所说的“控制”指的是对程序执行流程的控制,而“反转”指的是在没有使用框架之前,程序员自己控制整个程序的执行。在使用框架之后,整个程序的执行流程通过框架来控制。流程的控制权从程序员“反转”给了框架。2. 依赖注入依赖注入和控制反转恰恰相反,它是一种具体的编码技巧。我们不通过 ...

2020-02-14 03:37:08 145

原创 Redis的SortedSet为什么使用跳表而不使用红黑树?

为什么 Redis 要用跳表来实现有序集合,而不是红黑树?Redis 中的有序集合是通过跳表来实现的,严格点讲,其实还用到了散列表。如果你去查看 Redis 的开发手册,就会发现,Redis 中的有序集合支持的核心操作主要有下面这几个:插入一个数据;删除一个数据;查找一个数据;按照区间查找数据(比如查找值在 [100, 356] 之间的数据);迭代输出有序序列。其中...

2020-01-13 15:26:10 1825

原创 求数组中第二大的数字

private static int secondMax(int[] arr) { int len = arr.length; int max = Integer.MIN_VALUE, secondMax = Integer.MIN_VALUE; if (len < 2) return secondMax; for (int i = 0; i &lt...

2020-01-05 12:40:43 413

原创 字符串按照字母表顺序排序

private static String sortString2(String string){ char[] str=string.toCharArray(); int n = string.length(); boolean flag = false; for(int i=0;i< n - 1;i++) { ...

2020-01-01 20:14:49 4482 1

原创 JVM相关问题定位

cpu占用过高排查思路2. top 查看占用cpu的进程 pid4. top -Hp pid 查看进程中占用cpu过高的线程id tid6. printf '%x/n' tid 转化为十六进制8. jstack pid |grep tid的十六进制 -A 30 查看堆栈信息定位jvm old区占用过高排查思路2. top查看占用cpu高的进程4. jstat -...

2020-01-01 19:17:58 197

原创 如何避免死锁

避免死锁主要有 3种方式加锁顺序加锁时限死锁检测加锁顺序一个线程如果要获取多个锁,必须按照一定的顺序去获取,比如要获取A B C 三把锁,我们规定,必须获取到了 AB 两把锁,才能去获取 C锁举个例子 现在有两个线程 都要去获取 ABC 三把锁然后 1号 线程 获取到了 A 和 B 两把锁2号 线程获取了 C锁于是 1号线程在等待 2号线程释放锁C锁2号线程在等待...

2019-12-26 11:27:01 330 1

原创 二叉树与散列表的比较

散列表的插入、删除、查找操作的时间复杂度可以做到常量级的 O(1),非常高效。而二叉查找树在比较平衡的情况下,插入、删除、查找操作时间复杂度才是 O(logn),相对散列表,好像并没有什么优势,那我们为什么还要用二叉查找树呢?我认为有下面几个原因:第一,散列表中的数据是无序存储的,如果要输出有序的数据,需要先进行排序。而对于二叉查找树来说,我们只需要中序遍历,就可以在 O(n) 的时间复杂度内...

2019-12-21 11:55:03 478 2

转载 SpringBoot Starter介绍以及实例

一.Spring Boot Starter简介Starter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境( 条件)进行自动配置。使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,Spring Boot就能自动扫描并加载相应的模块。例如在Maven的依赖中加入spring-boot-star...

2019-12-16 15:25:42 355

转载 redis字符串的实现

本篇会讲以下内容: Redis字符串的实现 Redis字符串的性能优势 Redis字符串的实现Redis虽然是用C语言写的,但却没有直接用C语言的字符串,而是自己实现了一套字符串。目的就是为了提升速度,提升性能,可以看出Redis为了高性能也是煞费苦心。Redis构建了一个叫做简单动态字符串(Simple Dynamic String),简称SDS1.SDS 代码结...

2019-12-10 20:57:17 181

转载 了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透?

面试题了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透?面试官心理分析其实这是问到缓存必问的,因为缓存雪崩和穿透,是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题,所以面试官一定会问你。面试题剖析缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4...

2019-12-10 15:25:35 136

转载 为什么说HashMap是线程不安全的?

我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密。1.jdk1.7中的HashMap在jdk1.8中对HashMap做了很多优化,这里先分析在jdk1.7中的问题,相信大家都知道在jdk1.7多线程环境下HashMap容易出现死循环,这里我们先用代码来模拟出现死循环的情况:publicclassHash...

2019-12-10 08:26:38 320

转载 Redis的过期策略

在日常开发中,我们使用 Redis 存储 key 时通常会设置一个过期时间,但是 Redis 是怎么删除过期的 key,而且 Redis 是单线程的,删除 key 会不会造成阻塞。要搞清楚这些,就要了解 Redis 的过期策略和内存淘汰机制。Redis采用的是定期删除 + 懒惰删除策略。定期删除策略Redis 会将每个设置了过期时间的 key 放入到一个独立的字典中,默认每 100ms...

2019-12-08 11:42:48 346

转载 漫谈Redis 实现分布式锁 以及 Redisson 源码解析

# 产生背景Distributed locks are a very useful primitive in many environments where different processes must operate with shared resources in a mutually exclusive way.在某些场景中,多个进程必须以互斥的方式独占共享资源,这时用分布式...

2019-12-07 19:21:29 483

转载 消息中间件如何保证消息的顺序性

我举个例子,我们以前做过一个 mysqlbinlog同步的系统,压力还是非常大的,日同步数据要达到上亿,就是说数据从一个 mysql 库原封不动地同步到另一个 mysql 库里面去(mysql -> mysql)。常见的一点在于说比如大数据 team,就需要同步一个 mysql 库过来,对公司的业务系统的数据做各种复杂的操作。你在 mysql 里增删改一条数据,对应出来了增删改 3 ...

2019-12-07 18:36:38 782

转载 分库分表之后,id主键怎么处理

问:分库分表之后,id 主键如何处理?面试官心理分析其实这是分库分表之后你必然要面对的一个问题,就是 id 咋生成?因为要是分成多个表之后,每个表都是从 1 开始累加,那肯定不对啊,需要一个全局唯一的 id 来支持。所以这都是你实际生产环境中必须考虑的问题。面试题剖析基于数据库的实现方案数据库自增 id这个就是说你的系统里每次得到一个 id,都是往一个库的一个表里插入一条没...

2019-12-07 18:22:21 115

转载 Spring框架中Bean的生命周期

首先简单说一下(以下为一个回答的参考模板)1、实例化一个Bean--也就是我们常说的new;2、按照Spring上下文对实例化的Bean进行配置--也就是IOC注入;3、如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法,此处传递的就是Spring配置文件中Bean的id值4、如果这个Bean已经实现了BeanFact...

2019-12-06 18:56:37 119

转载 redis统计独立用户访问量

众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer当然,拼多多加班也是出名的,一周上6天班是常态,每天工作时间基本都是超过12个小时,也是相当辛苦的。废话不多说,今天我们来聊一聊拼多多的一道后台面试真题,是一道简单的架构类的题目:拼多多有数亿的用户,那么对于某个网页,怎么使用Redis来统计一个网站的用户访问数呢...

2019-12-06 08:48:47 1233

原创 趣谈网络协议-UDP协议:因性善而简单,难免碰到“城会玩”

传输层里比较重要的两个协议,一个是 TCP,一个是 UDP。对于不从事底层开发的人员来讲,或者对于开发应用的人来讲,最常用的就是这两个协议。由于面试的时候,这两个协议经常会被放在一起问,因而我在讲的时候,也会结合着来讲。TCP 和 UDP 有哪些区别?一般面试的时候我问这两个协议的区别,大部分人会回答,TCP 是面向连接的,UDP 是面向无连接的。...

2019-11-15 18:42:15 159

转载 Kafka | 你一定不能错过的Kafka控制器

今天我要和你分享的主题是:Kafka 中的控制器组件。控制器组件(Controller),是 Apache Kafka 的核心组件。它的主要作用是在 Apache Zoo...

2019-11-10 20:03:16 524

转载 数据库 | MySQL调优之索引:索引的失效与优化

MySQL 索引存储结构索引是优化数据库查询最重要的方式之一,它是在 MySQL 的存储引擎层中实现的,所以每一种存储引擎对应的索引不一定相同。我们可以通过下面这张表格,...

2019-11-10 20:03:16 460

转载 Kafka | 消费者组重平衡全流程解析

今天我要和你分享的主题是:消费者组重平衡全流程解析。之前我们聊到过消费者组的重平衡流程,它的作用是让组内所有的消费者实例就消费哪些主题分区达成一致。重平衡需要借助 Kaf...

2019-11-05 14:21:52 2073

apache的dockerfile

这里边的文件是用来构建apache的docker镜像的,大家可以放心使用

2018-07-25

apache镜像dockerfile

这个是用于构建docker镜像的dockerfile文件,构建的是apache镜像

2018-07-25

zookeeper安装包

zookeeper的安装包,用于安装zookeeper,版本为3.4.12

2018-07-12

数据库学习笔记

这是我自己平时学习到的mysql相关知识的一个总结,希望对大家有用

2018-07-01

网络磁盘性能测试工具

自己搭建的一个django管理平台,磁盘和网络性能测试脚本,用于排查网络以及硬件问题

2018-06-25

Java8语法总结

学习java8新特性,尤其是lambda和流式编程,学习过程中总结的笔记

2018-06-04

docker-ce 17.12.0离线安装包套件

docker-ce离线安装包,已知适用于ubuntu16.04,可以放心使用

2018-05-23

单例模式与垃圾回收机制

探索讨论单例模式会不会被垃圾回收机制回收,结论是HotSpot中不会

2018-05-13

单例模式代码实现

这个讲的是单例模式的多种不同实现方式,希望对单例感兴趣的同学看看

2018-05-13

docker安装包-amd64-ubuntu

dockerlasjfdolwsajfldskjalgewiuogjds东方萨规定撒大概撒旦甘洒规定萨嘎

2018-04-04

IP地址、子网划分相关知识

IP地址相关知识,IP地址分类、IP子网划分等等知识的笔记

2018-03-24

网络知识学习笔记

自己学习网络知识尤其是传输层和应用层的一些协议的笔记

2018-03-24

TCP/IP和HTTP协议详解

学习TCP/IP协议基础知识,了解三次握手和四次挥手的含义的意义

2018-03-23

linux学习笔记-2

学习linux的笔记,记录学习的命令和用法,就这样,还不够吗

2018-03-23

Linux学习笔记

自己写的linux笔记,记录学习过程,便于温故而知新,记录了常见的linux命令

2018-03-17

空空如也

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

TA关注的人

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