自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 sentinel

sentinel、zipkin、sleuth

2022-09-06 09:44:37 219 1

原创 seata分布式事务

seata

2022-08-14 17:37:18 421

原创 Feign远程调用丢失请求。。

Feign远程调用丢失请求

2022-08-06 20:29:24 709

原创 OAuth2.0

OAuth是一个关于授权(authorization)的开放网络标准

2022-07-17 22:43:51 263

原创 Redisson

Redisson - 是一个高级的分布式协调Redis客服端,能帮助用户在分布式环境中轻松实现一些Java的对象,Redisson、Jedis、Lettuce 是三个不同的操作 Redis 的客户端,Jedis、Lettuce 的 API 更侧重对 Reids 数据库的 CRUD(增删改查),而 Redisson API 侧重于分布式开发...

2022-06-26 23:43:54 180

原创 MongoDB

MongoDB简介:是一个开源、高性能、无模式的文档型数据库,当初设计就是用于简化开发和方便扩展,是nosql数据库产品的一种,是最像关系型数据库的非关系型数据库它支持的数据结构非常松散,是一种类似于JSON的格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活MongoDB中的记录是一个文档,它是由字段和值对组成的数据结构,MongoDB文档类似于JSON对象,即一个文档认为是一个对象,字段的数据类型是字符型,它的值除了使用基本的类型外,还可以包括其他文档、普通数组和文档数组Mongo

2022-05-03 17:53:14 1210

原创 MongoDB副本集

副本集-Replica Sets副本集的两种类型和三种角色两种类型:主节点类型:数据操作的主要连接点,可读写次要节点类型:数据冗余备份节点,可以读或选举三种角色:主要成员:主要接收所有写操作,就是主节点副本成员:从主节点通过复制操作以维护相同的数据集,即备份数据,不可写操作,但可以读操作,是默认的一种从节点类型仲裁者:不保留任何数据的副本,只有投票选举作用(也可以同时是次要节点类型)搭建1.创建主节点建立存放数据和日志的目录:mkdir -p /mongodb/replica_se

2022-05-03 17:52:59 1241

原创 MySQL索引知识

B树和B+树的区别:B树的特点:1.节点排序 2.一个节点可以存多个元素,多个元素之间也排序 B+树的特点:1.拥有B树的特点 2.叶子节点之间有指针3.非叶子结点上的元素在叶子节点上都冗余了,也就是叶子节点中存储了所有的元素,并且排好序mysql使用的是B+树,因为索引是用来加速查询的,而B+树通过对数据进行排序所以是可以提高查询效率的,然后通过一个节点可以存储多个元素,从而可以使得B+树的高度不会很高,在mysql中一个inndb页就是一个B+树节点,一个inndb页默认16kb,所

2022-04-17 16:35:49 114

原创 java设计模式

含义:设计模式的本质是面向对象设计原则的实际应用,是对类的封装,继承,多态以及类的关联关系和组合关系的充分理解优点:可以提高程序员的思维能力、编程能力和设计能力使程序设计更加标准化,代码编制更加工程化,使软件开发效率大大提高,从而缩短软件的开发周期使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强OOP七大原则:开闭原则:对扩展开放,对修改关闭里氏替换原则:继承必须确保超类所拥有的性质在子类依然成立依赖倒置原则:要面向接口编程,不要面向实现编程单一职责原则:控制类的粒度

2022-03-20 22:53:31 258

原创 juc并发编程3(原理小结)

原理之wait/notify:owner线程发现条件不满足,调用进入wait方法,即可进入WaitSet变成WAITING状态BLOCKED和WAITING的线程都处于阻塞状态,不占用CPU时间片BLOCKED线程会在owner线程释锁时唤醒WAITING线程会在owner线程调用notify或notifyAll时唤醒,但唤醒后并不意味着立刻获得锁,仍需要进入EntryList 重新竞争...

2021-11-01 17:17:45 87

原创 juc并发编程2(原理小结)

