- 博客(64)
- 收藏
- 关注
原创 总结Dubbo开源RPC框架
集群:多个机器提供一样的服务(实现高性能、高可用、 可伸缩、高可扩展 )分布式:多个机器提供不同的服务,合起来为一个大服务。
2024-03-19 00:21:30 1060
原创 理解Nacos是如何实现动态配置的
Nacos(阿里巴巴开源的分布式配置中心和服务发现系统)实现动态配置的主要思想是通过监听机制和发布/订阅模式来实现配置的实时更新。以下是 Nacos 实现动态配置的关键步骤:配置数据存储: Nacos 将配置数据存储在持久化的存储介质中,可以是数据库或其他存储系统。这样可以确保配置信息的持久性和可靠性。监听机制: Nacos 提供了监听配置变更的机制。客户端可以注册配置监听器,当配置发生变化时,监听器会收到通知。发布/订阅模式:配置中心充当发布者,而应用程序充当订阅者。
2024-01-23 22:27:19 1540
原创 理解Java中的AQS
AQS:AbstractQueuedSynchronizer(抽象队列同步器),是一个用于。AQS 提供了一种可扩展的基础,允许开发者实现各种形式的同步控制机制。例如:独占锁(ReentrantLock)、共享锁(ReentrantReadWriteLock)、CountDownLatch 等都是基于 AQS 的同步机制实现的。AQS 的核心思想是。它维护了一个等待队列,线程通过排队在队列中等待获取锁或者资源。AQS 提供了一些基本的方法,允许子类来定义自己的同步逻辑。其中两个主要的模板方法是。
2024-01-23 22:03:18 472
原创 OOM分析与解决
如果上述方法无法解决,可以通过 jmap 命令 dump 内存对象 jmap-dump:format=b,file=dump.hprof ,然后利用 Eclipse MAT https://www.eclipse.org/mat 功能逐一分析开销最大的 classloader 和重复 class。运行时报错,应用程序可能会动态创建大量 class,而这些 class 的生命周期很短暂,但是 JVM 默认不会卸载 class,可以设置。如果是内存泄漏,需要找到持有的对象,修改代码设计,比如。
2024-01-18 18:46:04 873
原创 理解Java架构中的中间件
中间件是处于操作系统和应用程序之间的软件。使用时往往是一组中间件集成在一起,构成一个平台(开发平台和运行平台),在这组中间件中必须要有一个通信中间件,即中间件=平台+通信。该定义也限定了只有用于分布式系统中的才能称为中间件。主要分类:远程过程调用、面向消息的中间件、对象请求代理、事务处理监控。
2023-12-27 16:53:28 459 1
原创 理解Java中锁的应用
当线程 A 持有独占锁a,并尝试去获取独占锁 b 的同时,线程 B 持有独占锁 b,并尝试获取独占锁 a 的情况下,就会发生 AB 两个线程由于互相持有对方需要的锁,而发生的阻塞现象,我们称为死锁。
2023-12-22 11:19:41 909
原创 理解SpringMVC的工作流程
前置控制器 DispatcherServlet。映射控制器 HandlerMapping。处理器 Controller。模型和视图 ModelAndView。视图解析器 ViewResolver。
2023-12-22 11:19:22 503
原创 理解Java中的volatile关键字
保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的禁止指令重排对变量的写操作不依赖于当前值(反例如自增自减)该变量没有包含在具有其他变量的不变式中(反例如两个变量比较的执行逻辑)
2023-12-22 11:18:40 327
原创 理解OSI中的七层模型
OSI(Open Systems Interconnection)模型对计算机系统之间发送信息的方式额标准化,它不是一组规则,而是一个工具,用于理解网络是如何运作的。
2023-12-22 11:18:22 952
原创 理解io/nio/netty
bio为同步阻塞模式nio为同步非阻塞模式,一个线程管理多个输入输出通道,涉及轮询、多路复用(一个线程不断轮询多个socket的状态,当socket有读写事件时调用io事件)核心:channel(双向)、buffer、selector(监听通道事件)
2023-12-22 11:17:36 531
原创 IDEA常用快捷键
快捷键功能tab接受选择–选择的名称将覆盖带插入符号右侧的其它名称–而如果按shift或者enter,光标右边的内容会保留Ctrl+shift+空格智能匹配–查找当前上下文的方法和变量Ctrl+d对比文件–选中需要对比的文件shift+滚动水平滚动Ctrl+alt+l格式化Ctrl+k提交Ctrl+alt+z回滚类Ctrl+shift+F10运行Ctrl+alt+v生成变量–选中一个方法,可以生成前置变量,并将返回变量的命
2023-12-02 14:56:14 430
原创 linux命令学习
两台主机之间#添加下面这行配置 @符号表示以UDP的方式发送日志到另一台主机这种方式相比于TCP的方式,优点是传输速度快想要收到日志需要手动开启收日志的配置开启插件以及插件中的接口之后需要重启服务关闭防火墙。
2023-10-02 15:55:56 237
原创 理解反射、动态代理、AOP(用注解实现方法开关)
添加四个元注解定义属性-返回类型类Class、返回类型是否可为空boolean-可以赋默认值default false添加注解@Aspect @Component定义一个切面方法,返回值为void,添加注解@Pointcut(“@annotation(注解接口的全类名路径)”),
2023-06-15 21:26:10 618
原创 理解websocket连接的原理
websocket连接,只需要一次HTTP握手,避免HTTP的无状态性,且服务器可以主动通知,不限次数,直到请求关闭。
2023-04-18 13:57:50 929
原创 理解hutool工具包中StrUtil.isNotEmpty(str)方法
问题:StrUtil.isNotEmpty(str);此外,StrUtil.isNotEmpty(str)方法还会删除字符串开头和结尾的空格,并检查处理后的字符串是否为空。StrUtil.isNotEmpty(str)方法不仅检查字符串是否为null,还检查它。=0将返回true。则StrUtil.isNotEmpty(str)将返回false,因此,如果传入空字符串,String str = " ";
2023-03-30 11:00:02 642
原创 IDEA异常退出后,服务未关闭
IDEA异常退出后,服务未关闭当再次开启IDEA后,启动服务经常找不到网关的端口9800或者同时启动了一个服务在多个不同的端口。
2023-03-29 21:00:58 517
原创 理解业务高级查询
上面是根据过滤条件以及当前页和每页显示的记录数返回查询的实体类对象进行了相关的连表查询操作该语句查询了 hr_employee 表,并通过 left join 关键字连接了 bs_org、bs_users、bs_post 等表。查询结果包括 hr_employee 表的全部字段(使用了 t.*),以及其他表的一些字段,如 u.full_name、o2.name、p.post_number、o1.name 等。${filter} 是一个占位符,表示可以根据实际需要动态拼接 SQL 查询条件。
2023-03-29 20:37:45 67
原创 IDEA后台断点不生效
背景:连接本地的服务进行测试调试代码时,打的断点老是自动跳过发送一个远程服务请求时,后台报404,找不到服务,但有时候又可以正常请求到前端页面的请求返回结果不一样。
2023-03-28 11:22:15 780
原创 记录支持显示代码行号和图片插入功能
VS code中安装插件paste image(mushan)command+option+V粘贴图片。查看图片:cmd+click。图片会保存在同级目录中。
2023-03-26 12:57:18 74
原创 策略模式的应用
反思:刚开始的时候对程序不太理解,认为由于传入的参数不同,必须在业务服务中确定是哪个消息服务,或者考虑远程获取到配置类的map从而获取到特定的消息服务,才能进行传参,考虑后理解可以将不同的参数封装成一个公共的VO类,服务正常在消息服务中心进行调用,其他微服务只需要提供必须的参数以供判断。最近需要写一个消息推送的服务,根据前端用户的配置支持不同的消息服务,应用到了策略模式。
2023-03-22 22:13:53 74
原创 postman测试接口接收不到参数
最近写封装成VO的类作为controller的参数,使用@RequestBody注解进行修饰,用postman进行测试时,接收不到参数,但是请求可以成功返回。
2023-03-21 23:09:00 1898
原创 理解实体类中serialVersionUID序列化版本号
理解:用于实现了Serializable的类中,试用场景是类的序列化。Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。
2023-03-10 15:05:08 727
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人