@Corgi
心有多大,舞台就有多大。
展开
-
常用框架-Nacos
使用临时实例可以确保服务列表的灵活性和准确性,自动删除不再发送心跳的不健康或已关闭的实例,从而减轻维护负担,并提高系统的自适应能力。如果在配置的时间间隔内没有接收到某个实例的心跳,Nacos将认为该实例不健康,并将其从服务列表中剔除。当健康的实例数低于配置的保护阈值时,Nacos将启动保护模式,避免对剩余健康实例的过度流量负担,保持服务的稳定性。Nacos是一个由阿里巴巴开发的,开源的、动态的服务发现、配置和服务管理平台,支持容器化部署,主要用于支持微服务架构中的服务注册、发现和动态配置管理。原创 2024-06-24 20:19:14 · 410 阅读 · 0 评论 -
常用框架-Dubbo
主要依赖于注册中心的通知机制。当服务提供者下线时,它会向注册中心发送注销通知,注册中心接收到通知后,更新服务提供者列表,并通过长连接向所有订阅了该服务的消费者推送最新的服务列表。消费者接收到更新后的服务列表,即可实时感知到服务提供者的下线情况,从而调整自己的服务调用策略,确保调用的是可用的服务提供者。这些代理策略在Dubbo中被用来动态生成服务消费者本地的代理类,通过这些代理类进行远程服务调用,从而实现服务的透明化调用,即开发人员无需关心远程调用的具体细节,就能像调用本地方法一样调用远程服务。原创 2024-06-24 20:17:56 · 34 阅读 · 0 评论 -
常用框架-Zookeeper
ZAB(ZooKeeper Atomic Broadcast)协议是ZooKeeper为保证数据一致性而设计的一种协议。ZAB协议主要用于在ZooKeeper集群的所有服务器之间复制数据,确保每个服务器存储的数据副本都是一致的。ZAB协议保证了当一个Leader被选举出来后,集群中的所有事务都按照其发生的顺序被原子性地广播和应用。恢复模式( Recovery Mode):当新的Leader被选举出来,或者集群在启动时,进入恢复模式,以确保集群中所有服务器的数据状态达到一致。原创 2024-06-24 20:15:40 · 112 阅读 · 0 评论 -
常用框架-MyBatis
与完全的ORM框架如Hibernate不同,MyBatis允许开发者编写SQL语句并通过XML文件或注解的方式进行配置,从而给予开发者对SQL的完全拭制,同时提供了简便的方式来实现数据操作和对象映射的功能。:MyBatis的延迟加载是通过代理对象来实现的。动态SQL用于构建灵活的SQL语句,根据传入的参数动态地改变SQL语句的结构,以应对不同的查询条件,从而避免硬编码SQL语句。MyBatis通过这样的流程,实现了从Java对象到数据库中表的映射(反过来也一样),让我们能以面向对象的方式操作数据库。原创 2024-06-24 20:14:02 · 33 阅读 · 0 评论 -
常用框架-Spring Cloud
Spring Cloud是一组工具的集合,旨在帮助开发者快速构建在分布式系统环境中,例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、决策竞选、分布式会话和集群状态管理等高级功能的分布式系统和微服务架构。它利用Spring Boot的开发便利性,简化了分布式系统开发的复杂度。微服务是一种软件架构风格,它将应用程序构建为一组小的、独立的服务,这些服务围绕业务功能组织,可以通过轻量级通信协议独立部署、升级、扩展和维护。每个服务运行在自己的进程中,并使用自动化的部署机制独立部署。原创 2024-06-24 20:11:00 · 252 阅读 · 0 评论 -
常用框架-Spring Boot
JavaConfig是一种基于Java的Spring配置方式,允许开发者通过Java类而非XML文件来配置Spring容器和bean。通过使用注解标记配置类,以及@Bean注解标记bean的创建方法,JavaConfig提供了一种类型安全且易于重构的配置方法。YAML是一种用于配置文件的数据序列化格式,全称是"YAML Ain’t Markup Language"(YAML不是标记语言)。它以数据为中心,使用缩进式的层级结构来表示数据,旨在易于阅读和编写。YAML常用于配置文件、数据交换等场景。原创 2024-06-24 20:09:09 · 187 阅读 · 0 评论 -
常用框架-Spring MVC
Spring MVC是一个基于Java的,用于构建Web应用程序的模型-视图-控制器(MVC)框架。作为Spring框架的一部分,它提供了一种分离关注点的方法来开发Web应用,通过定义控制器、模型对象、视图解析器等组件来处理Web请求、处理业务逻辑、以及呈现响应。Spring MVC支持灵活的URL到页面控制流的映射,以及丰富的数据绑定和验证机制。原创 2024-06-24 20:07:01 · 25 阅读 · 0 评论 -
常用框架-Spring
Spring是一个开源的Java平台,主要用于简化企业级应用开发。它提供了一个全面的编程和配置模型,支持各种应用开发场景。Spring关注的是业务逻辑层的开发,通过依赖注入(DI)和面向切面编程(AOP)等技术,帮助开发者解耦应用组件,从而提高应用的可测试性和可维护性。Spring框架的核心特性还包括数据访问、事务管理、消息传递、Web应用开发以及安全等。在 Spring AOP 中,**通知(Advice)**是织入到目标对象连接点上的动作,定义了切面(Aspect)是什么时候以及如何执行的代码。原创 2024-06-24 20:05:02 · 20 阅读 · 0 评论 -
数据库面试题-ElasticSearch
TF-IDF(Term Frequency - lnverse Document Frequency)是一种用于评估词语在文档集中的重要性的统计方法。它通过计算词频(TF)和逆文档频率(IDF)的乘积来工作。词频指一个词在文档中出现的次数,而逆文档频率是用来衡量一个词是否常见或是稀有的度量,计算方法是文档集中文档总数除以包含该词的文档数的对数。TF-IDF值越高,表示词在文档中越重要。原创 2024-06-18 21:02:28 · 814 阅读 · 0 评论 -
数据库面试题-Redis
在Redis中,bigkey指的是那些包含大量元素的数据结构,例如一个包含数万个元素的list、 set、hash 或 zset。内存使用增加:大量元素占用大量内存。性能下降:对bigkey的操作(如删除、遍历)可能会阻塞Redis服务器,影响其他命令的响应时间。备份和恢复问题:操作 bigkey 时,可能会延长 RDB 快照的创建时间或者 AOF 文件的重写时间,影响系统的持久化和恢复速度。原创 2024-06-18 21:01:12 · 260 阅读 · 0 评论 -
数据库面试题-MySQL
索引是数据库中一个特殊的数据结构,它能帮助快速查询和检索数据库表中的数据。通过使用索引,数据库管理系统无需扫描整个表就能高效地定位到所需的数据,从而显著减少数据访问的时间,提高查询速度和数据检索效率。索引类似于书籍的目录,通过指向表中数据的指针来加速查询操作。虽然索引能提高查询速度,但它也占用额外的磁盘空间,并且当表中的数据被更新(插入、删除、修改)时,索引也需要被相应地更新,这可能会影响数据更新操作的性能。视图是基于SQL语句的结果集的虚拟表。它是一种数据库对象,像表一样使用,但并不实际存储数据。原创 2024-06-18 20:58:40 · 311 阅读 · 0 评论 -
Java面试题-进阶
分布式ID是在分布式系统中用于唯一标识一个请求、数据记录或资源的标识符。由于分布式系统涉及多个节点或服务,需要确保在全局范围内生成的ID是唯一的,以避免数据冲突和覆盖。分布式ID的生成通常不依赖于单一的节点或服务,以确保系统的高可用性和扩展性。原创 2024-06-12 21:49:07 · 91 阅读 · 1 评论 -
Java面试题-JVM
指的是垃圾收集过程中,虚拟机暂停所有应用线程的执行,以确保在清理内存时不会有新的数据改动,保证垃圾收集的安全性和一致性。STW是垃圾收集过程的一部分,影响程序的暂停时间。OopMap: Object-Oriented Programming Map的缩写,用于垃圾收集时快速定位对象内部的引用。在运行时,OopMap可以提供每个方法执行点上的活动引用的准确位置,帮助垃圾收集器识别哪些是指向对象的引用,从而准确地进行标记和清理。安全点(Safepoint)原创 2024-06-12 21:45:14 · 377 阅读 · 0 评论 -
Java面试题-IO
在Java中,IO(输入/输出)是指用于处理数据(如读取或写入)的操作,通常涉及数据在内存与其他媒介(如硬盘、网络等)之间的传输。Java lO提供了丰富的API来支持文件操作、网络操作等,它主要包括字节流(用于处理原始二进制数据)和字符流(用于处理文本数据),以及基于它们的各种高级流(如缓冲流、转换流等)以实现数据的高效读写。BIO(Blocking I/O,阻塞输入输出)是一种同步且阻塞的I/O模型,其中线程发起I/O操作(如读取或写入数据)时会被阻塞,直到操作完成。原创 2024-06-05 16:39:06 · 173 阅读 · 2 评论 -
Java面试题-多线程
线程安全指的是多线程环境下,当多个线程同时访问某个类的实例时,该类始终能表现出正确的行为,不会因为线程的并发操作而导致数据错乱或状态不一致。换句话说,一个线程安全的类能够防止其内部状态在并发环境下被破坏。实现线程安全通常需要通过同步机制来保证数据的一致性和完整性。Callable是一个接口,它与Runnable相似,但它可以返回一个结果并能抛出异常。Callable接口的call方法作为线程执行体,返回值表示线程执行后的结果。Future代表异步计算的结果。原创 2024-06-05 16:37:44 · 184 阅读 · 0 评论 -
Java面试题-集合
集合(Collection)是Java中一种用于存储对象的容器,它可以包含多个对象,这些对象可以是相同类型或不同类型(依赖于具体使用的集合类型)。Java集合框架提供了一系列的接口和实现(如ListSetMap等),用于存储和操作对象群集,支持各种操作,如添加、删除、遍历、排序等。Hash算法是一种将任意长度的输入(或称为消息)通过散列算法处理,转换成固定长度输出的过程。该输出称为散列值或哈希值。Hash算法的特点包括:对于任何给定的输入,输出都是确定的;原创 2024-06-04 19:33:14 · 161 阅读 · 2 评论 -
Java面试题-基础
Fail-fast 是一种错误检测机制,指的是在操作集合(如列表、集合等)时,如果检测到集合在迭代过程中被结构性地修改(例如添加、删除元素),则立即抛出异常。这种机制旨在快速失败,避免不确定的行为和潜在的错误。Java集合框架中的很多实现(如ArrayListHashMap)都采用了fail-fast 机制。它主要通过在迭代器内部维护一个修改计数器(modCount)来实现,每次迭代前检查计数器是否有变化,以保证迭代的一致性和安全性。HashMap的长度是2的N次方主要是为了优化索引计算的效率。原创 2024-06-04 19:30:21 · 58 阅读 · 0 评论