自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(176)
  • 资源 (6)
  • 收藏
  • 关注

原创 Nacos——Distro一致性协议

一致性一直都是分布式系统中绕不开的话题。根据CAP中,要么CP(保证强一致性牺牲可用性),要么AP(最终一致性来保证可用性),在市面上也有几种一致性算法,像Paxos,Raft,Zookeeper的ZAB等。而Nacos实现了AP和CP,,那接下来就看看这个协议的工作流程。

2023-09-08 17:52:03 613

原创 Paxos算法浅析

前言在文章2PC/3PC到底是啥中介绍了2PC这种一致性协议,从文中了解到2PC更多的被用在了状态一致性上(分布式事务),在数据一致性中很少被使用;而Paxos正是在数据一致性中被广泛使用,在过去十年里,Paxos基本成为了分布式领域内一致性协议的代名词。Google的粗粒度锁服务Chubby的设计开发者Burrows曾经说过:“所有一致性协议本质上要么是Paxos要么是其变体”。Paxos的提出者LeslieLamport也因其对分布式系统的杰出理论贡献获得了2013年图灵奖。在介绍Paxos之前,先

2021-08-26 16:37:40 213

原创 Guava (一)Guava Cache进阶之同步/异步load

使用guava cache的时候,在cache中没有值或者值需要更新的时候,都需要去load,而这个load往往对应从数据库或者远程接口拿数据并缓存下来的操作。在高qps场景的服务中,这个load可能会导致调用链的阻塞,如果阻塞时间长,可能会影响服务,甚至可能拖垮服务,所以要了解哪些地方会阻塞,有没有什么方法能够尽量少的去阻塞。一.同步load1.loadload是第一次加载,加载之前cache中没有值。load永远都是同步的,不管是否使用异步进行包装,具体见下面第三部分。对于同一个key,多次

2021-08-06 17:02:09 2873

原创 Canal 集群部署及使用

好的博客:https://blog.csdn.net/wsdc0521/article/details/108727632 https://blog.csdn.net/wsdc0521/article/details/108736260数据捕获(CDC)平台:canal、Debezium,Maxwell

2020-11-17 16:38:47 733

原创 redis 类型的使用场景总结

一、string 分布式锁 特高并发会出现 解决方法:在解锁的时候判断一下 redis集群环境下,使用RedLock之Redisson实现分布式锁 1、redis和zookeeper的比较 redis 注重AP redis一步复制造成的锁丢失;比如:主节点没来的及把刚刚set进来这条数据给从节点,就挂了 zookeeper:CP(一致性要求太高,会损失一些性能) ...

2020-11-08 23:13:05 256

原创 spring的循环依赖

