- 博客(35)
- 收藏
- 关注
原创 Spring事务里required里多线程调用required_new方法到底符不符合预期
spring中required和required_new 使用
2022-08-11 19:10:41 487
原创 mysql clickhouse 数据迁移问题记录
迁移工具:clickhouse-mysql-data-reader使用感觉还是比较方便,速度也比较快。1.迁移脚本:clickhouse-mysql \--src-host=192.168.0.111 \--src-user=root \--src-password=root \--src-tables=<database>.<table> \--migrate-table \--dst-host=192.168.0.111 \--dst-schema=<d
2021-12-16 15:53:58 916
原创 spring cloud config client端无法同步配置文件问题处理
这里记录下在使用spring cloud config client遇到的问题。1.无法从获取config server端获取到同后缀{yml/properties}的配置:config server配置是git。当github中的配置文件是{application}-{profile}.yml.如果config client端 resource目录下也存在xxx.yml配置,那么则无法从config server中获取到目标yml文件,如果把gitbub中对应的文件后缀改成properties,则可
2021-11-27 19:39:21 416
原创 Mac M1 中Jet Brains软件(Idea,Goland)无法打开问题解决
我是把intel版 数据迁移到 arm版中。然后又新装了arm适配版的Idea等。软件打不开的问题大概率是因为残留文件的影响。删除旧的文件删除:「 /Users/你的文件/Library/Preferences/ 」 目录下相关的文件删除:「/Users/XXXX/Library/Application Support/JetBrains/xxx/xxx.vmoptions」文件。...
2021-11-10 12:23:48 3375
原创 Netty池化内存理解:Recycler
我们上几篇文章分析了池化内存的使用:PoolChunk和PoolSubPage我们通过代码看到了池化内存后将一些信息都记录到了ByteBuf的实现类上。在allocat()方法之前都会调用newByteBuf()返回一个实例,那个在这个过程干了什么呢,我们需要也了解下。PooledDirectByteBuf.newInstance(maxCapacity)我们还是以PooledDirectByteBuf为例:static PooledDirectByteBuf newInstance(int max
2021-11-03 14:50:08 312
原创 Netty池化内存理解:PoolArea
日常推荐:Netty PoolArea原理探究我们继续带着问题去看这部分。PoolArea在netty中是如何使用的1.PooledByteBufAllocator在PooledByteBufAllocator类中有对应的PoolArena数组,此数组时与线程数相关的,目的是为了减少在多线程分配内存时线程竞争。public static final PooledByteBufAllocator DEFAULT = new PooledByteBufAllocator(Pl
2021-10-31 22:49:52 378
原创 Netty池化内存理解:PoolChunk和PoolSubPage
日常推荐:Netty PoolArea原理探究Netty PoolChunk原理探究这两篇文章我觉得可以很好的帮助理解池化内存一些相关内容。这个池化内存我们是如何使用的呢?1.首先来到NioSocketChannle 读取数据部分:if ((readyOps & (SelectionKey.OP_READ | SelectionKey.OP_ACCEPT)) != 0 || readyOps == 0) { unsafe.read(); }//NioByteUn
2021-10-31 20:19:28 236
原创 Netty中自研的FastThreadLocal、FastThreadLocalThread的使用
netty觉得java中的ThreadLocal不好用,于是就又搞了一套类似的“产品”:「FastThreadLocal」,你还可以发现其他几个定义:PoolThreadLocalCache,PoolThreadCache,FastThreadLocalThread,InternalThreadLocalMap,一套组合拳下来,直呼厉害的同时,也晕了。其他这些都是和「ThreadLocal」类似的一些定义。FastThreadLocal和 ThreadLocal 相关的对比PoolThreadLoca
2021-10-28 21:09:05 535
原创 Synchronized膨胀为重量级锁之后的抢锁过程
当我们了解到synchronized的重量级锁之后,是不是会有疑问:当一个线程释放锁之后,阻塞的线程是如何去获取到锁呢?是否还存在自旋等待锁呢???这里依旧推荐两篇,我觉得不错的文章:monitor对象结构底层实现Synchronized底层实现看完这两篇文章,相信你心里的疑惑可能已经解开了。下面开始我的表演了。在我们使用synchronize的后,我们都是在对应的字节码看到两个字节码指令:对应的字节码具体逻辑可以在推荐文章到有展示,也可以自己搜下完整实现。我们再看下object Monit
2021-08-05 20:49:19 441
原创 代码演示synchronize锁的变化过程
synchronize 涉及的锁:偏向锁,轻量级锁,重量级锁的相关概念和总结的文章已经很多了,这里推荐两篇我觉得不错的:锁状态锁的升级我把这个变换过程通过代码一起展示下:public static void main(String[] args) throws InterruptedException { Thread.sleep(5000); System.out.println(ByteOrder.nativeOrder()); Test a = new Test(); Sys
2021-08-04 16:16:23 135
原创 看Netty对粘包半包问题的理解
只要看到netty相关的内容,总会出现对粘包半包等问题疑惑。开发这么久的web服务,也没看到tomcat内部有这部分逻辑呀?难道是netty搞复杂了?寻遍全网以及和大佬的求证,肤浅的解答一下自己的疑惑:1.Http协议的作用tomcat作为web服务器,一般都通过http协议进行通信。根绝http协议的定义,通过请求行、请求头、消息体等定义可以很方便解析到对应数据,因此我们只需要在传输层解析到对应的数据结构即可。看netty对http协议的支持,也可以在代码中看到encoder/decoder的设置。大
2021-07-16 20:38:38 161
原创 zuul 执行过程源码探究
1.使用zuul//使用注解@EnableZuulProxy@EnableCircuitBreaker@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Import(ZuulProxyMarkerConfiguration.class)public @interface EnableZuulProxy {}这个注解的作用呢,首先看下zuul的spring.factories:org.springframewo
2021-06-27 00:48:13 184
原创 k8s中部署grafana
一次排坑记录!1. k8s中创建对应的grafana资源grafana官方yaml我在apply这个文件里遇到里两个问题service 中的type需要设置为「NodePort」:apiVersion: v1kind: Servicemetadata: name: grafanaspec: ports: - port: 13000 # 这里预防端口冲突 protocol: TCP targetPort: http-grafana selector:
2021-06-08 18:55:43 2839
原创 spring源码中常见‘父基类’分析
接口:ImportBeanDefinitionRegistrar初始化方法的入口也是Application.refresh()方法:public void refresh() throws BeansException, IllegalStateException { try { // Allows post-processing of the bean factory in context subclasses. postProcessBeanFactory(beanFactory)
2021-05-13 13:31:34 130
原创 Feign 执行过程源码分析
例行分享大佬的优秀文章:Feign分析Feign详解Feign源码1使用Feign注解@EnableFeignClients
2021-05-12 21:50:18 405
原创 不简单的单例模式
写出最适合的单例1懒汉模式(lazy init)public class Singleton { private Singleton singleton; // 构造函数是private,防止外部实例化 private Singleton() {} // 静态方法获取实例 public static Singleton getInstance() { if (singleton == null) { s
2021-04-16 19:31:17 115
原创 hystrix 功能点探究
本着从源码入手学习工具的思想,以hystrixCommand.execute()方法为例,看了下hystrix的执行过程,说实话有点绕,而且Rxjava的一些语法规则了解的也不是很透,只能以Rxjava 回调的思想说服自己去,最后执行是怎么样的,最后将执行defer()方法中的逻辑。日常分享我感觉优秀的文章:SpringCloud使用Hystrix实现断路器降级熔断框架 Hystrix 源码解析:滑动窗口统计那么回到hystrix的功能上:资源隔离熔断降级功能点理解1资源隔离在微
2021-04-15 16:20:59 98
原创 java 导出Excel文件
厌倦了之前项目中导出excel时要写一堆代码,而且感觉学习成本还比较高。使用了下hutool这个工具类,导出execl真是太清爽了。@RequestMapping(value = "downLoadEexcel") @ResponseBody public void downLoadEexecl(ResourceAnalysisListInput input, @RequestAttribute(value = "scope", required = false) String scope,
2021-04-02 19:14:45 325 1
原创 Springmvc中的dispatcherServlet执行过程一探究竟
背景 :前端请求中的参数一直映射不到自定义的Bean中。于是便想自己看下这个转换的过程。1.调研当然已经有很多大佬进行过自己的分析。好文章一大摞,但是找到适合自己的,自己看的有意思的却很费劲。我这里先分享几个:1)Spring序列化与反序列化设计探究2)SpringMVC对象绑定时自定义名称对应关系3)Tomcat各组件分析2.实现具体代码实现我抄了下第二篇文章。在最后注入argument-resolvers时有了一点自己的体会,这个内容之后分析下。我觉得我们可以先看下第三篇文章对To
2021-03-29 23:06:09 158
原创 springboot初始化Tomcat容器并加载关键servlet
不要迷失在源码中!这个初始化过程我分析了13步。希望你可以有收获~1 springboot 运行run方法1.跟踪run方法进入到代码:/** * Run the Spring application, creating and refreshing a new * {@link ApplicationContext}. * @param args the application arguments (usually passed from a Java main method)
2021-02-20 17:07:37 390
原创 mysql string到int的隐式类型转换的坑
首先写个问题:CREATE TABLE IF NOT EXISTS `tbl` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `process_id` varchar(64) NOT NULL DEFAULT '', PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARSET = utf8; 然后执行:sele
2021-01-22 22:59:19 766
原创 springboot https 生产环境实战
背景公司提供的证书、密钥 .crt 和.key文件,都是通过k8s挂载的方式使用。在springboot如何进行使用呢1 尝试在springboot中是否可以直接使用.crt 等文件呢,做了一些尝试,一些异常。这条路被堵死。一些文章,说tomcat支持的是pem jks的相关的证书密钥,也就是java自己的格式。好吧,只能按照老路子生成 java的证书密钥库。2 指令1 openssl pkcs12 -export -in /etc/service.crt -inkey /etc/service.
2020-08-14 12:23:58 256
原创 java项目在linux中打包部署
本以为在服务器上打包和本地一样easy。踩坑无数。1.编写Makefilebuild: mvn install -Dmaven.test.skip=trueREGISTRY ?= "registry.cn-beijing.aliyuncs.com/XXX"VERSION ?= $(shell git describe --exact-match 2> /dev/null || \ git describe --match=$(git rev-parse -
2020-05-28 21:06:16 388
原创 idea 中格式化项目代码-缩进方式
如果缩进方式不统一,github查看代码时,会导致代码错乱,影响展示效果对于idea中项目代码的格式化操作:由于idea中使用了goole-java-formate 和save actions代码格式插件,所以要对相关插件配置进行调整1 设置code style2 save actions 配置调整更改save actions的配置信息:一定要勾选reformate file 否...
2020-03-04 18:20:50 3896
原创 log4j、logback等日志配置文件日志文件输出位置
对配置文件中文件制定为相对路径为例以log4j和logback为例log4j在SSM框架,跑在Tomcat中#RollingFilelog4j.appender.RollingFile=org.apache.log4j.DailyRollingFileAppender#相对路径logs/appcore_cmdb.loglog4j.appender.RollingFile.File=l...
2020-02-28 12:59:16 579
原创 idea中配置tomcat进行热部署开发
1.配置tomcat的Deploymentexplded的方式区别与war的方式:war的方式,只能通过打新的war,使更改生效。2.配置ServerUpdate action选项选择:update classes and resources这个选项可以使更改java和jsp时,在调试模式下可以立即生效。ps:如果Deployment选项中,选择的是war,此时下拉列表中可能只有Re...
2020-01-08 15:51:38 388
原创 通过docker创建nexus私服仓库
本想是用常规方法在Linux中安装nexus并运行的,但是在下载nexus的安装包时,倒腾了好久,无奈用起了docker。唯一就是担心,虽然通过挂载卷的方式指定了容器中目录,但是还是担心,万一…… 实践出真知嘛。开始安装:下载镜像docker search nexusdocker pull sonatype/nexus3我选择的是nexus3仓库中镜像运行镜像do...
2019-12-21 16:33:58 174
原创 centos中jdk的安装
centos中jdk的安装yum方式安装yum search java | grep jdk2.yum install java-1.8.0-openjdk等待完成即可其他方式,尝试后补充
2019-12-21 11:22:45 92
原创 制作tomcat镜像的Dockerfile
我的上一篇文章中,分享了如何通过制作tomcat镜像部署war,这次想分享一下Dockerfile中的一些小东西上代码:FROM tomcat:9.0.10-jre8MAINTAINER "zxc <zhaoxiangchun@yunionyun.cn>"USER rootENV TZ Asia/ShanghaiENV LANG C.UTF-8ADD ./target/...
2019-11-14 21:09:11 159
原创 Docker中构建tomcat镜像并同时部署war
首先编写DockerfileFROM tomcat:9.0.10-jre8MAINTAINER "zxc <zhaoxiangchun@yunionyun.cn>"USER rootENV TZ Asia/ShanghaiENV LANG C.UTF-8ADD ./target/zhTask.war /usr/local/tomcat/webapps/#COPY ....
2019-11-14 21:00:59 308
原创 @PostConstruct不被调用的原因
如果在配置文件中配置使用,延迟加载的话,如图:被@Service等注解的类,需要在注入使用的时候,才会被初始化.如果TableInit类只是被定义而没有在其他地方引用的话,@PostConstrut注释的方法是不会执行的....
2019-11-14 14:37:39 4000
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人