自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 问答 (1)
  • 收藏
  • 关注

原创 Nacos

服务注册中心与服务配置中心na (naming) 注册中心,和Eureka功能类似,服务注册与发现co (configuration)配置中心,与SpringCloudConfig+SpringCloudBus功能类似,实现配置功能,配置的自动刷新s (service) 服务服务注册与发现,消费者可以通过DNS和http发现和寻找服务,服务监控监测,可阻止不健康的服务发送到主机和服务上动态配置服务,动态DNS服务,更加容易去实现负载均衡和流量控制,服务及其元数据管理,

2025-03-25 00:32:42 439

原创 Gateway

Post类型过滤器:在微服务对请求做出响应后,可以对相应进行拦截和再处理,例如:修改响应内容或响应头、日志输出、流量监控等。Pre类型过滤器:请求被转发到微服务之前对其进行拦截和修改,例如:参数校验、权限校验、流量监控、日志输出等。SpringCloudGateway提供了两种过滤器,可以对请求和相应进行控制。

2025-03-24 23:42:15 76

原创 RocketMQ

(网络抖动可能产生丢失,解决:同步(只用成功才能继续,否则回滚发消息之前逻辑,保证不会丢失)、异步(采用回调确认是否发送成功,失败需要补偿))重复消费保证幂等性(消费失败,重新发送(重新发送时,怎么确保幂等,或者采用redis标识消息,保证唯一消费等))(消息消费成功、但数据库操作失败(导致实际失败),解决:失败后给MQ发送通知,重新推送消息)RocketMQ支持局部顺序消费,可以保证同一个消费队列上的消息顺序消费。消费失败,重新发送消息。顺序消费优化:同一个账户多条消息发送到统一队列,消费端顺序消费。

2025-03-08 22:18:42 217

原创 Dubbo

对于 Dubbo 服务请求失败的场景,默认提供了重试的容错机制,也就是说,如果基。1、快速失败策略,服务消费者只发起一次请求,如果请求失败,就直接把错误抛出去。3、失败自动恢复策略,后台记录失败请求,然后通过定时任务来对这个失败的请求进。5、广播调用策略,逐个调用服务提供者集群,只要集群中任何一个节点出现异常,就。要注意的是,默认基于重试策略的容错机制中,需要注意幂等性的处理,否则在事务型。起重试,确保这次请求成功,默认的额外重试次数是 2 次。节点返回,就表示请求执行成功。(默认对其他节点重试两次)

2025-03-08 21:41:15 207

原创 JVM面试题

GC如何确定垃圾:引用计数法(循环依赖)、可达性分析-从GC Roots开始向下搜索。

2025-02-27 22:10:59 124

原创 微服务相关

Eureka(服务注册,停更),Feign(发送请求,停更),Ribbon(负载均衡),Hytrix(客户端熔断),zuul(路由,停更)微服务之间只能通过接口调用,而不能绕过接口获取对方数据(防止对方服务修改数据结构,本服务也要跟着修改,影响本服务稳定性)效率提高,服务启动速度变快;:服务注册、配置中心(Nacos)、路由、网管(gateway)、负载均衡(Nginx)、发送请求(feign)(解决办法:服务降级、服务熔断):由于下游服务相应慢,或者服务异常,导致请求堆积,上游服务挂掉。

2021-12-01 22:16:19 1689

原创 @Aspect

切面注解@Aspect

2021-10-19 23:30:35 121

原创 JAVA问题记录

1、MySql存储引擎2、SpringMVC执行过程,前台发送请求,后台如何执行3、AOP(面向切面编程)的理解及应用场景4、动态代理5、SpringBoot rest接口实现方式6、ArrayList、LinkedList区别7、CopyOnWriteArrayList中的copy原理,数组拷贝底层实现8、UT具体场景,数据样例9、创建线程的几种方式...

2021-08-24 18:03:06 149

原创 Spring

AOPIOC

2021-08-18 11:37:07 106 1

原创 MySql