1、介绍几个概念官网:https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-dependencies循环依赖spring循环依赖解决不了构造器注入的我们AB循环依赖问题只要A的注入方式是setter且singleton,就不会有循环依赖的问题。默认的单例(singleton)的场景是支持循环依赖的,不报错原型(prototype)的场景是不支持循环依赖的,会报错(因为spri

2020-11-08 11:15:45 706

原创 Spring的aop执行顺序

AOP的执行顺序AOP的配置类@Aspectpublic class LogAspects { //抽取公共的切入点表达式 //1、本类引用 //2、其他的切面引用 @Pointcut("execution(public int com.wb.study.interview.spring.aop.MathCalculator.*(..))") public void pointCut(){}; //@Before在目标方法之前切入;切入点表达式(指定在哪个方法切入) @Befo

2020-11-06 17:12:49 219

原创 redis的应用总结

1、SpringBoot+Redis布隆过滤器防恶意流量击穿缓存的正确姿势可以查看:https://blog.csdn.net/lifetragedy/article/details/103945885或者:http://note.youdao.com/s/FiFjryBx

2020-10-15 16:55:46 102

原创 频繁GC的问题解决

[JVM]一次线上频繁GC的问题解决起因:周末测试发现线上mq消息积压了十几万的消息,如下图所示每个队列几万的消息,立即采取紧急措施,将队列下线重新上线。处理积压消息的量,调用量起来了,很快消息积压解决了。开始事件复盘。首先分析是否是消息消费能力跟不上消息产生原因,看入口消息,QPS是29.6消息消费QPS如下事后开始分析原因,发现队列积压有如下异常:超时时间设置的很长,大致分析出消息处理线程等待下游接口超时,连接下游接口设置的超时时间很长,为什么下游接.

2020-06-03 12:34:29 9315 1

原创 Spring的声明式事务@Transactional注解的6种失效场景

一.Spring事务管理的两种方式事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种。编程式事务:是指在代码中手动的管理事务的提交、回滚等操作,代码侵入性比较强,如下示例:try { //TODO something transactionManager.commit(status);} catch (Exception e) { transactionManager.rollback(status);

2020-05-11 23:48:43 947

原创 Java命令学习系列(七)——cmd

jcmd是jdk自带的一个神器,能够很方便的对java程序进行profiling。jcmd其实可以替代很多常用的工具,比如jstak,jmap。接下来让我们了解下什么是jcmd,jcmd能够帮助我们定位什么问题?工作中我们如何使用jcmd。从jdk7开始,jcmd就是jdk自带的一个工具。在正确配置了JDK的PATH的情况下,我们可以直接在命令行中执行jcmd:[root@vincent...

2020-05-02 23:53:29 225

原创 线程池补充-04-1

# 线程池[TOC]## 线程池概述* 什么是线程池* 为什么使用线程池* 线程池的优势 * 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 * 第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 * 第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的...

2020-03-28 15:59:22 102

原创 tomcat启动报错ContainerBase.addChildInternal ContainerBase.addChild: start

启动tomcat报下面的错误:我们可以参考:https://blog.csdn.net/Mr_yangzc/article/details/81512939使用maven的test命令找到那个包没有拉取下来:对没有拉取下来的包,进行重新远程拉取...

2020-03-27 12:01:55 1561

原创 查找日志

1、cat命令: 功能:1)显示整个文件。 示例: $ cat fileName 2)把文件串连接后传到基本输出,如将几个文件合并为一个文件或输出到屏幕。 示例: $ cat file1 file2 > file 说明:把档案串连接后传到基本输出(屏幕或加 &...

2020-01-09 11:47:45 213

原创 搭建异常

1、关于导入新项目idea找不到jar包或jdk的问题https://blog.csdn.net/cf_kaifa_999bug/article/details/83304031

2019-12-18 06:08:08 116

原创 zookeeper的简单总结

zookeeper是一个开源的分布式的,为分布式应用提供协调服务的apache,zookeeper=文件系统和通知机制zookeeper的工作机制zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理架构,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,zookeeper就将负责通知已经在zookeeper上注册的那些观察者做出...

2019-12-08 15:09:16 153

原创 springboot在整合的时候遇见的一些坑

1、Multiple Spring Data modules found, entering strict repository configuration mode!错误:2019-05-28 15:28:32.439 INFO main [org.springframework.data.repository.config.RepositoryConfigurationDelega...

2019-12-02 15:21:32 2167

原创 服务追查问题

1、Cannot allocate memory问题,进程数满了的解决办法今天一大早来到公司就发现一台远程服务器的进程满了,无法连接上远程服务器,如下图所示:    出现这种情况,主要是因为进程跑满了,memory被消耗光了,无法为其他的操作,包括vnc操作命令和SSH连接分配内存,我们可以用两个办法:  1、init 6(重启服务器,注意,不是重启tomcat)  大家都知...

2019-11-25 21:27:55 348

原创 Netty网络编程

I/O模型简单的理解,就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通道的性能。Java供支持3种网络编程模型I/O模式:BIO、NIO、AIOBIO:同步兵阻塞(传统阻塞性),服务器实现模式为一个链接一个线程,即客户端有连接请求时服务器就需要开启一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销。Java NIO:同步非阻塞,服务器实现模式为一个线程处理多...

2019-11-25 08:50:57 143

原创 redis缓存穿透、缓存雪崩原因等一些问题

一、缓存穿透缓存穿透:key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。缓存击穿:key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并...

2019-11-19 17:01:13 140

原创 一些名词的含义像TP50、TPS、QPS等

一、TP50、TP90、TP99、TP999TP=Top Percentile,Top百分数,是一个统计学里的术语,与平均数、中位数都是一类。TP50、TP90和TP99等指标常用于系统性能监控场景,指高于50%、90%、99%等百分线的情况。首先给出Google到的答案:The tp90 is a minimum time under which 90% of requests ...

2019-11-18 21:49:50 2723

原创 生成全局唯一id

参考:https://tech.meituan.com/2017/04/21/mt-leaf.html

2019-11-18 09:11:16 196

原创 阅读《Redis深度历险:核心原理和应用实践》的总结-06

一、Redis 安全通信想象这样一个应用场景,公司有两个机房。因为一个紧急需求,需要跨机房读取 Redis 数据。应用部署在 A 机房,存储部署在 B 机房。如果使用普通 tcp 直接访问,因为跨机 房所以传输数据会暴露在公网,这非常不安全,客户端服务器交互的数据存在被窃听的风险。Redis 本身并不支持 SSL 安全链接,不过有了 SSL 代理软件,我们可以让通信数据透 明地得到加密...

2019-11-12 16:34:12 218

原创 阅读《Redis深度历险:核心原理和应用实践》的总结-redis数据结构-05

一、压缩列表Redis 为了节约内存空间使用,zset 和 hash 容器对象在元素个数较少的时候,采用压缩列表 (ziplist) 进行存储。压缩列表是一块连续的内存空间,元素之间紧挨着存储,没有任何冗余空隙。127.0.0.1:6379> zadd programming 01 go 02 python 03 java (integer) 3127.0.0.1:6379&g...

2019-11-12 15:22:24 1173

原创 JDK1.8stream操作

1、distinct()public static void main(String[] args) { List<CommonConfig> commonConfigList = new ArrayList<>(10); for (int i =0;i<10;i++){ commonConfigList....

2019-11-08 11:23:21 416

原创 需要读的书籍和学习的一些网站

要一直学习才ok,坚持学习的苦可以避免,只要不学习逃避就可以了。但是生活的苦,逃无可逃,避无可避。基础:1、《大话数据结构》 2、《计算机操作系统》 3、《计算机组成原理》 4、《计算机网络》《java高并发编程详解》《Redis 深度历险:核心原理与应用实践》《高性能MySQL(第3版)》黄健宏老师写的这本《Redis 设计与实现》...

2019-10-30 17:23:37 152

原创 阅读《Redis深度历险:核心原理和应用实践》的总结-原理-04

一、info命令在使用 Redis 时,时常会遇到很多问题需要诊断,在诊断之前需要了解 Redis 的运行状 态,通过强大的 Info 指令,你可以清晰地知道 Redis 内部一系列运行参数。Info 指令显示的信息非常繁多,分为 9 大块,每个块都有非常多的参数,这 9 个块分 别是:1、Server 服务器运行的环境参数 2、Clients 客户端相关信息 3、Memory 服...

2019-10-21 21:54:52 301

原创 Redisson分布式锁的一些点

1、如何解决死锁问题?Redisson是如何解决死锁问题的?普通利用Redis实现分布式锁的时候,我们可能会为某个锁指定某个key,当线程获取锁并执行完业务逻辑代码的时候,将该锁对应的key删除掉来释放锁。lock->set(key),成功->执行业务,业务执行完毕->unlock->del(key)。根据这种操作和实践方式,我们可以分为下面两个场景:1...

2019-10-20 11:21:35 371

原创 阅读《Redis深度历险:核心原理和应用实践》的总结-原理-03

一、线程 IO 模型Redis 是个单线程程序!也许你会怀疑高并发的 Redis 中间件怎么可能是单线程。很抱歉,它就是单线程,你的 怀疑暴露了你基础知识的不足。莫要瞧不起单线程,除了 Redis 之外,Node.js 也是单线 程,Nginx 也是单线程,但是它们都是服务器高性能的典范。1、Redis 单线程为什么还能这么快?因为它所有的数据都在内存中,所有的运算都是内存级别...

2019-10-17 11:04:12 115

原创 过滤器、拦截器、监听器

一、过滤器(Filter)Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户...

2019-10-11 21:05:01 116

原创 阅读《Redis深度历险:核心原理和应用实践》的总结-02

续接上一篇:https://blog.csdn.net/wojiao228925661/article/details/1024705295、布隆过滤器 讲个使用场景,比如我们在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经看过的内容。问题来了,新闻客户端推荐系统如何实现推送去重的? 你会想到服务器记录了用户看过的所有历史记录,当推荐系统...

2019-10-10 18:14:35 406

原创 阅读《Redis深度历险:核心原理和应用实践》的总结-01

一、基础1、redis的数据结构:String(字符串)、list(列表)、set(集合)、hash(哈希)和zset(有序集合)1.1、String字符串字符串 string 是 Redis 最简单的数据结构。Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据。不同类型的数据结 构的差异就在于 value 的...

2019-10-10 12:37:00 281

原创 redis一些问题

Redis有哪些数据结构?字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub。如果你说还玩过Redis Module,像BloomFilter,RedisSearch,Redis-ML,面试官得眼睛就开始发亮了。使用过Redis分布式锁么,它是...

2019-10-09 20:58:49 113

原创 mac版安装软件

1、安装mysql参考:https://www.cnblogs.com/myxq666/p/7787744.html2、安装redis:https://www.cnblogs.com/DeepInThought/p/10704426.html

2019-10-08 11:26:30 203

原创 数据结构学习-01

数据结构数据结构包含:线性结构和非线性结构1、线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系 2、线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的 3、链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点存放数据元素以及相邻元素的地址信息 4、线性结构常见的有:数组、队列、链表和栈...

2019-09-17 02:00:57 81

转载 Kafka-最详细原理总结

KafkaKafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Li...

2019-09-15 16:22:52 208

原创 kafka的消费者

kafka消费者1、消费方式consumer采用pull(拉)模式从broker中读取数据。push(推)模式很难适应消费速度不同的消费者,因为消息发送速率是由broker决定的。它的目标是尽可能以最快速度传递消息,但是这样很容易造成consumer来不及处理消息,典型的表现就是拒绝服务以及网络堵塞。而pull模式则可以根据consumer的消费能力以适当的速率消费消息。pull模...

2019-09-15 16:05:36 7755

原创 kafka的一些简单操作

kafka搭建集群,我这里就不写了https://www.cnblogs.com/wangxiaoheng/articles/10000791.html我的环境是搭建了3台kafka的集群:下面是kafka的一些命令操作:一、使用./kafka-topics.sh命令1、使用下面的命令可以查看,有那些命令./kafka-topics.sh --list --zook...

2019-09-15 03:43:30 720

原创 Linux-find命令详解

参考:https://blog.csdn.net/l_liangkk/article/details/81294260

2019-09-03 20:46:55 470

原创 linux-grep详解

grep强大的文本搜索工具补充说明grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。选项-a --text # 不要忽...

2019-09-03 18:32:50 441

MySQL面试必看,绝对保值

MySQL 常见的面试题,应对面试,也可以总结知识点用。并且里面介绍了一些关于优化.

2018-08-23

OpenLDAP是一个树形结构的数据库

OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中,

2018-06-01

Web端RSA加密机密库包含RSA.js Barrett.js BigInt.js JavaScript文件,直接解压即可使用

RSA加密脚本 JavaScript 参考:Blackberry10 使用js+HTML5开发 RSA加密解密时遇到的问题:BB10端使用js加密与解密, 服务器端使用加密与解密 1,加密非常的简单代码机会上没怎么修改,另外js加密可能出现的问题在BB10 AES加密中已经说过,js RSA加密需要导入3个js文件 分别是Barrett.js,BigInt.js,RSA.js

2018-06-01

redis安装集群用redis-3.0.0.gem

redis-3.0.0.gem 执行gem install redis /usr/local/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError) from /usr/local/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' from src/redis-trib.rb:25:in `&lt;main&gt;'

2018-06-01

kafka的安装包

kafka的安装包,kafka消息队列的安装包,kafka消息队列的安装包,

2018-05-31

数据库建表工具EZDML

建表的工具,是一个数据库建表的,很好使用的哦,需要的请下载 建表的工具,是一个数据库建表的,很好使用的哦,需要的请下载 建表的工具,是一个数据库建表的,很好使用的哦,需要的请下载

2018-05-31

空空如也

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

TA关注的人

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