thread和runnable的关系:runnable更容易与线程池等高级API结合用runnable让任务更容易脱离了thread的继承体系,更加灵活Monitor锁:每个java对象都可以关联一个monitor对象,如果使用synchronized给对象上锁(重量级)之后,该对象的Mark Word中就会被设置指向monitor对象的指针monitor结构如下:刚开始的monitor中的owner为null当thread-2执行synchronized(obj) 就会将monitor的

2021-10-29 17:30:01 70

原创 Redis专题详细教程(四)

缓存穿透用户想要查询一个数据,发现redis内存数据库中没有,也就是缓存没有命中,于是向持久层数据库查询,发现也没有,于是本次查询失败,当用户很多的时候,缓存都没有命中(秒杀),于是都请求了持久层的数据,这会给持久层造成很大的压力,这时候就相当于缓存穿透!解决方案:布隆过滤器,是一种数据结构,对所有可能查询的参数以hash存储,在控制层进行校验,不符合则丢弃,从而避免了对底层存储系统的查询压力但是这种方案会存在两个问题:1.如果空值能够被缓存起来,这就意味着,需要更多的空间存储更多的键,因

2021-07-28 23:18:48 95

原创 Redis专题详细教程(三)

Redis发布订阅Redis发布订阅是一种消息通信模式,发送者发送消息,订阅者接收消息。微信,微博,关注系统Redis客户端可以订阅任意数量的频道通过PUBLISH命令向订阅者发送消息,redis-server会使用给定的频道作为键,在它所维护的channel字典中查找记录了订阅这个频道的所有客户端的链表,遍历这个链表,将消息发布给所有的订阅者pub/Sub从字面理解就是发布与订阅,在redis中,你可以设定对某一个key值进行消息发布以及消息订阅,当一个key值上进行了消息发布后,所有订阅

2021-07-28 00:22:51 52

原创 Redis专题详细教程(二)

Redis持久化:RDB触发机制:1.save的规则满足的情况下,会自动触发rdb规则2.执行flushall命令,也会触发rdb规则3.退出redis,也会产生rdb文件备份就会自动生成一个rdb文件dump.rdb恢复rdb文件,只需要将dump.rdb文件放到redis 的启动目录(config get dir命令查看,一般为/usr/local/bin)下就行了,redis启动时会自动检查dump.rdb恢复其中的数据优点:1.适合大规模的数据恢复2.对数据的完整星要求不高

2021-07-25 20:48:25 55

原创 Redis专题详细教程(一)

NoSQL特点:解耦!1.方便扩展(数据之间没有关系,很好扩展!)2.大数据高性能(Redis一秒写8万次,读取11万次,NoSQL的缓存记录数,是一种细粒度的缓存,性能会比较高!)3.数据类型是多样型的(不需要事先设计数据库,随取随用,如果是数据量特别大的表,很多人就无法设计了)3V+3高:大数据时代的3V,主要描述的是: 1.海量volume 2.多样variety 3.实时velocity大数据时代的3高:主要是对程序的要求 1.高并发 2.高性能 3.高可扩....

2021-07-25 17:24:36 104 1

原创 Docker技术03

DockerFileDockerFile介绍:dockerfile是用来构建docker镜像的文件!命令参数脚本!构建步骤:1.编写一个dockerfile文件2.docker build构建成一个镜像文件3.docker run运行镜像4.docker push 发布镜像(DockerHub,阿里云镜像仓库)...

2021-05-11 09:16:04 66 1

原创 Docker技术02

容器数据卷:容器之间可以有一个数据共享的技术,Docker中产生的数据,同步到本地,这就是卷技术!目录的挂载,将我们的容器内的目录,挂载到Linux上面。 容器的持久化和同步操作! 容器间也是可以数据共享的!...

2021-05-08 18:15:09 63

原创 Docker技术01

Docker是基于GO语言开发的 文档地址:https://docs.docker.com/ Docker文档是超级详细的!虚拟机技术的缺点:1.资源占用十分多2.冗余步骤多3.启动很慢容器化技术:容器内的应用直接运行在宿主机上的内容,容器是没有自己的内核的,也没有虚拟出我们的硬件,所以轻便;每个容器都是相互隔离的,每个容器内都有属于自己的文件系统,互不影响。镜像(image):docker镜像就好比一个模板,可以通过这个模板去创建容器服务,tomcat镜像===》run===》tomc

