<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[三也_攻城狮]]></title><description><![CDATA[Code the Craft,Craft the Code]]></description><link>https://blog.csdn.net/chiweitree</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; chiweitree]]></copyright><item><title><![CDATA[【JAVA】类文件具有错误的版本 61.0, 应为 52.0]]></title><link>https://blog.csdn.net/chiweitree/article/details/126625381</link><guid>https://blog.csdn.net/chiweitree/article/details/126625381</guid><author>chiweitree</author><pubDate>Thu, 01 Sep 2022 11:22:03 +0800</pubDate><description><![CDATA[类文件具有错误的版本 61.0, 应为 52.0；
JDK版本依赖问题修复；]]></description><category></category></item><item><title><![CDATA[【后端知识总结】常用的研发知识总结]]></title><link>https://blog.csdn.net/chiweitree/article/details/125626427</link><guid>https://blog.csdn.net/chiweitree/article/details/125626427</guid><author>chiweitree</author><pubDate>Tue, 05 Jul 2022 19:30:37 +0800</pubDate><description><![CDATA[常用研发知识总结]]></description><category></category></item><item><title><![CDATA[【Linux】 Linux的多年工作经验总结，高频知识和技术原理]]></title><link>https://blog.csdn.net/chiweitree/article/details/125308693</link><guid>https://blog.csdn.net/chiweitree/article/details/125308693</guid><author>chiweitree</author><pubDate>Thu, 16 Jun 2022 08:13:58 +0800</pubDate><description><![CDATA[Linux常用知识]]></description><category></category></item><item><title><![CDATA[【布隆过滤器】布隆过滤器的原理]]></title><link>https://blog.csdn.net/chiweitree/article/details/125152574</link><guid>https://blog.csdn.net/chiweitree/article/details/125152574</guid><author>chiweitree</author><pubDate>Mon, 06 Jun 2022 19:30:03 +0800</pubDate><description><![CDATA[布隆过滤器]]></description><category></category></item><item><title><![CDATA[【XXL-JOB】 XXL-JOB 部署安装及使用]]></title><link>https://blog.csdn.net/chiweitree/article/details/115517571</link><guid>https://blog.csdn.net/chiweitree/article/details/115517571</guid><author>chiweitree</author><pubDate>Thu, 08 Apr 2021 13:16:21 +0800</pubDate><description><![CDATA[简介

XXL-JOB是一个分布式任务调度平台，其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线，开箱即用。



选型

框架对比（前人总结）

feature
			quartz
			elastic-job-cloud
			xxl-job
			antares
			opencron
		依赖
			mysql
			jdk1.7+, zookeeper 3.4.6+ ,maven3....]]></description><category></category></item><item><title><![CDATA[【feign】spring cloud feign声明式服务调用，springboot集成独立使用，不需要集成ribbon、hystrix、注册中心eureka等]]></title><link>https://blog.csdn.net/chiweitree/article/details/114701950</link><guid>https://blog.csdn.net/chiweitree/article/details/114701950</guid><author>chiweitree</author><pubDate>Fri, 12 Mar 2021 17:50:17 +0800</pubDate><description><![CDATA[背景

项目整体容器化，服务注册发现依赖SVC，内部服务调用全部过通过service name调用，走http协议，所以为了内部模块间调用的代码简化，选择了feign声明式服务调用，对HTTP的调用解析非常便捷，具体参照如下两个工程：



服务提供方

https://github.com/cwtree/cube-feign-provider.git

服务消费方

https://github.com/cwtree/cube-feign-co...]]></description><category></category></item><item><title><![CDATA[【mysql】springboot中使用 mybatis 实现乐观锁，支持并发更新，数据一致]]></title><link>https://blog.csdn.net/chiweitree/article/details/114279839</link><guid>https://blog.csdn.net/chiweitree/article/details/114279839</guid><author>chiweitree</author><pubDate>Tue, 02 Mar 2021 14:10:49 +0800</pubDate><description><![CDATA[【乐观锁】

相对于悲观锁，在对数据库进行处理的时候，乐观锁并不会使用数据库提供的锁机制。一般的实现乐观锁的方式就是记录数据版本。

乐观并发控制相信事务之间的数据竞争(data race)的概率是比较小的，因此尽可能直接做下去，直到提交的时候才去锁定，所以不会产生任何锁和死锁。



一般是在数据表中加入一个数据版本号version字段，表示数据被修改的次数，当数据被修改时，version指会加一。当线程A要重新更新数据值时，在读取数据的时候也会读取version值，在提交更新时，若刚才读取到的vers.]]></description><category></category></item><item><title><![CDATA[【framework】工程示例 通用工程脚手架初始化]]></title><link>https://blog.csdn.net/chiweitree/article/details/113887347</link><guid>https://blog.csdn.net/chiweitree/article/details/113887347</guid><author>chiweitree</author><pubDate>Sat, 20 Feb 2021 17:11:37 +0800</pubDate><description><![CDATA[比较通用的工程脚手架，用于初始化项目工程

工程github地址：https://github.com/cwtree/cube-project.git

包括的功能如下：

1、参数校验

2、swagger API

3、package分层示例

