• RabbitMQ简介及Java API

    作者: 陆金龙       发表时间: 2024-02-24 22:56
    1.RabbitMQ简介 RabbitMQ是一个多租户系统,由虚拟主机提供了资源的逻辑分组和分隔:连接、交换器、队列、绑定、用户权限、策略和其他的东西都属于虚拟主机(virtual hosts,v_host)。虚拟主机能够使得不需要部署多个RabbitMQ来负责不同的业务。 虚拟机 客户端连接到RabbitMQ时,需要指定虚拟主机名称,同时还需要提供用户名和密码,只有用户具有相关的权限才能建立连接。 RabbitMQ包含一个默认的虚拟主机:“/”。默认操作的都是这个虚拟主机,其用户名和密码默认都是guest。RabbitMQ禁止guest用户远程访问,只可以访问...
  • Servlet及SpringMVC的运行流程

    作者: 陆金龙       发表时间: 2024-02-24 06:28
    Servlet Tomcat 容器模型 从上图可以看出 Tomcat 的容器分为四个等级,真正管理 Servlet 的容器是 Context 容器,一个 Context 对应一个 Web 工程,在 Tomcat 的配置文件中可以很容易发现这一点,如下: <Context path="/projectOne " docBase="D:\projects\projectOne" reloadable="true" /> 什么是Servlet Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 ...
  • spring data jpa与mybatis的选型比较

    作者: 陆金龙       发表时间: 2024-02-24 06:10
    作者:猿树洞 链接:https://www.zhihu.com/question/348496459/answer/842120407 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 先去使用任意一种,然后当你发现现在框架有什么痛点的时候,你希望进一步优化的时候,再看看其他框架是否解决了你的痛点。 你就会明白另一个框架的优势了 有一天你在吃葡萄,你发现吐籽太麻烦了。在想,不用吐籽就好了。 然后呢,你发现了,无核白葡萄,没有籽。 葡萄好吃,但是...
  • 关于Mybatis SQL使用XML的评价

    作者: 陆金龙       发表时间: 2024-02-24 06:00
    来源:知乎 作者:知乎用户 方小葱 链接:https://www.zhihu.com/question/278435266/answer/401887313   虽然我觉得XML本身很愚蠢,但是看了大家的答案,作为杠精的我说说不同观点: 对于规模比较大,依赖比较复杂的系统;"代码"或"注解"这种方式会增加后期维护成本~ 其实spring的xml是一个非常好的组件清单(你可以把它看成一个文档); 后来的维护者接手这个项目只要看一眼这个xml就能搞清楚系统的组件的"架构(包括依赖关系)"~ 但是全部用注解这种方式,配置就会...
  • Java开发中的消息队列相关问题处理

    作者: 陆金龙       发表时间: 2023-01-08 07:53
    关键词:RabbitMQ高可用  Kafka高可用  消息队列重复消费  消息丢失  消息队列积压  
    内容基于石杉码农学院的石杉老师的视频整理。 1.理解集群、分布式 集群是指多台服务器集中在一起,实现同一业务。 分布式是指将不同的业务,分布在不同的机器上执行。 分布式的每一个节点,都可以做集群,而集群并不一定就是分布式的。 2.如何保证消息队列的高可用性 如何保证消息队列的高可用。如果MQ挂了怎么办? 2.1 RabbitMQ实现高可用 RabbitMQ:不是分布式的。 RabbitMQ有单机模式(生产环境不会这么用),普通集群模式,镜像集群模式。 普通集群模式原理:多台机器部署多个RabbitMQ实例,队列分配...
  • Java开发中的消息队列及选型

    作者: Kinglong       发表时间: 2022-12-25 21:51
    关键词:RabbitMQ  RocketMQ  Kafka  
    1.为什么要使用消息队列 使用消息队列,比较核心的目的有3个:解耦、异步、削峰。 解耦:以松耦合的方式实现系统之间的通信,保障各系统之间的独立性,更方便、灵活地实现系统的扩展和变更。 异步:将任务中的耗时步骤交给MQ及消息订阅模块处理,避免阻塞,提高响应速度。 削峰:将短暂的高峰期请求积压在MQ中,然后以数据库能够承受的速度从消息队列中逐渐拉取出来进行处理。将并发请求高峰时段的压力由数据库IO操作转移到MQ中,避免服务器因为超负荷请求而崩溃。 2.使用消息队列会面临哪些问题 (1)系统可用性降低:如果MQ挂掉,造成整套系统崩溃。 (2)系...
  • Spring框架的AOP

    作者: 陆金龙       发表时间: 2022-04-06 19:48
    关键词:AspectJ  动态代理  InvocationHandler  
    AOP就是实现横切的工具。有静态和动态两种不同的AOP。Spring AOP实现了其他完整的AOP实现的部分功能。 1.AOP相关概念 连接点(JointPoint):用来定义在程序的哪里通过AOP加入新的逻辑。典型的联结点有:调用一个方法、类初始化、对象初始化等。 通知(Advice):在某特定的连接点处运行的代码称为通知。有在连接点之前执行的前置通知、在连接点之后执行的后置通知等。 切入点(PointCut):切入点是一组连接点,定义某一个通知该何时执行。例如一个典型的连接点是方法调用,一个典型的切入点是对某一个类所有方法调用的集合。 织入(Weav...
  • Spring框架的IoC

    作者: 陆金龙       发表时间: 2022-04-06 17:30
    关键词:注入方式  
    本文来源:主要参考并整理《Spring专业开发指南》第1章--第5章内容。 《Spring专业开发指南》:Rob Harrop,Jan Machacek著,Redsaga翻译小组译,电子工业出版社出版。 1.IoC简介 IoC提供了这样的服务,使一个组件能够在它的整个生命周期中访问它的依赖和服务。 IoC被分解为依赖注入和依赖查找两种子类型。 依赖注入的方式:构造器注入、Setter注入、基于注解的注入。 Spring的依赖注入容器的核心是Bean工厂。Bean工厂负责管理组件和它们之间的依赖关系。 BeanFactory的两个主要实现:...