自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nodejs应用级详解

node.js应用级入门教程

2023-11-10 09:22:57 147

原创 vue2-notes

vue2学习笔记

2023-09-27 10:43:35 177

原创 ds1:java-stream流

java8:stream

2023-07-06 16:55:17 191

原创 Java集合-Collection & Map

2.添加元素时,先计算得到hash值会转成索引值,找到存储数据表table,若果索引位置没有元素则直接加入,若已经存放有元素则调用equals比较,为true,就放弃添加,不相同,再判断 p 是不是一颗红黑树, 如果是一颗红黑树,就调用 putTreeVal , 来进行添加.不是红黑树,依次和该链表的每一个元素比较后,都不相同, 则加入到该链表的最后.1.LinkedHashSet使用hashcode值来决定元素的存储位置,使用双向链表维护元素的次序,元素以插入顺序保存.(加入和取出元素顺序一致)

2023-06-14 21:17:13 592

原创 Sentinel:服务限流

关联: 当关联的资源请求达到阈值的时候,限流自己,例: 设置/aa和/bb,在/bb的关联中填入/aa,/aa在1s被访问5次(假设限制)则限流/bb。链路: 只记录指定链路上的流量(指定资源从入口资源进来的流量,如果达到阈值,则进行限流),例: 从指定/aa下访问/fs的请求才统计限流。最大RT: 响应时间,单位毫秒。Warm Up(预热): 设置预热时长,在预热时长内,处理请求上线为 请求数/预热时长,预热时长过后,恢复原单机阈值。如:单机阈值 3, 统计窗口时长 1 ,则1秒内QPS阈值为3。

2023-04-24 14:08:14 476 2

原创 Nacos配置及整合Dubbo&RestTemplate&Openfeign

二.Nacos作为配置中心。

2023-04-24 09:27:03 979

原创 Dubbo & 负载均衡

Invoker是被用装饰器模式一层一层套了很多Filter的,因此在调用最终的实现类之前,又会经过一个服务提供者端的过滤器链。2.RoundRobin: 轮询,访问频率和权重有关,权重:占有比例,集群中每个项目部署的服务器的性能可能不同,性能好的服务器权重应该高一些。@DubboReference(check = false)代表的是启动的时候不会创建代理对象,在访问的时候才会创建这个代理对象。3.LeastActive: 活跃数相同的随机,不同的活跃数高的放前面。5、接着,会使用Client做数据传输。

2023-04-23 16:32:47 770

原创 TX-LCN:分布式事务框架

3.通知事务组: 是指在发起方执行完业务代码以后,将发起方执行结果状态通知给TxManager,TxManager将根据事务最终状态和事务组的信息来通知相应的参与模块提交或回滚事务,并返回结果给事务发起方。TxManager作为分布式事务的控制方,控制整个事务。DTXPropagation.REQUIRED:默认值,表示如果当前没有事务组创建事务组,如果有事务组,加入事务组。1.创建事务组: 是指在事务发起方开始执行业务代码之前先调用TxManager创建事务组对象,然后拿到事务标识GroupId的过程。

2023-04-21 19:24:59 1130

原创 Spring Data Elasticsearch配置及使用

我们学习的是底层封装了Rest High Level的ElasticsearchRestTemplate模板类型。两种类型中的方法API几乎完全一样,学会了一个,另外一个主要就是配置和类型的区别。当然了,每个不同版本的框架,在方法API上还是有些差异的。以POJO为中心模型用于与Elastichsearch文档交互,并轻松编写存储库样式的数据访问层框架。query string 查询。

2023-04-20 20:06:33 3327

原创 Elasticsearch

每个索引中都必须有唯一的一个Type,是Index中的一个逻辑分类,Elasticsearch中的数据Document是存储在索引下的Type中的(类似于表中套表)在7.x版本之后,删除Type定义,每个index只有唯一固定命名为_doc的Type。可以通过命令,在创建index的时候来定制mapping映射,也就是指定字段的类型和字段数据使用的分词器,手工定制mapping时,只能新增mapping设置,不能对已有的mapping进行修改。可以同时删除多个索引,多个索引名称使用逗号’,'分隔。

