![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
知识点及原理分析
文章平均质量分 77
IT--Fly
静听心灵的窗户
展开
-
Netty&NIO
Netty&NIO原创 2022-09-01 18:55:47 · 341 阅读 · 1 评论 -
认证中心(单点登陆)之SpringSecurity+OAuth2
认证中心(单点登陆)之SpringSecurity+OAuth2原创 2022-08-25 19:16:21 · 809 阅读 · 0 评论 -
分布式系统的流量防卫兵之Sentinel
分布式系统的流量防卫兵之Sentinel原创 2022-08-25 11:25:28 · 145 阅读 · 0 评论 -
SpringCloud之Hystrix、Resilience4j、GateWay、Sentinel、Config、Bus、Stream
SpringCloud之Hystrix、Resilience4j、GateWay、Sentinel、Config、Bus、Stream原创 2022-08-24 18:11:05 · 691 阅读 · 0 评论 -
Dubbo的调用过程
注册服务:resources/dubbo/dubbo_registry.xml#id:标识需要在zookeeper上注册的服务的ID,方便下面暴露服务时引用。#protocol:协议名称#address:注册中心地址#register:是否向此注册中心注册服务,如果设为false,将只订阅,不注册。#check:注册中心不存在时,是否报错。#group:Dubbo提供服务分组,用于当一个接口有多种实现时,可使用group分组。即暴露的服务接口通过group来区分不同的实现类。#inte原创 2021-09-08 20:00:08 · 157 阅读 · 0 评论 -
Dubbo服务调用过程分析
简单的想想大致流程在分析Dubbo 的服务调用过程前我们先来思考一下如果让我们自己实现的话一次调用过程需要经历哪些步骤?首先我们已经知晓了远程服务的地址,然后我们要做的就是把我们要调用的方法具体信息告知远程服务,让远程服务解析这些信息。然后根据这些信息找到对应的实现类,然后进行调用,调用完了之后再原路返回,然后客户端解析响应再返回即可。调用具体的信息那客户端告知服务端的具体信息应该包含哪些呢?首先客户端肯定要告知要调用是服务端的哪个接口,当然还需要方法名、方法的参数类型、方法的参数值,还有可能原创 2021-08-24 18:54:57 · 252 阅读 · 0 评论 -
Spring Security
什么是Spring SecuritySpring Security 是基于Spring AOP和Servlet过滤器的安全框架,它提供全面的安全解决方案,同时在Web请求级别和方法调用级别处理身份确认和授权Spring Security 核心功能1、认证(你是谁,用户/设备/系统)2、验证(你能干什么,也叫权限控制/授权,允许执行的操作)3、攻击防护(防止伪造身份)Spring Security原理技术Filter、Servlet、Spring DI、Spring AOP常用的安全框架目前原创 2021-01-21 20:46:56 · 104 阅读 · 0 评论 -
Nginx(负载均衡、反向代理)
安装配置NginxLinux下Nginx的安装1、下载nginx安装包2、进入对应目录输入命令./configure 回车make 回车makeinstall 回车 安装完毕3、启动原创 2021-01-20 15:45:32 · 83 阅读 · 0 评论 -
HTTP协议
什么是URI、什么是HTML、什么是HTTP?1、URI:即统一资源标识符,作为互联网上资源的唯一身份;2、HTML(HyperText Transfer Protocol):即超文本标记语言,描述超文本文档;3、HTTP:即超文本传输协议,用来传输超文本。HTTP各版本之间的差异(0.9、1.0、1.1、2.0、3.0)HTTP/1.0 版本在 1996 年正式发布。它在多方面增强了 0.9 版,形式上已经和我们现在的 HTTP 差别不大了,例如:1、增加了 HEAD、POST 等新方法;2原创 2021-01-18 15:15:54 · 1797 阅读 · 0 评论 -
Mysql实践篇
1、普通索引和唯一索引,应该怎么选择?假设,执行查询的语句是 select id from T where k=5。这个查询语句在索引树上查找的过程,先是通过 B+ 树从树根开始,按层搜索到叶子节点,也就是图中右下角的这个数据页,然后可以认为数据页内部通过二分法来定位记录。对于普通索引来说,查找到满足条件的第一个记录 (5,500) 后,需要查找下一个记录,直到碰到第一个不满足 k=5 条件的记录。对于唯一索引来说,由于索引定义了唯一性,查找到第一个满足条件的记录后,就会停止继续检索。InnoDB原创 2021-01-15 15:24:02 · 113 阅读 · 0 评论 -
锁和表锁及MVCC
MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类全局锁命令是 Flush tables with read lock (FTWRL)全局锁的典型使用场景是,做全库逻辑备份。也就是把整库每个表都 select 出来存成文本。表级锁表锁的语法是 lock tables … read/write在 InnoDB 事务中,行锁是在需要的时候才加上的,但并不是不需要了就立刻释放,而是要等到事务结束时才释放。这个就是两阶段锁协议。死锁和死锁检测一种策略是,直接进入等待,直到超时。这个超时时间可以原创 2021-01-15 11:38:48 · 96 阅读 · 0 评论 -
索引
隔离性与隔离级别提到事务,你肯定会想到 ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性),今天我们就来说说其中 I,也就是“隔离性”。当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别”的概念。在谈隔离级别之前,你首先要知道,你隔离得越严实,效率就会越低。因此很多时候,我们原创 2021-01-15 11:10:39 · 69 阅读 · 0 评论 -
一条SQL 查询、跟更新语句是如何执行的
Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。而存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎。查询语句连接器第一步,你会先连接到这个数据库上,这时候接待你的就.原创 2021-01-14 20:21:50 · 159 阅读 · 0 评论 -
消息队列之RibbitMQ
eeeee原创 2020-07-19 22:25:10 · 260 阅读 · 0 评论 -
Java底层:JVM(四)
谈谈类加载器的双亲委派机制原创 2019-10-28 20:50:40 · 78 阅读 · 0 评论 -
线程的实现方式
1、多线程随机打印结果2、多线程方法的内存图解3、Thread类获取线程名称的两种方式4、创建线程的第二种方式Runnable5、Thread和Runnable接口的区别6、匿名内部类实现线程创建7、线程安全问题8、解决线程安全问题9、并发与并行...原创 2020-05-19 01:48:08 · 151 阅读 · 0 评论 -
集合相关数据结构、栈、队列、数组、链表、红黑树
一、栈栈 :stack又称堆栈,它是运算受限的线性表,其限制是仅仅允许在栈的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作先进后出:如:子弹压进弹夹 栈的入口、出口都是在栈的顶端位置二、队列队列:queue 简称队,它同堆栈一样,是一种受限制的线性表,其限制仅允许在表的一端进行插入,而在另一端进行删除先进先出、对垒的入口出口各自占一侧三、数组数组 :Array 是有序的元素序列,数组是在内存中开辟的一段连续的空间,并在此空间存放元素。就像一排出租屋,有以100个房间原创 2020-06-15 07:33:12 · 130 阅读 · 0 评论 -
RibbitMQ
一、消息队列1、什么是消息队列,即MQ,Message QueueMQ全称为MQ,Message Queue消息队列(MQ)是一种应用程序得通信方法,应用程序通过读写出入队列得消息来通信,而无需要专用得连接来链接他们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常用于诸如远程过程调用技术。排队指的是应用程序通过队列来存储通信,队列得使用除去了接受和发送应用程序同时执行的要求消息队列是典型的:生产者、消费者模型。生产者不断向消息队列中生产消息,消费者的从原创 2020-06-15 05:01:27 · 237 阅读 · 1 评论 -
Collection、List、Set、Map集合及泛型
一、Collection集合集合 : 集合是java中提供的一种容器,可以用来存储多个数据。数组和集合都是容器,它们的区别(1)数组长度是固定的,集合长度是可变的(2)数组中存储的都是同一类型元素,可以存储基本数据类型值。集合存储的都是对象,而且对象的类型可以不一致,在开发中一般当对象多的时候,使用集合进行存储集合框架集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.MapCollection:单列集合的根接口,用于存储一系列原创 2020-06-13 05:53:38 · 516 阅读 · 1 评论 -
Linux基础知识及相关命令
一、Linux简介1、LinuxOS体系结构----LinuxOS类似UNIX OS----内核 : 模块化管理----Shell: 用户与内核之间交互的一个接口----应用工具:编辑器、过滤器2、软件模式开源软件(Open Source):软件发布,并公布源代码闭源软件(Close Source):仅推出可执行的二进制程序免费软件(Freeware):共享软件(Shareware):商业软件(Commercial Software):由开发者出售拷贝并提供软件技术服务,用户只有使用权原创 2020-06-12 20:45:47 · 1280 阅读 · 0 评论 -
Mysql基本知识、语法及操作
一、数据库的概念1、数据库的英文单词:DataBase 简称 :DB2、什么是数据库?----用于存储和管理数据的仓库3、数据库的特点:—持久化存储数据的(相当于一个文件系统)—方便存储和管理数据—使用了同一方式操作数据库(SQL)待更新...原创 2020-06-10 02:27:57 · 189 阅读 · 0 评论 -
Redis基本知识、语法及相关操作
一、Redis初识1、Redis是什么—开源—多种数据结构—基于键值的存储服务器系统—高性能、功能丰富2、Redis的特性—速度快(10w OPS)Redis将数据存储在内存当中、C语言写的、单线程模式—持久化(断电数据不丢失)Redis所有数据保存在内存中,对数据的更新将异步地保存到磁盘上—多种数据结构BitMaps(位图)、HyperLogLog(超小内存唯一值计数)GEO(地理信息定位)—功能丰富发布订阅、Lua脚本、事务、pipeline—简单不依赖外部库、单线程原创 2020-06-08 23:06:34 · 271 阅读 · 0 评论 -
SpringMVC
1、MVC设计模式M: mode模型 JavaBeanV: View视图 JSPC: Controller控制器 Servlet2、SpringMVC是什么3、SpringMVC的优势和Struts2对比4、SpingMVC入门案例配置前端控制器DispatcherServlet视图解析器ViewResover开启mvc框架注解支持mvc:annotation-driven案例分析案例组件介绍5、@RequestMapping注解属性:6、原创 2020-06-05 02:12:34 · 111 阅读 · 0 评论 -
Spring之AOP
1、什么是AOP2、AOP的相关术语3、基于XML的AOP实现(1)pom.xml导入jar包(2)bean.xml配置aop:config、aop:apect标签切入点execution表达式4、四种常用的通知类型及环绕通知前置通知aop:before、后置通知aop:after-returning、异常通知aop:after-throwing、最终通知aop:after、环绕通知aop:aroundaop:pointcut标签配置切入点表达式环绕通知(可以在代码中原创 2020-06-04 03:21:39 · 149 阅读 · 0 评论 -
新手认识Elasticsearch(全文检索技术)
1、简介Elasticsearch具备以下特点(1)分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)(2)Restful风格。一切API都遵循Rest原则,容易上手(3)近实时搜索,数据更新在Elasticsearch中几乎是完全同步的2、安装和配置由于处于安全考虑Elasticsearch默认不允许root账号运行(创建新用户)(上传Elasticsearch压缩包进行解压)tar -zxvf xxxxchmod xxx(修改配置文件)原创 2020-06-02 02:42:21 · 269 阅读 · 0 评论 -
Mybatis
1、Mybatis概述2、Mybaits入门环境搭建pom.xml导入jar包依赖原创 2020-05-31 00:25:41 · 170 阅读 · 0 评论 -
SpringIOC注解
1、常用IOC注解按照作用分类@Component(value=" ")@Component衍生出来的三个注解 @Controller、@Service、@Repository2、自动按照类型注入@Autoware(只有唯一bean对象时注入成功)@Qualifier 必须和@Autoware一起使用此时就可以用@Resource注解代替@Value基本类型和String类型的注入 @Value(${})集合类型注入只能用XML3、改变作用范围以及生命周期相关的注解@Scop原创 2020-05-29 23:22:57 · 152 阅读 · 0 评论 -
Java版数组、队列、栈增删改查
1、数组package com.huke.test;public class ArrayTest { private long[] arr; // 定义一个long类型数组 private int element; // 添加元素 public void initArr(int value) { arr[element] = value; element++; } // 删除元素 public void delArr(int value) { int i; for原创 2020-05-28 03:49:39 · 134 阅读 · 0 评论 -
Spring之IOC
1、Spring的概述(spring是什么)(spring的两大核心)AOP、IOC(spring的发展和优势)(spring体系结构)2、JDBC程序分析耦合:程序之间的依赖关系(类之间的依赖、方法之间的依赖)解耦:降低程序之间的依赖性实际开发:编译期不依赖 运行期才依赖解耦的思路:使用反射创建对象避免用new的方式、读取配置文件来获取要创建对象的权限类名package com.leyou.httpdemo.com.huke.test;import java.sql.Co原创 2020-05-27 00:54:06 · 106 阅读 · 0 评论 -
Mysql之慢查询日志、SQL、索引、配置、分库、分表优化
1、数据库优化的目的2、可以从哪几个方面进行数据库优化原创 2020-05-27 01:23:25 · 264 阅读 · 0 评论 -
Java内存泄漏与溢出
java内存泄漏与内存溢出内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导致out of memory!以发生的方式来分类,内存泄漏可以分为4类:1. 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄转载 2020-05-22 00:16:07 · 152 阅读 · 0 评论 -
SpringCloud(一)Eureka
1、SpringCloud将诸多流行的技术整合在一起,实现了诸如:配置管理、服务发现、智能路由、负载均衡、熔断器、控制总线、集群状态等等功能。其主要涉及的组件包括(1)Eureka:服务治理组件,包含服务注册中心,服务注册与发现机制的实现(2)Zuul:网关组件,提供智能路由,访问过滤功能(3)Ribbon:客户端负载均衡的服务调用组件(负载均衡)(4)Feign:服务调用,给与Ribbon和Hystrix的声明式服务调用组件(声明式服务调用)(5)Hystrix:容错管理组件,实现断路由模式,帮原创 2020-05-21 17:57:07 · 91 阅读 · 0 评论 -
线程间的通信(等待与唤醒机制)
1、等待唤醒机制注意:wait方法与notify方法必须有同一个锁对象调用 因为:对应的所对象可以通过notify唤醒使用同一个锁对象调用的wait方法后的线程wait方法与notify是属于Object类的方法。因为:锁对象可以是任意对象,而任意对象都是来自于Object类wait方法与notify必须要在同步代码块或者同步函数中使用。因为:必须通过锁对象调用这两个方法2、等待唤醒机制案例(生产者与消费者)3、线程的状态...原创 2020-05-21 00:15:09 · 156 阅读 · 0 评论 -
SpringBoot下Redis的操作并连接Redis
1、pom.xml文件导入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> </parent> <dependency>原创 2020-05-18 18:59:04 · 294 阅读 · 0 评论 -
JSON中toJSONString、ParseObject、parseArray的作用以及用 com.alibaba.fast.JSONArray解析字符串或者List集合
(1)parseArray的作用import com.alibaba.fastjson.JSON;import lombok.Data;import org.junit.Test;import java.util.List;public class JSONTest { @Test public void JSONTest() { //从Redis中查出来的字符串 String str = "[{\"ct_pt\":\"xxx\",\"data_原创 2020-05-18 18:36:37 · 6054 阅读 · 0 评论 -
Spring注解深究
**昨天看阿里的java开发手册,其中有一个OOP规约(网上百度了一下,这个规约是阿里自己制定的),其中有一条: 外部正在调用或者二方库依赖的接口,不允许修改方法签名,避免对接口调用方产生影响。接口过时必须加 @Deprecated 注解,并清晰地说明采用的新接口或新服务是什么。 这其中提到了 @Deprecated 注解,在之前的开发过程中没遇到过这个注解,于是查了下他的功能: ...原创 2020-05-17 23:55:18 · 218 阅读 · 0 评论 -
java设计模式--单例模式
什么是设计模式设计模式是解决问题的方案,学习现有的设计模式可以做到经验复用。拥有设计模式词汇,在沟通时就能用更少的词汇来讨论,并且不需要了解底层细节。单例模式-------------------创建型单例(Singleton)Intent确保一个类只有一个实例 并提供该实例的全局访问节点Class Diagram使用一个私有的构造函数 一个私有的静态变量以及一个共有的静态函...原创 2019-09-09 20:43:18 · 117 阅读 · 0 评论 -
Java基础---abstract class、interface 、extends、implements
在Java语言中,abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。abstract class 和 interface 在Java语言中都是用来进行抽象类定义的1.abstract clas原创 2020-05-13 23:22:15 · 1722 阅读 · 0 评论 -
assert是什么以及什么时候用assert
断言在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。一般来说,断言用于保证程序最基本、关键的正确性。断言检查通常在开发和测试时开启。为了保证程序的执行效率,在软件发布后断言检查通常是关闭的。断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为true;如果表达式的值为false,那么系统会报告一个AssertionError。断言的使用如下面的代码所示:1assert(a > 0); // throws an AssertionError if a <= 0断言可原创 2020-05-12 23:43:11 · 1749 阅读 · 0 评论 -
JAVA中的Collection FrameWork(包括如何写自己的数据结构)------详解
Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java S原创 2020-05-12 23:32:15 · 447 阅读 · 0 评论