4、打包、脚本

5、tk.mybatis集成

6、统一manager层的缓存封装

7、异步@Async

8、线程池threadPool

9、分布式锁shedlock redis

10、轻量级定时任务

等等



希望大家一起fork，提交PR，一.]]></description><category></category></item><item><title><![CDATA[【jasypt】jasypt升级到3.x报错Failed to bind properties under ‘属性名‘ to java.lang.String]]></title><link>https://blog.csdn.net/chiweitree/article/details/113796576</link><guid>https://blog.csdn.net/chiweitree/article/details/113796576</guid><author>chiweitree</author><pubDate>Fri, 12 Feb 2021 20:05:43 +0800</pubDate><description><![CDATA[springboot 2.x工程，将jasypt升级到3.x--&gt;3.0.3后，配置一个属性为加密，工程启动后报错如下



                            
 ####  #    # #####  ###### 
#    # #    # #    # #      
#      #    # #####  #####  
#      #    # #    # #      
#    # #    # #    # #      
 ####   ####  ##]]></description><category></category></item><item><title><![CDATA[【架构】Apollo 配置中心 实践过程]]></title><link>https://blog.csdn.net/chiweitree/article/details/113696092</link><guid>https://blog.csdn.net/chiweitree/article/details/113696092</guid><author>chiweitree</author><pubDate>Fri, 05 Feb 2021 15:18:16 +0800</pubDate><description><![CDATA[技术选型

本人并未对当前市场上所有的配置中心做过深度使用体验。

结合前辈们总结的对比优缺点进行分析，同时使用过alibaba nacos和ctrip apollo，综合评估选型apollo







apollo可以说是一套完整的配置治理的解决方案，不仅仅是这个简单的配置中心的作用；而nacos是配置中心和注册中心二合一的产品，其中配置中心的整个使用过程中缺乏治理的作用，比较简单粗暴。

apollo有openAPI，跨语言支持，针对其它语言的客户端也可以按照标准API接入。



安装部署

..]]></description><category></category></item><item><title><![CDATA[【HTTPS】HTTPS过程详解，tcpdump抓包一步一步分析]]></title><link>https://blog.csdn.net/chiweitree/article/details/107563574</link><guid>https://blog.csdn.net/chiweitree/article/details/107563574</guid><author>chiweitree</author><pubDate>Wed, 29 Jul 2020 17:10:08 +0800</pubDate><description><![CDATA[RFC中的HTTPS交互过程如下：





抓包分析

Client Hello



客户端支持的TLS最高版本号

客户端生成的随机数

客户端支持的加密套件

主机名server_name



cipher suite怎么理解

名字为 ECDH-ECDSA-AES128-SHA256 的CipherSuite

使用 ECDH做密钥交换，
	使用ECDSA做认证，
	使用AES-128做加密算法，
	使用SHA256做MAC算法。
客户端能支持的加密套件即浏览器能支持的加密算法

Server.]]></description><category></category></item><item><title><![CDATA[【Linux】perf 火焰图 性能分析利器]]></title><link>https://blog.csdn.net/chiweitree/article/details/107478045</link><guid>https://blog.csdn.net/chiweitree/article/details/107478045</guid><author>chiweitree</author><pubDate>Tue, 21 Jul 2020 00:05:40 +0800</pubDate><description><![CDATA[大部分情况下，在进程级的性能优化，通过查看系统CPU、内存资源等基本都能定位到性能问题，定点解决，但是当你去帮别人做性能排查定位的时候，你不熟悉代码的情况，最快速的就是通过火焰图迅速输出系统调用栈的详细信息，分析出耗时的方法调用。

在JAVA开发过程中，通过visualvm的cpu抽样和内存抽样就可以达到上述效果，CPU抽样的堆栈就可以看出线程的调用关系，最后一层往往都是JDK的api调用，在这个过程中，基本就能定位到自己的哪个方法比较耗时了，但是如果光通过JDK的api还看不出问题，那就需要通过火...]]></description><category></category></item><item><title><![CDATA[【TCP】Connection reset by peer 原因分析定位]]></title><link>https://blog.csdn.net/chiweitree/article/details/105807660</link><guid>https://blog.csdn.net/chiweitree/article/details/105807660</guid><author>chiweitree</author><pubDate>Tue, 28 Apr 2020 18:02:19 +0800</pubDate><description><![CDATA[背景



client和server通过websocket协议通信，长连接保活，server前有nginx做反向代理，client和server是多对多关系；

server端定时给client下发任务，client执行任务并将结果上报给server，client还会定时给server发送心跳保活连接。

现象

系统运行一段时间之后，nginx上error日志频繁报错，如下：


2020/0...]]></description><category></category></item><item><title><![CDATA[【TCP】图解，一步一步拆解TCP包结构，各个字段分析]]></title><link>https://blog.csdn.net/chiweitree/article/details/105682118</link><guid>https://blog.csdn.net/chiweitree/article/details/105682118</guid><author>chiweitree</author><pubDate>Wed, 22 Apr 2020 15:59:00 +0800</pubDate><description><![CDATA[原始pcap包内容



TCP包结构定义







分析

