- 博客(149)
- 资源 (9)
- 收藏
- 关注

原创 应用启动间断性偶发dubbo:service interface not allow null! 问题解决
应用启动间断性偶发dubbo:service interface not allow null! 问题解决首先贴一下报错信息问题关键环境问题分析问题解决首先贴一下报错信息Caused by: java.lang.IllegalStateException: <dubbo:service interface="" /> interface not allow null! at org.apache.dubbo.config.ServiceConfig.checkAndUpdateSu
2021-06-14 15:37:56
2661
原创 mybatis plus踩坑
使用mybatis plus 框架的com.baomidou.mybatisplus.core.mapper.BaseMapper#insert 保存失败了,这也跟保存方法有关, 因为对象没有赋任何值,没有注解时框架会默认生成id,加了注解后等于所有字段都是空,就会报语法错误。场景是不使用数据库自增id时 没有问题,加了使用自增数据库id就报错,一时也是很懵逼。看这个sql ,当所有字段为空时,可不就会报错吧。
2023-08-03 19:27:19
591
原创 ribbon负载均衡原理
ribbon原理@Bean @LoadBalanced RestTemplate restTemplate(){ return new RestTemplate(); }问题从@LoadBalanced 注解怎么就可以负载均衡开始1. ribbon自动化配置流程这里梳理了自动化配置的时序图2. ribbon负载均衡调用过程1和2两个时序图梳理了整个过程源码我参考了博客的分析ribbon初始化配置ribbon请求流程...
2022-04-03 18:03:21
630
原创 T4CPreparedStatement内存溢出
oracle 批量插入数据时, 运行一段时间就会报内存溢出dump 内存之后发现T4CPreparedStatement 占用了83%的内存,并且老年代gc 没有生效,所以确定是T4CPreparedStatement对象导致内存溢出了4,464 instances of "oracle.jdbc.driver.T4CPreparedStatement", loaded by "sun.misc.Launcher$AppClassLoader @ 0x6c0024168" occupy 3,215,8
2020-10-21 16:14:20
1830
原创 spring boot junit共享src/main/resources下的资源文件
<build> <finalName>zybsync</finalName> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> ..
2020-09-11 10:49:39
506
原创 dubbo 2.7.3版本直连问题
使用2.7.3的版本会报找不到提供者错误升级为其他高版本又会报下面的错误,An attempt was made to call a method that does not exist. The attempt was made from the following location: com.alibaba.nacos.spring.beans.factory.annotation.AnnotationNacosInjectedBeanPostProcessor.initNacosServ
2020-08-01 22:04:03
989
原创 can‘t be changed from nested to non-nested
{ "error": { "root_cause": [ { "type": "illegal_argument_exception", "reason": "object mapping [ty_scenic_list] can't be changed from nested to non-nested" } ], "type": "il
2020-07-27 21:36:03
2303
1
原创 记录一个好用ER图软件dbschema
这个软件就是dbschema可以根据现有数据库创建er图,而且可以创建虚拟外键关系,只做关系图展示用layout的导出功能页超级流,原来要经常写文档,把表结构放到文档中;导出功能可以直接将表结构导出来,省的一个个字段列复制了参考文档...
2020-07-09 11:14:39
1935
原创 apollo配置logback 日志级别
经常会遇到开发环境日志级别需要debug, 而生产环境又不需要的情况;但是如果把日志级别放在logback文件中,往往会误吧配置带到生产环境去Apollo配置apollo.bootstrap.enabled=true#开启后,Apollo的配置会先于logback的配置加载apollo.bootstrap.eagerLoad.enabled=trueApollo中新增logger日志级别的配置,这样开发环境在Apollo指定为debug级别,生产环境默认使用info级别就可以了 #默
2020-07-03 11:18:12
2208
原创 spring Conditional是怎么生效的
平时看spring源码中经常用到Conditional这个注解,今天来看一下他是怎么生效的其实我是发现Conditional注解是在ConditionEvaluator类的shouldSkip方法中调用了org.springframework.context.annotation.ConditionEvaluator#shouldSkipshouldSkip方法有个枚举类型的参数ConfigurationPhase, PARSE_CONFIGURATION 是标示配置解析阶段;REGISTER_BE
2020-07-01 21:39:15
296
原创 dubbo Duplicate consumer configs或Duplicate provider configs问题解决
新项目中使用了2.7.3 的版本报错如下Caused by: java.lang.IllegalStateException: Duplicate provider configs: <dubbo:provider timeout="3000" retries="0" filter="providerTraceFilter" dynamic="true" version="1.0.0" register="true" group="zybprod" deprecated="false" id="o
2020-06-30 21:04:25
2152
原创 com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused 解决
开发环境可以启动成功,但是过段时间就会报这个错误com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused虽然不影响功能,也很恶心的。问题方向也很清晰,有地址配置错误了#eureka配置 eureka: client: registerWithEureka: true fetchRegistry: true
2020-06-26 14:40:45
829
原创 浏览器添加header参数插件HTTP Header Mangler
插件名称 HTTP Header Mangler适用浏览器 —火狐社区说明地址
2020-06-19 09:56:25
1753
原创 ZooKeeper 可视化工具 zkui
安装使用很简单,这里只是mark一下github 地址 https://github.com/DeemOpen/zkuiGitHub下载慢的话,码云上找一找也是可以的 https://gitee.com/chrischen2018/zkui?_from=gitee_search
2020-06-19 09:52:14
573
原创 TKmybatis 空指针异常
2020-06-16 22:05:15.706 INFO [bootstrap,fda5efa790a39879,dbdeebe931e3b033,false] 16573 --- [XNIO-2 task-1] c.sendinfo.yearcard.biz.YearCardTeamBiz : 查询团队开卡异常java.lang.NullPointerException: null at org.apache.ibatis.binding.MapperMethod.executeFo
2020-06-17 15:10:16
553
原创 feign配合hystrix使用时,到底怎么设置超时时间,feign 和 hystrix 的超时时间哪个会生效
首先feign 和hystrix 都可以设置超时时间feign 的默认超时时间有点长,在构造方法中feign.Request.Options#Options()public Options() { //默认connectTimeoutMillis连接超时时间为10秒 //默认readTimeoutMillis超时时间为60秒 this(10 * 1000, 60 * 1000); }hystrix 的默认超时时间为1秒private static .
2020-06-08 18:05:56
2372
1
原创 centos7 配置静态ip
ifconfig命令 查看当前网卡eno16777736 不同机器可能不一样[root@localhost network-scripts]# ifconfigeno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.152.130 netmask 255.255.255.0 broadcast 192.168.152.255 inet6 fe80:.
2020-06-07 18:10:23
193
转载 channel声明队列的queueDeclare方法的参数说明
durable: 是否持久化, 队列的声明默认是存放到内存中的,如果rabbitmq重启会丢失,如果想重启之后还存在就要使队列持久化,保存到Erlang自带的Mnesia数据库中,当rabbitmq重启之后会读取该数据库exclusive:是否排外的,有两个作用,一:当连接关闭时connection.close()该队列是否会自动删除;二:该队列是否是私有的private,如果不是排外的,可以使用两个消费者都访问同一个队列,没有任何问题,如果是排外的,会对当前队列加锁,其他通道channel是不能访问的,
2020-05-31 19:55:23
2103
原创 rabbitmq---顺序消息几点思考
rabbitMq要想实现顺序消息,哪就要保证一个任务队列只有一个消费者,曾经这句话给我带来了不少困惑?顺序消费,只有一个队列,一个消费者,这样吞吐量就会下降,怎么优化?多数业务场景下,可以做局部顺序,创建多个队列,同一业务id的消息发送到同一个消息队列,这样队列数增加,消费者数量也会增加 了生产者消息入队乱序怎么办?乱序举例: 如正常生产者消息入队后顺序应该为 m3 m2 m1, 但由于生产者端乱序,队列里的顺序是 m3 m1 m2我现在想到的是:a. 首先生产者要保证消息发
2020-05-31 19:01:24
828
原创 redis5 集群缩扩容
查看了下多数博客都是按扩缩容来介绍这一块, 我想已经有个搭建的3主3从的集群了, 先缩再扩也是一样的放在前面的命令, 现在redis 已经不支持用ruby操作了,使用下面的命令帮助可以很好地完成集群操作[root@localhost src]# ./redis-cli --cluster help下面看步骤先看下 之前的集群节点信息127.0.0.1:6379> cluster nodes# 这个是要删除的主节点5c831c468474b918911965a0d4e7f45f9a4
2020-05-28 22:56:27
326
原创 k8s init问题
v1.14.0 problem : It seems like the kubelet isn't running or healthy. #75803The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: d...
2020-05-04 11:17:09
777
原创 spring boot 中DispatcherServle 的配置
1.配置类DispatcherServletConfigurationprotected static class DispatcherServletConfiguration { // 配置DispatcherServlet bean @Bean(name = DEFAULT_DISPATCHER_SERVLET_BEAN_NAME) public Dispatc...
2020-03-08 20:09:48
549
原创 spring boot 启动tomcat过程
从SpringApplication run方法开始public ConfigurableApplicationContext run(String... args) { 、、、 try { ApplicationArguments applicationArguments = new DefaultApplicationArguments(args); Config...
2020-03-08 17:44:41
190
原创 @Autowired 注入时配合@lazy是怎么起作用的
业务代码如下@Servicepublic class OrderFacadeImpl implements OrderFacade { // 通过Autowired 延迟注入bean @Autowired @Lazy private XJClient xJClient;注入的入口获取OrderFacadeImpl bean时会通过org.spring...
2020-02-26 23:06:14
8905
转载 Spring 循环依赖如何解决
循环依赖是什么?Bean A 依赖 B,Bean B 依赖 A这种情况下出现循环依赖。Bean A → Bean B → Bean A更复杂的间接依赖造成的循环依赖如下。Bean A → Bean B → Bean C → Bean D → Bean E → Bean A循环依赖会产生什么结果?当Spring正在加载所有Bean时,Spring尝试以能正常创建Bean的顺序去创...
2020-02-26 21:20:06
477
原创 springboot mybatis 自动配置
先看自动配置类MybatisAutoConfiguration配置了几个重要的bean通过SqlSessionFactoryBean 工厂bean配置SqlSessionFactorySqlSessionTemplateMapperScannerRegistrarNotFoundConfiguration 导入AutoConfiguredMapperScannerRegistrar...
2020-02-16 19:15:49
1172
原创 springboot 事务aop自动配置
自动配置类org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration配置类代码不贴了,但配置类中有个重要的注解是一定要的@EnableTransactionManagement@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTI...
2020-02-11 22:10:57
531
原创 spring mvc @ResponseBody为什么会返回json字符串
spring mvc 处理返回值要从RequestMappingHandlerAdapter 说起RequestMappingHandlerAdapter 实现了接口InitializingBeanRequestMappingHandlerAdapter bean 创建 的入口,spring boot 中是在org.springframework.web.servlet.confi...
2020-02-08 23:53:30
1016
原创 spring requestMapping注解将url映射到controller方法
1url 映射的handler(即controller) 会放在RequestMappingHandlerMapping 类中,RequestMappingHandlerMapping的父类是AbstractHandlerMethodMappingAbstractHandlerMethodMapping 实现了InitializingBeanRequestMappingHandler...
2020-02-08 23:00:32
493
原创 spring mvc 中的SPI应用
接口就是: org.springframework.web.servlet.HandlerAdapter策略就是:org.springframework.web.servlet.DispatcherServlet#getHandlerAdapter方法,根据策略获取不同的HandlerAdapter实现配置文件就是: DispatcherServlet.properties (默认)spr...
2020-02-08 12:38:06
811
原创 spring 循环依赖
循环依赖的三种情况(1) 构造注入,循环依赖不能够解决(2) scope为singleton的set 注入注入,循环依赖能够解决(3) scope为prototype的set 注入注入,循环依赖不能够解决org.springframework.beans.factory.support.DefaultSingletonBeanRegistry#getSingleton的三级缓存解释为什么...
2020-02-04 20:22:39
113
原创 spring cloud hystrix
@EnableHystrix 开关@EnableCircuitBreakerpublic @interface EnableHystrix {}// EnableCircuitBreaker 通过import打开开关@Import(EnableCircuitBreakerImportSelector.class)public @interface EnableCircuitB...
2020-02-02 21:28:19
238
原创 spring cloud feign
网上资料很多了,在这里mark下 feign源码原理了解下启动时,程序会进行包扫描,扫描所有包下所有@FeignClient注解的类,并将这些类注入到spring的IOC容器中。当定义的Feign中的接口被调用时,通过JDK的动态代理来生成RequestTemplate。RequestTemplate中包含请求的所有信息,如请求参数,请求URL等。RequestTemplate声场Re...
2020-02-02 18:23:27
186
原创 spring cloud ribbon
网上资源很多,找了两个还不错的链接放在这里,以便查看ribbon详解含源码https://www.jianshu.com/p/1bd66db5dc46几个重要的类LoadBalancerAutoConfiguration 负载均衡自动配置LoadBalancerInterceptor 拦截器是执行负载均衡器的入口RibbonAutoConfiguration ribbon自...
2020-02-01 16:36:12
141
1
原创 springcloud 配置中心原理
客户端加载配置org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration#initializePropertySourceBootstrapConfiguration 类继承了ApplicationContextInitializer ,应用初始化时就会调用initialize 方法而ini...
2019-12-30 18:14:42
1252
原创 spring boot 外部化配置源码跟踪
先展示下官方外部化配置文档点击查看官方链接配置优先级如下截图,序号越小优先级越高跟踪下源码org.springframework.boot.SpringApplication#run(java.lang.String…) 方法开始public ConfigurableApplicationContext run(String... args) { StopWatch stopW...
2019-12-29 18:04:42
157
原创 springcloud bootstrap context加载过程解析以及怎么成为main context的parent
The Bootstrap Application Context概念这里是引用A Spring Cloud application operates by creating a “bootstrap” context, which is a parent context for the main application. It is responsible for loading co...
2019-12-19 00:09:03
1078
深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)源代码
2017-09-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人