2023-04-20 11:37:59 272

原创 config: 分布式配置中心 & bus: 消息总线

每一个应用程序在运行时都需要相应的yml配置,分布式架构下多个服务器和应用服务面临着多个配置文件,在修改和发布上难度较大,需要有一个管理中心来统一管理,优雅的解决了配置的动态变更、持久化、运维成本等问题流程:分布式配置中心去远程仓库将创建好的yml文件读取,application client去分布式配置中心获取配置Spring Cloud Config: spring cloud config server和spring cloud config client基于Http协议。

2023-04-19 16:22:35 1061

原创 RabbitMQ:消息中间件

1.Overview: 此面板为RabbitMQ基础信息展示面板,列举了服务器的信息,如:节点名称、内存占用、磁盘占用等。2.Connections: 此面板中展示所有连接到RabbitMQ的客户端链接。只展示基于5672端口的链接。3.Channels: 此面板中展示各链接中的具体信道。标记方式为链接(编号),如:192.168.91.1:12345(1)。4.Exchanges: 此面板中展示RabbitMQ中已有的交换器,并注明交换器名称、类型等基本信息。

2023-04-19 12:15:35 548

原创 Spring Cloud Gateway: 网关

*** 自定义全局过滤器。* 必须实现接口GlobalFilter* 当前类型的对象,必须被spring容器管理。* 无须配置,所有路由都生效。* 执行顺序:* 先执行网关过滤器,后执行全局过滤器* 多个全局过滤器,执行顺序由Spring boot扫描管理当前对象的顺序决定。* 每个过滤器,都是完整执行后,才执行下一个过滤器。/*** 过滤方法。* 实现上,只有唯一的要求。必须调用方法chain.filter(exchange),并把方法的返回值,返回。* @return。

2023-04-18 18:12:34 512

原创 Hystrix:断路器: RestTemplate & Openfeign=>5种防止服务雪崩方法

3.请求缓存: 服务A调用服务B,在A中添加请求缓存,第一次请求后走缓存了,就不在访问服务B了,即使出现大量请求时,也不会对B产生高负载。简单来说: 以前一个请求发到控制层到业务层是一个线程,现在变成了在远程调用的方法里,控制层一个线程,业务层一个线程.变成了两个线程.降级就是,执行访问远程的方法,但application server 异常,无法调用远程方法后,走降级方法。1.去后台查询id为1,2,3的对应的信息,那么就要执行3次service.selectById(id);

2023-04-16 18:13:46 848

原创 计算机网络

TCP/IP4层网络模型1.应用层2.传输层3.网络层4.数据链路层。

2023-04-14 15:39:38 328

原创 1.Java基础面试题

2.线程安全: String 中的对象为常量,线程安全,StringBuilder是线程不安全的,StringBuffer 是线程安全的。多态: 父类的引用指向子类的实例,子类重写了父类的方法,真正执行的是子类覆盖的方法,多态不能调用子类存在但父类不存在的方法;继承: 子类拥有父类所有属性和方法但是私有属性和私有方法不能访问,子类可以有自己属性和方法且可以重写父类的方法。浅拷贝: 在堆上创建一个新的对象,但原对象内部的属性有引用类型,会只复制该对象的地址.装箱:将基本类型用它们对应的引用类型包装起来;

2023-04-14 10:09:12 415

原创 负载均衡:Ribbon - 远程调用:RestTemplate & OpenFeign

根据设定的负载均衡算法,从列表中取出一个合适的URL,到此Ribbon的事情结束了。所以部署集群时都是设置相应的应用程序相同的应用名称.权重轮询策略(常用,中小型项目使用) :根据每个application service的响应时间分配一个权重,响应时间越长,权重越小,被选中的可能性越低。(注意: 这里的客户端指的是一个服务调用另一个服务(不涉及用户端,是内部服务间的调用),调用方是客户端,被调用方是服务端)可以是硬件,如F5, 也可以是软件,如nginx(注意这里的客户端指的是用户端,服务端是服务器)

2023-04-08 21:39:27 654

原创 分布式: 概念详解 & Eureka & CAP

在Eureka集群中所有的节点都是保存完整的信息的,当Eureka Client向Eureka中注册信息时,如果发现节点不可用,会自动切换到另一台Eureka Server,也就是说整个集群中即使只有一个Eureka可用,那么整个集群也是可用的。Eureka Client: 注册到Eureka Server中的应用,注册后才能通过注册中心获取到项目信息和项目所在服务器信息,Spring Cloud中每个项目调用的信息都存储在了注册中心中(Eureka)。名字中不能使用下划线,否则可能出现无法注册的问题。

2023-04-07 15:27:18 425

原创 Spring Boot应用优雅关闭

在需要实现优雅关闭的应用工程中增加下述依赖:部分启动器默认就依赖了Actuator启动器,如:spring-cloud-starter-netflix-eureka-server,那么下述依赖是可以省略的。

2023-04-07 13:24:22 485

原创 分布式文件存储: FastDFS

是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点(可简单的理解为一台计算机)DFS可以看作是一个接口:具体实现有OSS,GlusterFS、GoogleFS、FastDFS、TFS。

2023-04-05 12:01:51 639

原创 Redis

Redis中数据是key-value形式。不同类型Value是有不同的命令进行操作。Value有6中类型: 1. String 字符串2. Hash 哈希表3. List 列表4. Set 集合5. Sorted Set 有序集合.6 Stream类型(Redis5以后新版本类型)

2023-03-31 15:22:41 202

原创 Docker

1.下载JDK镜像一般使用openjdk镜像。使用Maven插件构建镜像修改Docker服务配置在ExecStart变量末尾,增加下述配置:注意:一定是同一行,且与原值之间必须有至少一个英文半角空格3.重启docker服务4.IDEA项目POM依赖--指定镜像名称 仓库/镜像名:标签--> < baseImage > openjdk:8

2023-03-30 21:10:12 214 1

原创 Spring Security

permitAll():表示所匹配的URL任何人都允许访问authenticated():表示所匹配的URL都需要被认证才能访问 :表单提交认证+rememberMe()anonymous():表示可以匿名访问匹配的URL 必须不用认证 如果已经认证 无法访问 :登录页面需要指定当前权限denyAll():表示所匹配的URL都不允许被访问。rememberMe():被“remember me”的用户允许访问。

2023-03-29 21:25:16 576

原创 SpringBoot使用详解

Spring Boot的启动器实际上就是一个依赖。这个依赖中包含了整个这个技术的相关jar包,还包含了这个技术的自动配置,以前绝大多数XML配置都不需要配置了。如果是Spring自己封装的启动器的artifact id名字满足:spring-boot-starter-xxxx,如果是第三方公司提供的启动满足:xxxx-spring-boot-starter。以后每次使用Spring Boot整合其他技术时首先需要考虑导入启动器。Spring Boot版本介绍。

2023-03-26 15:23:37 1102

原创 Mybatis-Springboot

上面的if标签中为了保证语法的正确性,需要在SQL中明确指定where 1=1,其中1=1存在的意义单纯为了保证语法的正确性,没有实际意义的。在企业开发中的表可能都会有很多列,当使用多表联合查询时列的个数更多。collection:要遍历的数组或集合对象。标签带有自动主键回填功能,只需要设置useGeneratedKeys进行开启自动主键回填功能,同时设置keyProperty的值需要回填到对象的哪个属性。MyBatis的sql标签用于定义SQL片段,include标签用于引用sql标签定义的片段。

2023-03-26 11:05:55 280

原创 日志工具包

在Java项目中常见的日志工具包:Log4j:Apache推出的日志工具。与2012年5月发布1.2.17版本后停止更新。Logback:属于Log4j的继承者。Spring Boot默认日志文件支持类型。Log4j2:属于Log4j升级版,同时里面还包含了Logback的很多改进。commons-logging:Apache早期基于门面(Facade)设计模式的日志包,提供了日志解构能力,按照顺序寻找当前项目日志接口实现、Log4j、JDK Log、SimpleLog。

2023-03-25 17:10:51 772 1

原创 SpringMVC用法详解

1.preHandle方法作用:真正执行拦截的方法,返回false表示拦截此次请求,返回true表示放行。执行时机:单元方法之前。参数:HttpServletRequest request:此次拦截的请求的request对象HttpServletResponse response:此次拦截的请求的response对象Object handler:HandlerMethod类型,存储了拦截的单元方法的method对象。

2023-03-25 10:21:46 583 1

原创 过滤器-监听器

只要在浏览器中输入正确的url地址,不管此次请求是否合理,Tomcat服务器在接收到请求后就会直接调用对应的资源完成请求的处理。有些场景, 需要对请求进行相关处理, 处理完成后, 在访问请求的资源。

2023-03-24 17:38:31 239 1

原创 servlet-Tomcat

用户JSESSIONID的Cookie丢失或者服务器中存储的Session对象被销毁,服务器接收到用户的请求后,如果找不到对应的Session对象,会重新创建,并将新的JSESSIONID以Cookie的形式保存到浏览器中。tomcat 服务器的核心配置文件,server.xml的每一个元素都对应了 tomcat中的一个组件(pojo对象),通过对xml中元素的配置,实现对 tomcat中的各个组件和端口的配置。Tomcat服务器的conf/web.xml文件中配置HttpSession的超时时间。

2023-03-24 16:49:41 235

原创 Spring注解-Spring-boot-SpingAOP & Spring事务

Test对应spring-test.jar. Spring提供的测试工具, 可以整合JUnit测试, 简化测试环节.​ Spring的核心组件, 包含了Spring框架最基本的支撑.​ Beans, 对应spring-beans.jar. Spring进行对象管理时依赖的jar包.​ Core, 对应spring-core.jar, Spring核心jar包.​ Context, 对应spring-context.jar, Spring容器上下文对象.

2023-03-22 21:12:57 530 1

原创 Java-JVM详解

简单来说: 下一级的类加载器,如果接到任务时会先把任务往上传,一直到根加载器,如果根加载器在它负责的路径下没有找到对应的class,会往回传到扩展类加载器让他加载对应的class,如果没有,会传到应用程序类加载器,如果AppClassLoader也没有找到对应的class,那么会报ClassNotFoundException或NoClassDefError,如果在某一级找到了,就直接返回Class对象。因为年轻代中的对象基本都是朝生夕死的(90%以上),所以在年轻代的垃圾回收算法使用的是复制算法。

2023-03-17 16:04:14 1274 4

原创 JUC并发编程

1.支持公平/非公平策略2.支持可重入同一读线程在获取了读锁后还可以获取读锁同一写线程在获取了写锁之后既可以再次获取写锁又可以获取读锁3.支持锁降级,不支持锁升级4.读写锁如果使用不当,很容易产生“饥饿”问题:在读线程非常多,写线程很少的情况下,很容易导致写线程“饥饿”,虽然使用“公平”策略可以一定程度上缓解这个问题,但是“公平”策略是以牺牲系统吞吐量为代价的。5.Condition条件支持写锁可以通过newCondition()方法获取Condition对象。

2023-03-15 20:58:32 634 3

原创 十种常见排序算法详解-java

10中常见排序算法

2022-10-01 15:06:46 413 1

原创 1.AVL树:左右旋-bite

左右子树的高度差的绝对值均不超过1的二叉搜索树.有n个结点,时间复杂度是log以n为底2的对数;左单旋:左旋就是旋转节点的右子树的左子树变为其新的右子树,同时旋转节点变成以前右子树的左子树右端单旋:右旋就是旋转节点的左子树的右子树变成其新的左子树,同时旋转节点变成以前左子树的右子树何时使用左旋,右旋,左右双旋,右左双选?增加节点在要旋转节点的右子树的右子树上时:左旋,在要旋转节点的右子树的左子树上时:右左双旋.增加节点在要旋转节点的左子树的左子树上时:右旋,在要旋转节点的左子树的右子树上时:左右双旋

2022-07-06 10:22:48 555 8

原创 14.IP协议-bite

4位版本: 4/6(0100,0110),主要讨论IPv4.(0100)4位首部长度:和TCP类似.TOS(服务类型,只有4位有效,可以切换形态):最小延时,最大吞吐量,最高可靠性,最小成本,同一时刻只能取一种形态4.16位总长度:单个IP数据报最大长度不能超过64KB(65536Byte),如果超过了,IP协议自身实现了分包和组包这样的操作对于IP数据包来说,根本不关心载荷里是啥只是单纯的对数据进行了切分了.下面三个字段就是用来进行分包和组包的16位标识符:同一个IP数据报拆分出来的多个IP数据报的标

2022-06-28 10:31:07 533

原创 11.应用层数据传输格式/端口号-bite

正是因为这里的应用层协议,可以随心所欲的来指定,这就导致两极分化非常严重!!大佬设计的协议都非常好.菜鸡设计的协议就非常糟糕正因为如此,大佬们发明了一些比较好的协议的模板,可以让我们直接往上套:当下比较流行的一些这种协议的模板(数据的组织格式)可读性好,但是运行效率不高:1.xml2. json3. 可读性不好,运行效率很高:4. protobuffer1.xml:格式有标签名构成:内容:开始标签:结束标签标签名就是key内容就是value......

2022-06-27 11:49:22 491

原创 13.TCP-bite

有连接:得先建立连接再交换数据可靠传输:发送方知道接收方有没有收到数据(不是对方100%能收到,不是安全传输)面向字节流:以字节为单位进行传输. (非常类似于文件操作中的字节流)全双工:一条链路,双向通信半双工:一条链路,单向通信两个核心类:ServerSocket(专门给TCP服务器用的)Socket(既给服务器用也给客户端用)服务器端:客户端:当上面的代码,第一次accept结束之后,就会进入processConnection在processConnection 又会有一个循环,如果pr

2022-06-27 11:14:39 541

原创 12.UDP协议-bite

无连接:不需要建立连接,就可以交换数据不可靠:发送方不知到对方有没有收到数据(不能理解为对方100%收到)面向数据报:以数据报为单位进行传输(一个数据报都会明确大小)一次发送/接收必须是一个完整的数据报,不能是半个,也不能是一个半全双工:一条链路双向通信半双工: 一条链路单向通信两个核心类:1.DatagramSocket:创建一个UDP版本的Socket对象receive:接收数据send:发送数据close:释放资源2.DatagramPacket:表示一个UDP数据报,每次发送/接收

2022-06-25 22:12:52 148

原创 10.File/IO流-bite

目录又称为文件夹,文件夹也是一个文件,具体的目录和文件都可以用File对象来表示 .\表示该层所在的文件夹字节流对象:读:InputStream(抽象类)->FileInputStream(实现子类)写:OutputStream(抽象类)->FileOutputStream(实现子类)FileInputStream:read提供了三个版本的重载.1)无参数版本:一次读一个字节.返回值是读到的这个字节:返回值是对应字节的ASCII码值,读完了返回-12)一个参数版本:一次读若干个字节,把读的结果放

2022-06-20 17:26:11 73

原创 9.JUC:多线程相关操作-bite

下面代码中Callable是在描述一个任务,且有一个返回值将Callable对象callable传入FutureTask的构造方法中所创建出来的对象task,就是Callable中描述的任务的维护标识对象.将task传入Thread的构造方法中,等待该线程运行结束后,可以通过task.get()得到任务的返回值.ReentrantLock可重入互斥锁. 和 synchronized 定位类似, 都是用来实现互斥效果, 保证线程安全.lock(): 加锁, 如果获取不到锁就死等.trylock(超时

2022-06-19 10:44:32 1641

空空如也

空空如也

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

TA关注的人

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