源端口目的端口



序列号



确认号



序号是本报文段发送的数据组的第一个字节的序号。在TCP传送的流中，每一个字节一个序号。e.g.一个报文段的序号为300，此报文段数据部分共有100字节，则下一个报文段的序号为400。所以序号确保了TCP传输的有序性。确认号，即ACK，指明下一个期待收到的字节序号，表明该序号之前...]]></description><category></category></item><item><title><![CDATA[【JAVA】SpringCloud Feign Ribbon Hystrix Nacos 第一次调用服务报错 close  wrong [NA] failed to write cache for d]]></title><link>https://blog.csdn.net/chiweitree/article/details/105019892</link><guid>https://blog.csdn.net/chiweitree/article/details/105019892</guid><author>chiweitree</author><pubDate>Sat, 21 Mar 2020 23:29:24 +0800</pubDate><description><![CDATA[全部的报错信息如下


[20-03-21  21:30:36:824][INFO  ][org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]][http-nio-9277-exec-1]Initializing  Spring  DispatcherServlet  'dispatcherServlet'
[20-03-2...]]></description><category></category></item><item><title><![CDATA[【Thymeleaf】thymeleaf模板引擎发送邮件报错TemplateInputException: Error resolving template xxx]]></title><link>https://blog.csdn.net/chiweitree/article/details/104572442</link><guid>https://blog.csdn.net/chiweitree/article/details/104572442</guid><author>chiweitree</author><pubDate>Sat, 29 Feb 2020 13:49:01 +0800</pubDate><description><![CDATA[springboot2项目里结合thymeleaf模板引擎发送邮件，发现无法解析自定义的模板文件

application中配置如下


spring.thymeleaf.prefix=file:config/page

这里只配置一个prefix，因为其它配置项默认配置都是对的，这里不需要配置了，可参考

https://docs.spring.io/spring-boot/docs/2.2.4...]]></description><category></category></item><item><title><![CDATA[【Nginx】proxy_pass的一个/斜杠引发的血案]]></title><link>https://blog.csdn.net/chiweitree/article/details/104547757</link><guid>https://blog.csdn.net/chiweitree/article/details/104547757</guid><author>chiweitree</author><pubDate>Thu, 27 Feb 2020 23:54:19 +0800</pubDate><description><![CDATA[背景

一个nginx的server模块下需要proxy到两个server，所以就通过location的不同路径来区分转发到不同的服务器上。

一开始是这么写的


location / {
      proxy_pass  http://server1/;
}

location /index {
      proxy_pass  http://server2/;
}

但是忘记了serve...]]></description><category></category></item><item><title><![CDATA[【JAVA】SpringCloud-Alibaba 结合 Nacos 实现配置动态刷新和服务注册发现]]></title><link>https://blog.csdn.net/chiweitree/article/details/104407506</link><guid>https://blog.csdn.net/chiweitree/article/details/104407506</guid><author>chiweitree</author><pubDate>Thu, 20 Feb 2020 14:44:53 +0800</pubDate><description><![CDATA[SpringCloud通常指的是Netflix的，今天我们讲的SpringCloud-Alibaba，有大厂背书，我选择相信，而且阿里巴巴的各项业务复杂度都在你我公司之上，所以经过大厂实战验证的可信度很高。

目前SpringCloud-Alibaba提供的组件官网也有介绍，的确没有Netflix多，但是还在发展，没问题。

其实大家用SpringCloud的核心目的就是转型微服务，做架构升级，而...]]></description><category></category></item><item><title><![CDATA[【JAVA】 SpringBoot2.X 核心注解原理分析及ApplicationContext应用上下文创建过程]]></title><link>https://blog.csdn.net/chiweitree/article/details/104396068</link><guid>https://blog.csdn.net/chiweitree/article/details/104396068</guid><author>chiweitree</author><pubDate>Wed, 19 Feb 2020 17:24:00 +0800</pubDate><description><![CDATA[约定大于配置

百度百科

约定优于配置（convention over configuration），也称作按约定编程，是一种软件设计范式，旨在减少软件开发人员需做决定的数量，获得简单的好处，而又不失灵活性。

SpringBoot即是约定大于配置的充分体现，包括SpringCloud也是这样。

启动main函数



这是大家最常见的springboot的启动main函数写法。

在这个启动...]]></description><category></category></item><item><title><![CDATA[【Redis】Redis 5.0 哨兵模式安装部署以及主备切换验证]]></title><link>https://blog.csdn.net/chiweitree/article/details/104310353</link><guid>https://blog.csdn.net/chiweitree/article/details/104310353</guid><author>chiweitree</author><pubDate>Fri, 14 Feb 2020 14:22:14 +0800</pubDate><description><![CDATA[无意中发现了一个巨牛的人工智能教程，忍不住分享一下给大家。教程不仅是零基础，通俗易懂，而且非常风趣幽默，像看小说一样！觉得太牛了，所以分享给大家。点这里可以跳转到教程。



安装

redis 5.0 安装

https://redis.io/download

官网下载安装包





解压





安装

sudo yum install gcc gcc-c++ -y

make

...]]></description><category></category></item></channel></rss>