索引存储方式不同,innodb索引和数据存储在一起,都在xxx.ibd文件中,myisam索引和数据分开存储,索引存储在xxx.MYI文件中,数据存储在xxx.MYD文件中。3、尽量使用短索引,如果非要对长字符串进行索引,应该制定一个前缀长度,这样能够节省大量索引空间,如果索引值超过索引前缀长度,则使用索引排除不匹配的行,然后检查其余行是否匹配。在修改表内容的时候,索引会进行更新或重构,索引越多,时间越长。比如表中已有a的索引,现在要加(a,b)的索引,那么只需要修改原来的索引即可。

2021-08-17 18:39:24 216 1

原创 SpringBoot

SpringBoot核心注解@SpringBootApplication主启动类中的run方法自动配置核心注解:@EnableAutoConfiguration

2021-08-10 19:29:55 99

原创 SpringCloudNetfix

eureka服务注册中心1、导入依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-euerka-server</artifactId> <version>1.4.6.RELEASR</version></dependency>2、添加配置#指定端口ser

2021-08-07 10:05:24 157 1

原创 JVM

1、JVM的位置JVM相当于一个运行java的软件,安装在window/Linux…上2、JVM体系结构java编译成class,通过类加载器和jvm交互。3、类加载器作用:加载Class文件类加载机制(保证安全):双亲委派机制类加载时,查找class顺序:类加载器收到类加载的请求,将加载请求一层层向上委托,直到根加载器。优先执行根加载器(rt.jar),根加载器中没有的话再从扩展类加载器中找(jdk自带的exc文件夹中的jar包),最后使用应用程序的类(自己定义的类)。4、沙箱安全机

2021-07-19 20:48:55 136

原创 集合...

常见并发异常:java.util.ConcurrentModificationExceptionList// 在多线程并发下,ArrayList是不安全的// 解决办法// 1.通过Vector实现List<String> list = new Vector(); // 通过在add方法上加synchronized关键字实现// 2.通过Collrctions工具类实现List<String> list2 = Collections.synchronizedList(

2021-07-02 17:48:36 158

原创 为什么不推荐使用Lombok

Lombok优点:代码简洁,减少冗余代码。Lombok缺点:1、侵入性太强。如果团队中有一个人使用lombok,团队中其他人都必须安装IDE插件;2、代码可读性、调试性低。比如使用了lombok,想要看某个属性被哪些类调用,会很不方便;3、坑4、影响jdk升级。如果项目中用到的多个jar包使用了不同的lombok版本,就需要进行版本仲裁;5、...

2021-06-19 13:02:29 6776 4

原创 Mybatis

一级缓存SqlSession缓存,一级缓存失效场景:1、查询不同数据2、发生增删改操作,可能影响缓存的3、手动清除缓存4、使用不同mapper.xml二级缓存

2021-06-17 22:36:36 161

原创 Redis

事务Redis的事务:开启事务(multi)命令入队(…)执行事务(exec)事务执行完后结束,再次执行需要重新开启事务。取消/放弃事务(discard)事务当时后,队列中的命令都不会被执行。编译错误(相当于java中语法错误),事务中所有的命令都不会被执行!运行时异常(如:1/0),其他命令正常执行,错误命令抛出异常。...

2021-06-16 20:42:09 104

原创 问题记录

1类加载器Java->Class File -> 类加载器 Class Loader双亲委派机制:安全应用程序加载器(AppClassLoader) --> 扩展类加载器(ExtClassLoader) --> 根加载器(rootLoader)2.多线程java// 线程池// 线程池创建,三大方法Executors:Executors.newSingleThreadExecutor(); // 单个线程Executors.newFixedThreadPool(10); // 创建一个固定大小的线程池

2021-06-16 20:33:18 115

原创

Lock和SynchronizedLock用法// Lock三部曲// 1、Lock lock = new ReentrantLock(); 创建锁对象// 2、lock.lock(); 加锁// 3、finally => lock.unlock(); 解锁Lock lock = new ReentrantLock();lock.lock();try { // 需要加锁的业务代码 ...} catch(Exception e) { e.printStackTrace();

2021-06-16 20:15:34 100

原创 多线程

1.类加载2.多线程3.docker优点4.项目开发过程中遇到的问题,目前项目存在的问题,项目框架优化改进5.jvm参数6.项目组用到的读文件,写文件

2021-05-26 13:03:33 164

空空如也

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

TA关注的人

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