开场白开发人员每天进行开发设计,多需要启动项目,难免会遇到一些项目起不来的情况,这个时候需要进行日志分析,尽量自己解决,实在解决不了,就得虚心请教同事,尤其是比较急的事情,不是很急的事情,还是最好自己进行分析解决。问题描述在项目启动的时候,报NoSuchBeanDefinitionException,截图如下:原因原因是项目在引用其他项目的client,当前项目的容器,没有把当前的client的b
开场白当项目拆分成多个微服务时,这个时候多个服务就需要进行管理,服务提供者把服务注册上去,其他消费者就可以进行调用了,当有新的服务注册上来,客户端会定时拉去服务列表跟本地存在的服务列表对比,进行服务列表的更新,当有服务下线,也会更新列表,服务提供者和消费者是动作的主要发起者,eureka注册中心是处理请求的接收者,可以先从eureka客户端作为入口研究,看看主动发起者是怎样和注册中心完成通信的。源
问题描述当两个环境共享一个私服时,一个环境的先发布,拉去最新代码;另外一个环境没有发布,没有发布的环境,代码里面没有包含传过来的属性,就会报错。问题跟踪跟踪1上面这个代码,就是一个环境发布拉去最新的代码,另外一个环境没有发布,导致没有相关属性。跟踪2把上面objMap的注释去掉,这种情况会执行成功,因为设置了属性不存在,不报异常的情况。源码分析1、根据英文说明,默认是true,只要属性不存在就会抛
问题描述当项目起不来的时候,一般会报创建bean失败或者是没有类发现,会导致项目初始化失败,这个时候就要根据日志来进行分析,解决问题。问题跟踪跟踪1:启动项目,报以下异常,hibernate的校验类没有发现,导致项目初始化异常跟踪2根据校验类,搜索相关依赖版本,校验有两个版本号,一个是6.0.17和5.3.6,类加载的时候,不知道加载哪一个版本的类跟踪3把相关依赖包里面的相关校验依赖排除掉,只留下
开场白生活是美好的,咱们无论什么时候得充满信心,对未来充满希望,并以平衡为美对于咱们的技术架构也是一样,也是一样,要做到技术对业务的平衡,并不能因为某项技术好就使用它,要从业务、公司发展及他因素寻找平衡点。异中求同,折中冲突,乃万事万物生存之道。-赫拉克利特问题描述有时候有这样的需求,客户端通过feign的client进行调用服务的接口,进行跑数据,但是这个跑数据是批量跑,需要耗费很长的时间进行返
问题描述有些需求,需要把上一步批量操作返回的主键作为下个表的关联使用,这个时候用mybatis批量操作,mybatis批量操作有些版本不能返回主键,只能一个一个的插入,这样就降低了效率。问题跟踪跟踪1mybatis的主线版本,能够正确返回主键id,主线版本修复了这个问题,并且@Param可以自定义命名跟踪2mybais的3.3.x-3.4.x源码里面判断参数的属性,并设值在这些版本是修复了这个问题
概述spring流行了很长时间了,是一个用java编写的轻量级框架,受到了很多公司及程序员的欢迎,Bean生命周期是一个像对象实例化开始到销毁的全过程,了解生命周期是很有必要的。重要性spring的生命周期是比较复杂的,只有了解其过程及原理才能更好的扩展程序。源码分析生命周期过程bean的实例化![](https://s4.51cto.com/images/blog/202010/08/ed763
概述源码就是能够被用来执行,生成机器能够识别的代码,通过开源源码,可以引用其功能。重要性1、mybatis中的sql执行,不紧要知道返回的结果是什么,还需要知道这结果是怎么来的,经过了怎样的处理,只有知道了这样的原理,碰到问题才能更好的知道问题出在那个环节。2、能更好的扩展应用程序,可以做到代码的复用,减少开发成本和时间。3、学习其中的设计思想能够在其他应用得已应用。步骤源码阅读,可以从测试用例着
概述平常在请求服务的时候,负载均衡一般会用到随机访问,但是随机访问的缺点是负载不均衡,有的服务请求的次数多,有的少;轮询,请求分配均衡,但是如果性能好的机器,想多分配些不行,导致资源白白浪费;权重轮询,权重静态配置,不灵活。hash取模策略,如果某台机器宕机,就会导致返回服务失败。分库分表的时候采取hash取模,如果是增加机器或者是减少机器,数据迁移就会全局迁移,因为机器数据增加或者减少,导致取模
zk用的算法是zab协议,里面写到必须可用节点数过半才能选举出一个leader
在工作中,我们可能会碰到各种各样的问题,如何优雅地处理这些事情,非常考验一个人的能力。
在部署zookeeper的时候,大家有没有想过官方为什么建议部署奇数个节点
用了io这么久,有没有真正的理解了,比如BIO、NIO、AIO是什么,能够在什么场景用到?
SpringBoot2.0性能优化(一)
-XX:+PrintGC每次触发GC的时候打印相关日志-XX:+UseSerialGC串行回收-XX:+PrintGCDetails更详细的GC日志-Xms堆初始值-Xmx堆最大可用值-Xmn新生代堆最大可用值-XX:SurvivorRatio用来设置新生代中eden空间和from/to空间的比例.-XX:NewRatio配置新生代与老年代占比1:2含以-XX:SurvivorRatio=eden
客户端启动,把配置文件,配置项存到仓库,等到服务端启动,从服务端拉取数据;服务端更新,则通过zk通知客户端,客户端知道更新后,会从服务端拉取最新的配置文件,如果更新的是redis配置,则需要写回调函数重启redis,不写,则要重启项目;更新其它的一些参数不需要重启项目;另外zk最好配成集群模式,这样可以做到高可用,一个主服务端挂了,会选举另外一个从的作为主服务端。
工作中大家要用到很多工具类,第三方的jar中有很多现成的工具类符合自己的项目需要,这个时候就不需要去重复造轮子了
目前项目包含了 客户端disconf-Client和 管理端disconf-Web两个模块。目前所有模块代码均是Java实现
java中定义变量,int a=0;而python中为 a=0;由此可见java要事先申明数据类型,python中无需事先申明数据类型,拿来就可以用,Python 的语法要比Java 更灵活。
在程序中,有些表数据,数据很少,
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号