架构设计
文章平均质量分 70
鱼跃鹰飞
大厂小架,喜欢探索,住在海边喜欢浪!
展开
-
大厂面试真题-说说tomcat的优缺点
Tomcat作为服务器,特别是作为Java Web服务器,具有一系列优点和缺点。原创 2024-11-10 22:54:46 · 407 阅读 · 0 评论 -
大厂面试真题-说说同步IO异步IO以及BIO、NIO、AIO
同步与异步,以及BIO(同步阻塞IO)、NIO(非阻塞IO/多路复用IO)、AIO(异步IO)是计算机编程中处理输入输出(IO)操作的几种重要模型。原创 2024-11-08 20:40:48 · 940 阅读 · 0 评论 -
大厂面试真题-简单说说线程池接到新任务之后的操作流程
判断是否存在空闲线程,若存在则分配任务。若无空闲线程,则判断当前线程数是否小于核心线程数,若小于则创建核心线程执行任务。若核心线程数已满,则检查阻塞队列是否未满,若未满则将任务添加到队列中等待执行。若阻塞队列已满,则判断当前线程数是否未达到最大线程数,若未达到则创建非核心线程执行任务。若已达到最大线程数,则采用拒绝策略处理新任务。这个流程确保了线程池能够高效地管理和执行任务,同时避免了资源的过度使用和浪费。原创 2024-11-06 20:13:31 · 733 阅读 · 0 评论 -
大厂面试真题-说说redis的分片方式
Redis的分片机制是其实现数据分布式存储和处理的关键,它允许将数据拆分存放在不同的Redis实例上,每个Redis实例只包含所有键的子集,从而提高了系统的性能和可扩展性。原创 2024-11-04 19:23:04 · 782 阅读 · 0 评论 -
大厂面试真题-如果使用guava limiter实现实例级别的缓存
然而,这通常不是推荐的做法,因为它可能会增加复杂性和资源消耗。获取许可,然后再次检查缓存(因为可能在获取许可期间有其他线程已经更新了缓存),如果仍然没有数据,则从数据源获取并更新缓存。如果你想要对每个不同的键或每个不同的实例有独立的流量控制,你需要为每个键或实例创建单独的。用于流量控制,确保系统在处理请求时不会超过指定的速率,而。方法首先尝试从缓存中获取数据,如果缓存中没有数据,则通过。是两个不同的组件,分别用于控制访问频率和实现缓存功能。来实现一个既具有缓存功能又受流量控制的系统。请注意,这个示例中的。原创 2024-11-02 20:55:41 · 548 阅读 · 0 评论 -
大厂面试真题-说说caffine缓存的原理和基本使用
Caffeine是一个基于Java的高性能缓存库,它提供了快速、高效的本地缓存解决方案。原创 2024-11-02 20:52:43 · 853 阅读 · 0 评论 -
大厂面试真题-很多系统会使用netty进行长连接,连接太多会有问题吗
使用Netty进行长连接时,机器数量过多确实可能会因为连接数量过多而引发问题。这些问题主要涉及系统资源消耗、连接管理、性能优化等方面。原创 2024-11-01 19:39:13 · 544 阅读 · 0 评论 -
大厂面试真题-caffine比guava有什么提升?
Caffeine相较于Guava在多个方面都有显著的提升,这些提升使得Caffeine成为了一个更高效、更强大的本地缓存解决方案。原创 2024-11-01 19:29:23 · 778 阅读 · 0 评论 -
大厂面试真题-简单说说中台的架构设计
中台架构将系统的通用化能力进行打包整合,通过接口的形式赋能到外部系统,以快速支持业务发展。它面向整个企业,需要IT部门与业务部门协同建设。各部门及各业务域是中台能力的使用方,同时也是中台能力的重要提供方。原创 2024-10-31 10:29:00 · 507 阅读 · 0 评论 -
大厂面试真题-怎么设计电商系统的订单15分钟超时机制
综上所述,设计一个电商系统的订单超时机制需要综合考虑需求、技术方案、实现步骤以及测试和优化等方面。通过科学合理的设计和实现,可以确保订单超时机制的有效性和可靠性。首先,需要明确订单超时机制的具体需求,包括超时时限(15分钟)、触发条件(订单未支付)、执行动作(自动取消订单)等。原创 2024-10-31 10:16:09 · 338 阅读 · 0 评论 -
大厂面试真题-MVCC有哪些不好
MVCC(Multi-Version Concurrency Control,多版本并发控制)虽然具有提高数据库并发性能、避免脏读等优势,但也存在一些缺点。原创 2024-10-30 17:17:38 · 798 阅读 · 0 评论 -
大厂面试真题-使用post进行提交订单的例子你举一下具体的参数,然后这种方式会被恶意加入秒杀商品吗?
关于使用POST方法进行提交订单是否会被恶意加入秒杀商品的问题,这主要取决于电商平台的秒杀机制和安全防护措施。如果电商平台没有严格的秒杀机制和安全防护措施,那么恶意用户确实有可能通过伪造POST请求来尝试加入秒杀商品。使用POST方法进行提交订单时,具体的参数会根据不同的电商平台或业务逻辑有所不同。:当用户提交秒杀请求时,先锁定库存,并在一定时间内等待用户完成支付。:记录所有秒杀请求的日志,并设置监控报警,以便及时发现并处理异常请求。:对POST请求的参数进行数字签名和加密,确保请求的真实性和完整性。原创 2024-10-30 12:34:43 · 199 阅读 · 0 评论 -
大厂面试真题-简单描述一下SpringBoot的启动过程
SpringBoot的启动流程是一个复杂但有序的过程,它涉及多个步骤和组件的协同工作。原创 2024-10-29 19:45:04 · 1080 阅读 · 0 评论 -
大厂面试真题-说说DDD中的防腐层以及它和四层架构的关系
DDD(领域驱动设计)中的防腐层(Anti-Corruption Layer,ACL)是一种设计模式,旨在解决不同子系统或限界上下文间由于领域模型或接口不兼容而带来的集成问题。以下是对DDD防腐层的详细介绍,以及它与四层架构的关系:定义:作用:应用场景:定义:各层职责:位置:职责整合:交互方式:综上所述,DDD的防腐层是一种重要的设计模式,用于解决不同子系统或限界上下文间的集成问题。在四层架构中,防腐层可以看作是对数据层(或基础设施层)的扩展或增强,专门用于处理与外部系统的交互问题。通过引入防腐层,可以降低原创 2024-10-24 19:03:55 · 504 阅读 · 0 评论 -
大厂面试真题-说说DDD中的领域驱动事件
领域事件是领域模型的组成部分,表示领域中所发生的事情。一个领域事件将导致进一步的业务操作,在实现业务解耦的同时,还有助于形成完整的业务闭环。领域事件可以是业务流程的一个步骤,比如一个事件发生后触发的后续动作,如密码连续输错三次,触发锁定账户的动作。原创 2024-10-23 17:34:35 · 919 阅读 · 0 评论 -
大厂面试真题-说说Clickhouse比Hbase强在哪
ClickHouse相较于HBase,在多个方面展现出了其独特的优势。原创 2024-10-23 17:08:52 · 352 阅读 · 0 评论 -
大厂面试真题-Redis的Cluster模式的smart clent了解吗,怎么初始化的
综上所述,Redis smart客户端的节点映射关系通常会在客户端启动时或首次访问集群时初始化,并会在集群配置发生变化时及时更新。初始化过程涉及与集群节点通信、解析和存储映射信息以及后续的更新和维护。为了确保映射关系的准确性和时效性,客户端通常会采用异步更新和容错处理等措施。原创 2024-10-22 22:48:41 · 411 阅读 · 0 评论 -
大厂面试真题-了解云原生吗,简单说一下docker和k8s
K8s(Kubernetes)和Docker都是容器化技术中的关键组件,但它们各自扮演着不同的角色。原创 2024-10-19 17:50:44 · 844 阅读 · 0 评论 -
ThreadLocal原理解析及面试
ThreadLocal类里关于ThreadLocalMap的定义(每个Thread里都有一个ThreadLocalMap),可以说ThreadLocal关键是ThreadLocalMap,它自己只是定义了对外的接口,其他的逻辑都在ThreadLocalMap里(map的key是ThreadLocal的引用,value是我们在当前线程中设置的值),ThreadLocalMap里重点需要关注Entry,它继承了WeakReference,其实我们设置的值就是设置到这个弱引用的对象的value里,而弱引用。原创 2024-10-01 18:32:28 · 1891 阅读 · 0 评论 -
Tomcat为什么要打破双亲委派?怎么保证安全
对于JRE基本类和JavaEE API类的处理:对于JRE基本类(如Java标准库类),Web应用程序类加载器不能覆盖,这是为了保证Java核心类的一致性和稳定性。当使用双亲委派模型时,容器的类加载器会先尝试加载共享类库,导致Web应用程序中提供的同名类无法被正确加载,从而产生类加载冲突。有些Web应用程序可能需要加载自定义的类或资源,而不希望受到容器类加载器的限制。代码审查和权限控制:开发者和管理员需要仔细审查和测试自定义的类加载器,确保其加载的类是可信的,并配置适当的权限来限制对敏感资源的访问。原创 2024-09-30 22:26:25 · 457 阅读 · 0 评论 -
大厂面试真题-G1是怎么实现的按照设置的停顿时间执行垃圾回收
G1垃圾回收器(Garbage-First Garbage Collector)通过一系列精心设计的机制来实现按照设定的停顿时间来执行垃圾回收。原创 2024-09-29 17:47:45 · 720 阅读 · 0 评论 -
大厂面试真题-什么是CAS单点登录?什么原理
统一的认证中心:CAS Server作为统一的认证中心,负责所有CAS Client的用户认证工作。票据机制:通过TGT、TGC和ST等票据机制,实现用户认证状态的跨系统共享和验证。Cookie与Session结合:利用浏览器Cookie存储TGC,实现用户认证状态的持久化;在CAS Client端使用Session存储用户信息,实现用户会话管理。重定向机制:通过重定向机制将用户引导至CAS Server进行认证,并将认证结果返回给CAS Client。原创 2024-09-28 12:02:56 · 1201 阅读 · 0 评论 -
大厂面试真题-ConcurrentHashMap怎么保证的线程安全?
ConcurrentHashMap是Java中的一个线程安全的哈希表实现,它通过一系列精妙的机制来保证线程安全。原创 2024-09-27 18:45:08 · 961 阅读 · 0 评论 -
大厂面试真题- RPC通讯协议如何保证数据完整性
RPC(远程过程调用)通讯协议保证数据完整性的方法主要依赖于多种技术手段和协议特性。原创 2024-09-27 12:13:30 · 1070 阅读 · 0 评论 -
为什么阿里开发手册不允许使用系统提供的线程池?
使用有界队列:限制任务队列的大小,避免OOM。合理配置线程池参数:根据系统资源和业务需求合理配置线程池的核心线程数、最大线程数、队列大小等参数。监控和调优:对线程池的使用情况进行监控,并根据监控结果进行调优,以确保系统稳定运行。避免使用Executors直接创建线程池:因为Executors创建的线程池可能使用无界队列或允许创建大量线程,存在风险。建议直接使用ThreadPoolExecutor类来创建线程池,以便更灵活地配置参数。原创 2024-09-14 16:59:26 · 431 阅读 · 0 评论 -
JVM调优指标
一些常见的系统指标响应时间(RT)响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,人们通常是指该系统所有功能的平均时间或者所有功能的最大响应时间。当然,往往也需要对每个或每组功能讨论其平均响应时间和最大响应时间。原创 2024-09-11 17:01:09 · 758 阅读 · 0 评论 -
JUC中的AQS重要源码
JUC中的AQS源码解析原创 2022-12-13 21:17:03 · 189 阅读 · 0 评论 -
MySQL面试题-索引的基本原理及相关面试题
因为大小是固定的16kb,所以单条数据占用的空间越小,则磁盘块可以放的数据条数越多,比如如果单条数据是1kb,那一个磁盘块只能放16条数据,而如果是1b就可以放16000条数据,也就是存储同样数量的数据,如果单条数据越小,则需要的磁盘块(节点)越少,也就是基于同样的Max.Degree,树的高度会降低。现在我们评估一下Y,对于叶子节点来说,每个页的大小也是16kb,但是叶子节点放的是真正的数据,占的空间会比较大一些,假设每一条数据1kb,那每个页只能放15条数据(我们页头页尾那部分数据全加起来大概。原创 2023-09-24 23:15:45 · 284 阅读 · 0 评论 -
Kafka关键点总结-消息的顺序性
需要注意的是,Kafka不能保证不同分区之间的消息顺序,因为分区是独立的存储单元。为了实现全局的消息顺序,生产者需要在发送时按照顺序将相关消息发送到同一个分区,而消费者需要订阅相同分区,并确保单一的消费者实例来处理消息。这将在分区级别保证消息的顺序性,但不会跨分区保证。:使用单一的消费者实例来处理一个分区内的消息可以确保消息按照发送顺序进行处理。:为了保证消息的顺序性,消费者可以选择订阅主题的特定分区,而不是订阅整个主题。这样,它将仅从一个分区读取消息,并且这个分区内的消息是有序的。原创 2023-09-19 15:34:05 · 585 阅读 · 0 评论 -
某大厂线上JVM参数(CMS+ParNew)参数解析
参数后,CMS在执行Remark阶段之前,会先执行一次年轻代的垃圾收集(CMS来执行这次新生代的垃圾回收,而不是ParNew)。参数的作用是在CMS的"Remark"阶段(重新标记阶段)之前执行一次年轻代的垃圾收集(Scavenge)。一般来说,这个参数通常在特定的性能调优场景下使用,而不是在普通应用程序中启用,因为它可能会导致垃圾收集操作的复杂性增加,可能会影响应用程序的性能。-XX:+UseConcMarkSweepGC 启用了 CMS 垃圾收集器,它是一种并发垃圾收集器,用于老年代的垃圾回收。原创 2023-09-17 15:57:00 · 230 阅读 · 0 评论 -
分层架构简介
DCI架构模式是架构设计层面的方法论,在DCI架构模式中,把数据对象和通用对象进行抽取,这部分可能只有get set 排序 分页、对象的创建和销毁等一些逻辑,是属于贫血模型。四层架构是非严格的分层架构,每一个层级不会严格它可以调用的层级,而是对于它下面的层级都可以进行调用(从上到下依次是1,2,3,4层,这里说的下指的是数字越大,例如用户层不仅可以访问应用层,还可以访问领域层和基础设施层)4.由于Spring的存在(MVC的主要推崇者),其实我们的开发是不符合面相对象的。五层架构的变体:六层架构。原创 2023-07-02 16:31:52 · 583 阅读 · 0 评论