2021-05-07 14:52:57 65

原创 springboot整合mybatisplus使用pagehelper无法启动

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'loginController': Unsatisfied dependency expressed through field 'roleMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyExcep

2021-04-26 13:59:53 725

原创 JUC并发编程

并发编程:并发(多线程操作同一个资源)、并行(多个线程同时进行)并发编程的本质:充分利用CPU资源线程有几个状态:NEW新生、RUNNABLE运行、BLOCKED阻塞、WAITING等待、TIMED_WAITING超时等待、TERMINATED终止wait和sleep的区别:1.来自不同的类(sleep——>Thread,wait——>Object)2.关于锁的释放,sleep休眠了不释放锁,wait释放锁3.wait必须在同步代码块中,sleep可以在任何地方4.wait不

2021-04-20 11:01:50 66

原创 java多线程

普通方法调用和多线程调用:

2021-04-12 15:14:41 78 1

原创 谈谈JVM

双亲委派机制:APP——>EXC——>BOOT(最终执行)1.类加载器收到类加载的请求2.将这个请求向上委托给父类加载器去完成,一直向上委托,直到启动器加载类3.启动加载器检查是否能够加载当前这个类,能加载就结束,使用当前的加载器,否则抛出异常,通知子加载器进行加载4.重复步骤3...

2021-04-08 16:55:06 87 3

原创 springcloud alibaba微服务案例

springcloud alibaba微服务体系的组成:服务发现 - Nacos服务调用 - OpenFeign/Dubbo/gRPC路由网关 - Gateway配置中心 - Nacos消息驱动 - RocketMQ流量控制 - Sentinel分布式事务 - SEATA分布式任务调度 - SchedulerX分布式存储 - OSSNACOS作用:服务发现和服务健康检测动态配置服务动态dns服务服务及元数据管理...

2021-03-25 15:09:49 430

原创 Nginx使用

nginx常用做反向代理:相对于服务端而言,为请求提供一个统一的入口,客户端向这个代理服务器发送一个请求,而代理服务器对这些请求转发到目标服务器,这样客户端就不止到请求的是哪个服务器了,这就是反向代理。nginx安装:CentOS:sudo yum install nginxnginx常用命令:nginx -s reload:修改配置后重新加载生效nginx -s reopen:重新打开日志文件nginx -t -c /path/nginx.conf:测试nginx配置文件是否正确nginx

2021-03-22 22:01:30 239

原创 redis使用问题

缓存穿透:高并发条件下,多个用户同时判断缓存为空从而查询数据库,不查询缓存。解决方案:使用线程同步锁,双重检查(锁外查询缓存,如果为空就进入同步锁,锁内也查询缓存进行判断)哨兵模式:配置多台redis服务器,当主服务器宕机后,其他哨兵检测到主服务器不可用后,就会进行一次投票来切换主服务器。...

2021-03-22 22:01:13 40

原创 netty学习

java io模型比较:阻塞式IO就是发起调用之后,就一直阻塞,在等着,直到整个IO完成。在这个过程当中,进程是不能干任何事情的。都在等待。非阻塞式IO就是,进程会主动去问好了没,好了没,好了没。。。直到得到回复好了,然后发起读请求,把数据从内核空间拷贝到用户空间。这个过程是阻塞的。IO复用模型,就是每次都查看多个结果好了没,如果发现n个当中有一两个有了结果,就返回,有结果的这些开始拷贝。信号驱动式IO模型,就是等数据拷贝到内核空间再通知,前面这段时间可以做别的事情,等内核空间准备好了,通知,再把数

2021-03-22 22:00:41 27

原创 elasticSearch

