自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis一主二从Sentinel监控配置(保姆级教程),linux系统教程

| IP地址 | 节点角色 | 端口 || — | — | — || 192.168.211.104 | Redis Master/ Sentinel | 6379/26379 || 192.168.211.105 | Redis Slave/ Sentinel | 6379/26379 || 192.168.211.106 | Redis Slave/ Sentinel | 6379/26379 |​关闭防火墙:由于是自己学习使用,我们不针对专门的端口最策略(在公司这一块有专门的运维同时来做

2021-11-13 15:22:28 1860

原创 Redis-数据库、键过期的实现,java程序设计实用教程第五版

Redis 是一个 k-v 存储的键值对数据库。其中字典 dict 保存了数据库中的所有键值对,这个地方叫做 keyspace 直译过来就是“键空间”。所以我们就可以这么认为,在 redisDb 中我们使用 dict(字典)来维护键空间。keyspace 的 kay 是数据库的 key,每一个key 是一个字符串对象。注意不是字符串,而是字符串对象。keyspace 的 value 是数据库的 value,这个 value 可以是 redis 的,字符串对象,列表对象,哈.

2021-11-13 15:18:53 265

原创 Redis(二十五):Sentinel——Redis的哨兵模式原理,java集合详解视频

Sentinel实现Redis高可用性的一个解决方案首先我们来理解什么是高可用性高可用性通常来描述一个系统的平均无故障时间,即服务器正常对外提供服务的时间,通过减少服务器的停工时间Sentinel(哨岗、哨兵)是Redis的高可用性的解决方案之一。由一个Sentinel实例组成的Sentinel系统可以监视整体来说是由一个或者多个Sentinel实例去组成的Sentinel系统,该系统可以监视多个任意多个主从服务器(一旦发现主服务器宕机了,就要在其属下的从服务器进行选举,充当主服务器),当被监视的

2021-11-13 15:17:12 1126

原创 Redis 笔记之 Java 操作 Redis(Jedis),java中高级面试宝典

(TTL 以秒为单位)可用版本: >= 2.6.0返回值: 当 key 不存在时,返回 -2 。当 key 存在但没有设置剩余生存时间时,返回 -1 。否则,以毫秒为单位,返回 key 的剩余生存时间。注意 : Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。RANDOMKEY 指令语法 : RANDOMKEY作用 : 从当前数据库中随机返回(不删除) 一个 key 。可用版本: >= 1.0

2021-11-13 15:15:39 676

原创 redis 发布订阅 性能测试,复盘上次Redis缓存雪崩事故

主节点3 订阅configserver频道127.0.0.1:6379> subscribe configserverReading messages… (press Ctrl-C to quit)“subscribe”“configserver”(integer) 1从节点1 订阅configserver频道从节点2 订阅configserver频道从节点3 订阅configserver频道127.0.0.1:6379> subscribe configser

2021-11-13 15:13:26 1445

原创 Redis 中 RDB 和 AOF 持久化有啥区别?看这儿,你就懂了,java并发编程实战读后感

GitHub地址:https://github.com/abel-max/Java-Study-Note/tree/master概念======================================================================Redis 是内存数据库,数据存储在内存中,一旦服务器进程退出,数据就丢失了,所以 Redis 需要想办法将存储在内存中的数据持久化到磁盘。Redis 提供了两种持久化功能:RDB (Redis Database):生成 R

2021-11-13 15:11:35 299

原创 ReactJS实战之组件和Props详解,java中级开发工程师面试题

补全属性:function Hello(props) {return 这是Hello组件 - {props.name} - {props.age} - {props.gender}}ES6 中应该这么写:ReactDOM.render(123<Hello {…me}>, document.getElementById('example'));注意这些 props 是只读的哦:function Hello(props) {props.name = ‘javascript’

2021-11-13 15:09:31 816

原创 【图解计算机网络】物理层和MAC层的亲密关系,ubuntulinux基础教程

Hub采取广播模式,若每一台电脑发出的包,局域网内每个电脑都能收到,那就麻烦了。必须解决如下问题(MAC层要解决的):包发给谁?谁接收?这里用到一个物理地址 - 链路层地址。但因该层主要解决媒体接入控制,所以常被称为MAC地址。解决这个问题牵扯该层的网络包格式。比如以太网,该层的最开始,就是目标MAC地址、源MAC地址。大部分的类型是IP数据包,然后IP里面包含TCP、UDP,以及HTTP等。有了目标MAC地址,数据包在链路上广播,MAC的网卡才能发现,这个包是给它的。MAC的网卡接收这个包

2021-11-12 11:49:21 358

原创 【Web前端】5分钟掌握画布元素的使用,2021京东Java面试真题

使用画布元素,快速绘制一个中小学教学使用的工具,效果如下:步骤要使用画布实现上述的图形效果,需要掌握画布的下列API的使用方法:2.1 直接绘制方法2.2 圆形绘制方法2.3 文字绘制方法同时,还要掌握在图形绘制时图形和文字的颜色配制、线条闭合路径设置和图形的填充及描绘的过程。过程3.1 在页面中添加一个指定宽高和边框的画布元素,并通过id号获取到它的上下文环境对象,保存在变量cxt中,用于后续代码的使用,代码如下:![在这里插入图片描述](https://img-blog.cs

2021-11-12 11:47:33 332

原创 【SpringMVC笔记】Ajax 入门,dubbo和zookeeper面试

/encodingorg.springframework.web.filter.CharacterEncodingFilterencoding/* applicationContext.xml:记得加 静态资源过滤 和 注解驱动配置。<?xml version="1.0" encoding="UTF-8"?><beans xmlns=“http://www.springframework.org/schema/beans”xmlns:xsi=“http://ww

2021-11-12 11:45:53 1723

原创 【Spring Cloud 8】熔断与限流Sentinel,java架构师百度云

资源是Sentinel的关键概念。它可以是java应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。只是通过Sentinel API定义的代码,就是资源,能够被Sentinel保护起来,大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来表示资源。围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。Sentinel中调用SphU或者SphO【一线大厂Java面试题解析+后端开.

2021-11-12 11:44:09 380

原创 MyBatis标签详解,mybatis自动映射原理

useCache=“true”timeout=“10000”fetchSize=“256”statementType=“PREPARED”resultSetType=“FORWORD_ONLY”三、resultMap 标签的属性信息=================================================================================   四、insert 标签的属.

2021-11-12 00:13:14 170

原创 MyBatis初级实战之六:一对多关联查询,java开发视频网站

多表关联查询的实现有联表和嵌套查询两种,它们的差异在Mybatis中体现在resultMap的定义上:联表时,resultMap内使用collection子节点,将联表查询的结果映射到关联对象集合;嵌套时,resultMap内使用association子节点,association的select属性触发一次新的查询;上述两种方式都能成功得到查询结果,接下来逐一尝试;联表查询本篇继续使用上一篇中创建的子工程relatedoperation;实体类UserWithLogs.

2021-11-12 00:11:15 100

原创 MyBatis Generator,帮你少写50%代码的自动化工具,2021年Java网络编程总结篇

org.mybatis.generatormybatis-generator-maven-plugin1.3.7truetrue在resources目录下放配置文件,我这里放了2个文件,datasource.properties和generatorConfig.xml,其中datasource.properties中放了一个数据库的配置,如用户名和密码之类的,generatorConfig.xml引用datasource.properties其中的配置,剩下的文件夹和类都是配置好后...

2021-11-12 00:09:31 288

原创 MongoDB入门操作汇总,java开发从入门到实战pdf

options是可选参数,包括内存及索引的配置展示库下所有集合show collections向集合插入一条数据db.[collection_name].insertOne({“key”:“value”})db.[collection_name].insert({“key”:“value”})向集合插入多条数据db.[collection_name].insertMany([{“key”:“value”},{“key”:“value”}…])删除集合中的数据Scene.1db.[coll

2021-11-12 00:07:07 354

原创 Linux系统:第九章:CentOS7安装,吹爆这份HTTP顶级教程

![](https://img-blog.csdnimg.cn/201908112310579.png?x-oss-process=image/watermark【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】浏览器打开:qq.cn.hn/FTf 免费领取,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2phdmFfd3hpZA==,siz...

2021-11-12 00:00:49 709

原创 linux在shell中获取时间,rabbitmq原理面试

获取明天的日期date -d next-day +%Y%m%d获取昨天的日期date -d last-day +%Y%m%d获取上个月的年和月date -d last-month +%Y%m获取下个月的年和月date -d next-month +%Y%m获取明年的年份date -d next-year +%Y下面是一些date参数的说明和一些例子名称 : date使用权限 : 所有使用者使用方式 : date [-u] [-d datestr] [-s datestr] [–ut

2021-11-11 23:59:01 98

原创 kubebuilder实战之五:operator编码,神策数据java面试

新建名为elasticweb的文件夹,在里面执行以下命令即可创建名为elas【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】浏览器打开:qq.cn.hn/FTf 免费领取ticweb的项目,domain为com.bolingcavalry:go mod init elasticwebkubebuilder init --domain com.bolingcavalry然后是CRD,执行以下命令即可创建相关资源:kubebuilder create.

2021-11-11 23:57:21 443

原创 Kafka存储(为什么Kafka使用磁盘作为存储介质?,dubbo+zookeeper的工作原理

segment文件命名规则:partion全局的第一个segment从0开始,兴许每一个segment文件名称为上一个segment文件最后一条消息的offset值。数值最大为64位long大小。19位数字字符长度,没有数字用0填充。itcast@Server-node:/mnt/d/kafka_2.12-2.2.1$ ll /tmp/kafka/log/heima-0/total 20480drwxr-xr-x 1 itcast sudo 512 Aug 29 09:38 ./drwxrwx

2021-11-11 23:55:37 186

原创 二、docker 镜像容器常用操作(让我们用docker 溜得飞起)

docker pull详细的参数使用可以通过docker pull --help来查看比如我们现在下载一个nginx的景象docker pull nginx默认会下载latest 的镜像,表示下载最新的镜像。也可以下载稳定版本的,或者下载指定版本的。docker pull nginx:stabledocker pull nginx:1.16查询镜像我们镜像下载下来了,我们怎么查看我们电脑上有哪些镜像呢?其实上面我已经用了docker image ls或者docker images

2021-11-10 21:46:29 86

原创 事务消息应用场景、实现原理与项目实战(附全部源码),SpringBoot集成Redis集群

其核心设计理念:应用程序开启一个数据库事务,进行数据库操作,并且在事务中发送一条PREPARE消息,PREPARE消息发送成功后通知应用程序记录本地事务状态,然后提交本地事务。RocketMQ在收到类型为PREPARE的消息时,首先备份消息的原主题与原消息消费队列,然后将消息存储在主题为RMQ_SYS_TRANS_HALF_TOPIC的消息队列中,故PREPARE的消息是不会被客户端消费的。Broker消息服务器开启一个定时任务处理RMQ_SYS_TRANS_HALF_TOPIC中的消息,

2021-11-10 21:44:56 479

原创 了解一下?Java中最大的数据结构:LinkedHashMap,linux编程基础课后答案

如果是默认的,则是按照添加顺序,即 accessOrder 默认是 false。源码实现如果看 LinkedHashMap 内部源码,会发现,内部确实维护了一个链表:/**双向链表的头,最久访问的*/transient LinkedHashMap.Entry<K,V> head;/**双向链表的尾,最新访问的*/transient LinkedHashMap.Entry<K,V> tail;而这个 LinkedH

2021-11-10 21:43:23 252

原创 为什么说“大公司的技术顽疾根本挽救不了”?,java大数据开发面试题

在很多开发者看来,提升敏捷性是解决技术难题的不二法则。但本文的作者作为一家有着一百多年历史的大公司的技术援助顾问却认为,由于历史遗留、文化隔阂等原因决定:在大公司,所谓的敏捷性开发其实并不是人们以为的管用。为什么他会这么说呢?一起来看看。以下为译文:在硅谷流传着很多油嘴滑舌、哗众取宠的肤浅言论,这些言论都是关于开发过程中保持敏捷的重要性的。关于引入敏捷技术的容易性,以及哪些问题可以通过敏捷技术解决,有太多的假设。在这篇文章中,我试图纠正其中的一些错误看法。在过去的20年里,我曾经是三家初创公司的技

2021-11-10 21:41:10 1668

原创 为什么你的insert就死锁了,springboot插件原理

分析兼容矩阵可以得出如下几个结论:INSERT操作之间不会有冲突。GAP,Next-Key会阻止Insert。GAP和Record,Next-Key不会冲突Record和Record、Next-Key之间相互冲突。已有的Insert锁不阻止任何准备加的锁。5. 自增锁(AUTO-INC Locks)AUTO-INC锁是一种特殊的表级锁,发生涉及AUTO_INCREMENT列的事务性插入操作时产生。官方解释如下3:An AUTO-INC lock is a special table-

2021-11-10 21:38:11 922

原创 为什么HashMap的加载因子一定是0,java教程视频网

我们知道,HashMap 是通过拉链法来解决哈希冲突的。为了减少哈希冲突发生的概率,当 HashMap 的数组长度达到一个临界值的时候,就会触发扩容(可以点击链接查看 HashMap 的扩容机制),扩容后会将之前小数组中的元素转移到大数组中,这是一个相当耗时的操作。这个临界值由什么来确定呢?临界值 = 初始容量 * 加载因子一开始,HashMap 的容量是 16:static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 1

2021-11-10 21:36:28 65

原创 为了进阿里拿Offer,逼得我两个月吃透了这些Java高级面试题解析,终于上岸

问题一:Java中的线程池是如何实现的?问题二:创建线程池的几个核心构造参数?问题三:线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗?问题四:既然提到可以通过配置不同参数创建出不同的线程池,那么Java中默认实现好的线程池又 有哪些呢?请比较它们的异同 。问题五:如何在Java线程池中提交线程?1.4 Java 内存模型相关问题(六问)问题一:什么是Java的内存模型,Java中各个线程是怎么彼此看到对方的变量的?问题二:请谈谈volatil..

2021-11-10 21:34:10 151

原创 Redis集群生产环境源码安装,轻松拿到了阿里Java高级开发工程师的offer

vim /etc/security/limits.d/20-nproc.conf   修改*  soft   nproc  120002.在/etc/sysctl.conf中加入 net.core.somaxconn=511 ,然后执行 sysctl ‐p 生效,解决默认设 置为一个较低的值128的警告。overcommit_memory 设置为0,在低内存环境下的后台保存可能失败。在文件 /etc/sysctl.conf 中添 加 vm.

2021-11-09 13:38:13 86

原创 redis在微服务领域的贡献,阿里专家原创

dubbo.registry.address=redis://127.0.0.1:6379注册上来的数据是这样,类型是hash/dubbo/service/{service}/service/{category}如/dubbo/com.newboo.sample.api.DemoService/consumers/dubbo/com.newboo.sample.api.DemoService/providershash数据结构下保存的key是注册上来的url,value是过期时间127.0.0

2021-11-09 13:36:14 75

原创 Redis分布式锁的原理以及如何续期,rabbitmq延时队列原理

给大家解释一下,第一段if判断语句,就是用“exists myLock”命令判断一下,如果你要加锁的那个锁key不存在的话,你就进行加锁。如何加锁呢?很简单,用下面的命令:hset myLock8743c9c0-0795-4907-87fd-6c719a6b4586:1 1通过这个命令设置一个hash数据结构,这行命令执行后,会出现一个类似下面的数据结构:上述就代表“8743c9c0-0795-4907-87fd-6c719a6b4586:1”这个客户端对“myLock”这个锁key完成了加锁。

2021-11-09 13:34:31 258

原创 redis事务,linux高性能服务器编程百度云

3)入队错误回滚127.0.0.1:6379> MULTIOK127.0.0.1:6379> set key1 1QUEUED127.0.0.1:6379> HSET key2 1(error) ERR wrong number of arguments for ‘hset’ command127.0.0.1:6379> SADD key3 1QUEUED127.0.0.1:6379> EXEC(error) EXECABORT Transaction d

2021-11-09 13:32:06 141

原创 Redis-消息队列的三种方案(List、Streams,安利10个让你爽到爆的IDEA必备插件

我们都知道消息模型有两种点对点:Point-to-Point(P2P)发布订阅:Publish/Subscribe(Pub/Sub)List 实现方式其实就是点对点的模式,下边我们再看下 Redis 的发布订阅模式(消息多播),这才是“根正苗红”的 Redis MQ"发布/订阅"模式同样可以实现进程间的消息传递,其原理如下:"发布/订阅"模式包含两种角色,分别是发布者和订阅者。订阅者可以订阅一个或者多个频道(channel),而发布者可以向指定的频道(channel)发送消息,所有订阅此频道

2021-11-09 13:30:07 913

原创 redis+springboot生成图片验证码,mysql基础知识

//使用到Algerian字体,系统里没有的话需要安装字体,字体只显示大写,去掉了1,0,i,o几个容易混淆的字符public static final String VERIFY_CODES = “23456789ABCDEFGHJKLMNPQRSTUVWXYZ”;public static final String PHONE_VERIFY_CODES = “0123456789”;private static Random random = new Random();/**使用系统默认字

2021-11-09 13:27:54 133

原创 RabbitMQ的高级特性和消息补偿机制,java高级面试

死信队列,英文缩写:DLX 。Dead Letter Exchange(死信交换机),当消息成为Dead message (死信)后,可以被重新发送到另一个交换机,这个交换机就是DLX。#####消息成为死信的三种情况:1.队列消息长度到达限制;2.消费者拒接消费消息,并且不把消息重新放入原目标队列;3.原队列存在消息过期设置,消息到达超时时间未被消费;#####死信队列和死信交换机:死信队列和死信交换机与正常的队列和交换机一模一样, 没有任何区别 !!如何实现队列与死信交换机绑定 , 给队

2021-11-09 13:25:48 1663

原创 Openstack架构构建及详解(7)--Cinder组件,mybatis原理

MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder’@‘localhost’ IDENTIFIED BY ‘CINDER_DBPASS’;Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder’@’%’ IDENTIFIED BY ‘CINDER_DBPASS’;Query OK,

2021-11-09 13:24:00 570

原创 OpenKruise v0,迄今为止讲解的最详细的一篇

这来自于云原生架构和过去传统基础基础设施的差异性。在传统的物理机、虚拟机时代,一台机器上往往会部署和运行多个应用的实例,并且机器和应用的生命周期是不同的;在这种情况下,应用实例的重启可能仅仅是一条 systemctl 或 supervisor 之类的指令,而无需将整个机器重启。然而,在容器与云原生模式下,应用的生命周期是和 Pod 容器绑定的;即常规情况下,一个容器只运行一个应用进程,一个 Pod 也只提供一个应用实例的服务。​基于上述的限制,目前原生 Kubernetes 之下是没有 API 来为上层

2021-11-09 13:22:20 661

原创 NIO之缓冲区【基础内容】,java从入门到精通第四版答案

缓冲区Buffer=======================================================================1.缓冲区介绍一个Buffer对象是固定数量的数据的容器。其作用是一个存储器,或者分段运输区,在这里数据可被存储并在之后用于检索。缓冲区可以写满和释放。对于每个非布尔原始数据类型都有一个缓冲区类。尽管缓冲区作用于它们存储的原始数据类型,但缓冲区十分倾向于处理字节。缓冲区的工作与通道紧密联系。通道是 I/O 传输发生时通过的入口,而缓冲区是这

2021-11-09 13:20:36 75

原创 Redis 集群设计方案,java虚拟机原理学会了有啥用

2.1、主从模式2.1.1、介绍主从模式是三种模式中最简单的,在主从复制中,数据库分为两类:主数据库(master)和从数据库(slave)。其中主从复制有如下特点:主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库从数据库一般都是只读的,并且接收主数据库同步过来的数据一个master可以拥有多个slave,但是一个slave只能对应一个masterslave挂了不影响其他slave的读和master的读和写,重新启动后会将数据从master同步过来

2021-11-08 13:33:08 104

原创 RabbitMQ的安装,Spring中经典的9种设计模式,一定要记牢

主流的消息队列=====================================================================目前市场上主流的消息队列有4种:ActiveMQRabbitMQRocketMQKafkaRabbitMQ并发性能好,而且部署相对容易,是目前很多企业使用的消息队列。安装RabbitMQ===================================================================

2021-11-08 13:31:09 1132

原创 RabbitMQ不讲武德,发个消息也这么多花招,java入门必看书籍

===============================================================================RabbitMQ 中提供了3种发送消息的路由方式。直连 Direct 模式通过指定一个精确的绑定键来实现 Exchange(交换机) 和 Queue(消息队列) 之间的绑定,也就是说,当创建了一个直连类型的交换机时,生产者在发送消息时携带的路由键(routing key),必须与某个绑定键(binding key)完全匹配时,这条消息才会从交换

2021-11-08 13:29:26 253 1

原创 Oracle 常用SQL语句大全(精),java架构面试题spring原理

exp demo/demo@orcl buffer=1024 file=d:\back.dmp full=y**demo:**用户名、密码buffer: 缓存大小file: 具体的备份文件地址full: 是否导出全部文件ignore: 忽略错误,如果表已经存在,则也是覆盖将数据库中system用户与sys用户的表导出exp demo/demo@orcl file=d:\backup\1.dm

2021-11-08 13:27:01 81

空空如也

空空如也

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

TA关注的人

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