elasticSearch1.下载elasticSearch,双击elasticSearch.bat启动,访问localhost:9200得到如下信息:{“name” : “DESKTOP-NISBGPH”,“cluster_name” : “elasticsearch”,“cluster_uuid” : “XnQoQ8EVScu0FdTqc0fstw”,“version” : {“number” : “7.6.1”,“build_flavor” : “default”,“build_ty

2021-03-22 22:00:04 82

原创 redis知识点补充

redis持久化机制:**RDB持久化:**单独创建一个与当前进程一模一样的子进程来进行持久化,会先将数据写入一个临时文件中,等到持久化再用这个临时文件替换上次持久化的文件,整个过程中主进程不进行io操作,确保了及其高的性能。默认为开启状态,注释配置文件save…配置来关闭rdb持久化,主从复制集群状态关不掉。**AOF持久化:**配置文件中指定appendonly 值,可以有三种值,no表示等操作系统进行数据缓存到磁盘(快,持久化没保证),always表示同步持久化,每次数据发生变更时会立刻记录到磁盘

2021-01-12 20:41:50 41

原创 velocity模板引擎学习(springboot整合)

Velocity 是一个基于Java的模板引擎(template engine). 它可以让视图的设计者在web 页面中引用java 代码中定义的数据对象和命令。项目架构:注意:springboot版本使用1.4.7版的,因为高版本的springboot不支持velocity了添加依赖:在pom.xml文件中添加对web项目支持和Velocity整合的依赖org.springframework.bootspring-boot-starter-weborg.springframework

2020-07-22 17:25:07 2923

原创 java基础面试题及答案

final、finally与finalize的区别final可以修饰类,方法和变量,表示该类不能被其他类继承,该方法不能被被重写,该变量不能修改(即为常量)finally是异常处理的一部分,表示这段语句一定会被执行,经常被用作释放资源的时候使用每个对象都有finalize这个方法,该方法在对象被收回时调用,烦是new出来的对象,gc都能回收,使用super.finalize()调用,一个对象只会被调用一次。int和Integer有什么区别?integer是int的包装类型,int是java的一种基

2020-06-26 13:33:43 88

原创 rabbitMQ起飞

rabbitMQ起飞可视化页面默认url:localhost:15672在linux中先配置下载地址,避免安装错误超级管理员用户:guest/guest在开发过程中一般不会用超级管理员用户,需要创建管理员用户:Admin——>Add a user (配置用户名,密码,角色)virtual hosts管理:相当于mysql的db,需添加(添加virtual hosts一般以/开头),然后点击创建用户的名称进行授权virtual hosts。...

2020-06-19 22:16:29 95

原创 Java知识梳理

1. JDK 和 JRE 有什么区别?JDK是java开发工具包,提供了java开发的环境;JRE是java运行环境,提供了java运行的环境;具体来说JDK包含了JRE,还包含了编译 java源码的javac,还包含了java程序的调试和和分析的工具。2. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?不对,hashCode相同代表两个键值对的哈希值相等,但是哈希值相等,并不一定得出键值对相等。3. BIO、NIO、AIO 有什么区别?BIO是同步阻塞式I

2020-06-19 22:15:24 88

原创 SQL语句优化技巧

1.在表中简历索引,优先考虑where条件和group by 使用到的字段2.尽量避免使用select *,使用需要查询的具体字段3.尽量避免使用in或者not in,这样会使数据库引擎放弃索引进行全表扫描,如果是连续数值,可以使用between代替;如果是子查询,可以使用exists代替4.尽量避免使用or,会导致数据库引擎放弃索引进行全表扫描;可以使用union代替or5.尽量避免在字段开头使用模糊查询,会导致数据库引擎放弃索引进行全表扫描6.尽量避免使用null值的判断,回到值数据库引擎放弃

2020-06-19 22:14:54 79

原创 Nginx入门

1.安装nginx(1)把nginx安装文件放到linux系统中(2)解压压缩文件(3)进入压缩之后的目录,执行./configure(4)使用mark && make install ,安装成功后,在usr多出来的一个文件夹local/nginx,在nginx有sbin启动脚本查看开放的端口号firewall-cmd --list-all设置开放的端口号firewall-cmd -add-service=http -permanentsudo firewall-cmd -

2020-06-19 22:14:07 73

空空如也

空空如也

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

TA关注的人

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