<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wenyixicodedog的博客]]></title><description><![CDATA[wenyixicodedog的博客]]></description><link>https://blog.youkuaiyun.com/wenyiCodeDog</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wenyiCodeDog]]></copyright><item><title><![CDATA[nacos配置中心动态刷新原理分析(server端)]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/124521033</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/124521033</guid><author>wenyiCodeDog</author><pubDate>Sat, 30 Apr 2022 23:42:33 +0800</pubDate><description><![CDATA[在之前上一篇文章中我们一起看了nacos配置中心动态刷新client端的长轮询逻辑监听、事件发布变更配置和client端怎么和SpringBoot整合。
所以，本篇我们主要来看nacos服务端是怎么处理客户端长轮询监听配置变更和主动推送变更配置的。]]></description><category></category></item><item><title><![CDATA[nacos配置中心动态刷新原理分析【客户端】]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/124416909</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/124416909</guid><author>wenyiCodeDog</author><pubDate>Mon, 25 Apr 2022 23:06:28 +0800</pubDate><description><![CDATA[通过配置中心，可以使得配置标准化、格式统一化。
当配置信息发生变动时，修改实时生效，无需要重新重启服务器，可以实时去调整相关对应的业务。]]></description><category></category></item><item><title><![CDATA[美团Cat监控集成Hystrix线程池链路分析]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/124234769</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/124234769</guid><author>wenyiCodeDog</author><pubDate>Sun, 17 Apr 2022 19:39:49 +0800</pubDate><description><![CDATA[CAT（Central Application Tracking）是一个实时和接近全量的监控系统，它侧重于对Java应用的监控，在中间件（MVC、RPC、数据库、缓存等）框架中得到广泛应用，为业务线提供系统的性能指标、健康状况、监控告警等。]]></description><category></category></item><item><title><![CDATA[Tomcat线程池监控及线程池原理分析]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/123783579</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/123783579</guid><author>wenyiCodeDog</author><pubDate>Sun, 27 Mar 2022 22:42:55 +0800</pubDate><description><![CDATA[当有新任务时，Tomcat的线程池核心线程如果已经创建完了，Tomcat会尽最大努力开启新的非核心线程去执行新任务，而JUC的ThreadPoolExecutor则是入队，等待队列满了再创建新的非核心线程去执行任务。]]></description><category></category></item><item><title><![CDATA[HystrixCommand使用及创建线程池问题]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/123604774</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/123604774</guid><author>wenyiCodeDog</author><pubDate>Sat, 19 Mar 2022 22:47:00 +0800</pubDate><description><![CDATA[①、groupKey的默认值是使用@HystrixCommand标注的方法所在的类名
    ②、commandKey的默认值是@HystrixCommand标注的方法名，即每个方法会被当做一个HystrixCommand
    ③、threadPoolKey没有默认值，和groupKey保持一致]]></description><category></category></item><item><title><![CDATA[一次服务端大面积接口响应时间骤增问题排查]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/123587642</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/123587642</guid><author>wenyiCodeDog</author><pubDate>Sat, 19 Mar 2022 00:21:17 +0800</pubDate><description><![CDATA[1. 有时候即使沟通其他部门，查看他们的接口耗时情况，即使他们的接口耗时正常，但是，也并不一定就表示是我们的问题，有可能问题出在网络链路中(nginx等)。
2. http调用重试机制还是要根据具体的业务场景进行使用，不能盲用。
3. 接口耗时超时时间要度量好，不宜过大不宜过短。
4. 问题排查要仔细而全面，不能放过任何蛛丝马迹，在没有确定证据之前不能想当然判定哪里有问题或者决定一个想法，一旦确定问题，处理要果断。]]></description><category></category></item><item><title><![CDATA[记一次服务端内存泄漏排查之旅（第二篇）]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/123465622</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/123465622</guid><author>wenyiCodeDog</author><pubDate>Sun, 13 Mar 2022 20:47:37 +0800</pubDate><description><![CDATA[本次线上内存泄漏表现出来(接到报警通知)是在上上周末，当大家都沉浸在周末的闲暇时光的时候

，突然工作群接到运维通知说监控到我们的服务爆出一些500的错误，一时间，小组哗然，大家忙着看各种监控指标是否正常，发现内存大量被占用，居高不下释放不掉，cup持续飙高，接口耗时也非常严重。]]></description><category></category></item><item><title><![CDATA[二叉树的遍历-前序、中序、后序、层次 Java]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/121070617</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/121070617</guid><author>wenyiCodeDog</author><pubDate>Sun, 31 Oct 2021 21:48:59 +0800</pubDate><description><![CDATA[二叉树结构：


    static class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;

        TreeNode(int val) {
            this.val = val;
        }
    }

前序遍历：


 递归：
 static void traverseTreeNodePreRecursion(TreeNode root) {
        i]]></description><category></category></item><item><title><![CDATA[SpringBoot配置MessageConvert，取消字段首字母大写自动转小写]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/120904712</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/120904712</guid><author>wenyiCodeDog</author><pubDate>Fri, 22 Oct 2021 14:05:53 +0800</pubDate><description><![CDATA[方式一：

@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
    //1.定义一个Convert转换消息的对象
    FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
    //2.设置特性
    //非线程安全，确保执行一次
    TypeUtils.compatibleWithFieldNam.]]></description><category></category></item><item><title><![CDATA[Java代码开发规范]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/120883751</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/120883751</guid><author>wenyiCodeDog</author><pubDate>Thu, 21 Oct 2021 11:55:33 +0800</pubDate><description><![CDATA[声明：本文基于《阿里巴巴代码规约-嵩山版》，在自己理解的基础上稍有扩展，希望帮到需要的朋友。

1、POJO 类中的任何布尔类型的变量，都不要加 is 前缀，否则部分框架解析会引起序列化错误。

说明：在MySQL 建表约定表达是与否的变量采用 is_xxx 的命名方式，所以，需要在&lt;resultMap&gt;设置从 is_xxx 到 xxx 的映射关系。

反例：定义为基本数据类型 Boolean isDeleted 的属性，它的方法也是 isDeleted()，框架在反向解析的时候，“误以为”对应]]></description><category></category></item><item><title><![CDATA[Java程序猿面试分享]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/120856962</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/120856962</guid><author>wenyiCodeDog</author><pubDate>Tue, 19 Oct 2021 23:10:00 +0800</pubDate><description><![CDATA[1、过往项目经历，项目亮点，遇到什么难题，怎么解决的，有没有其他解决方案。讲讲项目架构以及做了哪些高可用方案设计

2、MQ( ROCKETMQ)项目中使用场景，ROCKETMQ架构原理

3、ROCKETMQ是怎么保证消息不丢失的，业务中消息消费幂等性是怎么保证的，场景。

4、REDIS做缓存怎么保证缓存不被穿透、击穿。

5、怎么防止商品超卖，阐述处理流程。

6、数据库存储原理，做过哪些优化，怎么优化、索引合并、最左匹配原则，mvcc。。

7。数据库ICP优化

8、JVM使用的那种垃圾收集器，分]]></description><category></category></item><item><title><![CDATA[程序猿面试分享(偏基础部分)]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/120856951</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/120856951</guid><author>wenyiCodeDog</author><pubDate>Tue, 19 Oct 2021 23:09:08 +0800</pubDate><description><![CDATA[1、synchronized怎么实现的？锁升级过程。
2，Reentrant怎么实现的，相比于synchronized有哪些特性，可重入、非公平竞争是怎么实现的。
3、线程池得七个参数都是在什么阶段使用到。
4、countdownlatch执行过程。
5、gc算法有哪些，各自得优缺点。
6、cms的执行四个阶段，每个阶段做了什么事情。年轻代回收怎么触发的老年代回收(卡表是怎么新建、更新引用关系的)。
7、new object创建一个对象做了那些事情(1、查询这个对象是否已经创建，2、分配内存3、初始化)第.]]></description><category></category></item><item><title><![CDATA[朋友阿里面试分享]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/120856879</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/120856879</guid><author>wenyiCodeDog</author><pubDate>Tue, 19 Oct 2021 23:05:52 +0800</pubDate><description><![CDATA[朋友阿里面试分享，base杭州，已发offer：

阿里达摩院面试：

1、ConcurrentHashMap，HashMap原理，1.7和1.8的区别。

2、怎么设计一个秒杀系统，瞬时高并发设计，限流设计。

3、分布式锁Redisson加锁原理，锁失败，锁续期，公平锁，非公平锁，集群模式下有哪些问题。

4、Redis阻塞队列。

5、Java中锁有哪些，锁升级过程，锁原理。

6、spring bean处理器，生命周期，bean循环依赖。

7、jvm年轻代，老年代垃圾收集算法，对象何时进入到老年代]]></description><category></category></item><item><title><![CDATA[记一次JVM内存泄漏问题及解决（第一篇）]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/119722179</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/119722179</guid><author>wenyiCodeDog</author><pubDate>Sun, 15 Aug 2021 23:19:24 +0800</pubDate><description><![CDATA[这里定义的ThreadExecutorConfig.thirdServiceExecutor()只是一个类的静态static方法，所以在调用这个类的静态thirdServiceExecutor()方法的时候，每次都是new 一个新对象ThreadPoolTaskExecutor]]></description><category></category></item><item><title><![CDATA[Java获取本地IP地址]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/119700409</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/119700409</guid><author>wenyiCodeDog</author><pubDate>Sat, 14 Aug 2021 14:12:16 +0800</pubDate><description><![CDATA[public static String getLocalAddress() {
        try {
            // Traversal Network interface to get the first non-loopback and non-private address
            Enumeration&lt;NetworkInterface&gt; enumeration = NetworkInterface.getNetworkInterfaces();
.]]></description><category></category></item><item><title><![CDATA[jvm性能问题排查常用命令]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/119059951</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/119059951</guid><author>wenyiCodeDog</author><pubDate>Sat, 24 Jul 2021 16:16:42 +0800</pubDate><description><![CDATA[1、查看进程下线程信息


ps p 1 -L -o pcpu,pid,tid,time,tname,cmd,pmem,rss,wchan:30,psr,stat

标准格式说明符：

代码
			头部
			描述
		%mem
			%MEM
			进程占用物理内存的百分比
		args
			COMMAND
			输出命令及其全部参数
		cmd
			CMD
			alias args
		comm
			COMMAND
			仅输出可执行文件的名字
		command
			COMMAND
			a]]></description><category></category></item><item><title><![CDATA[kibana message 显示日志行不全，被截断]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/118696621</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/118696621</guid><author>wenyiCodeDog</author><pubDate>Tue, 13 Jul 2021 11:45:40 +0800</pubDate><description><![CDATA[kibanamessage显示日志行不全，被截断怎么解决：
在kibana的management=&gt;advancesetting里设置truncate:maxHeight为0。
]]></description><category></category></item><item><title><![CDATA[springboot 设置跨域]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/115238202</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/115238202</guid><author>wenyiCodeDog</author><pubDate>Fri, 26 Mar 2021 12:53:35 +0800</pubDate><description><![CDATA[package com.alibaba.repeater.console.start.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.]]></description><category></category></item><item><title><![CDATA[Java多线程 之 Semaphore源码分析]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/107679659</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/107679659</guid><author>wenyiCodeDog</author><pubDate>Mon, 30 Nov 2020 00:24:51 +0800</pubDate><description><![CDATA[​目录

       1、背景介绍

       2、运行实例

       3、源码分析

一、背景介绍

信号量(Semaphore)，也被称为信号量，是在多线程环境下使用的一种工具类, 它负责协调各个线程, 以保证它们能够以一定数量地、正确、合理的使用公共资源。

 每一个线程获取到一个计数信号量后，计数信号量就会减1，知道计数信号量为0,表示计数信号量已经不可用了，在许可可用前会阻塞每一个 acquire()。。拿到信号量的线程可以进入代码，否...]]></description><category></category></item><item><title><![CDATA[seata源码初始启动报错(protobuf)]]></title><link>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/110295205</link><guid>https://blog.youkuaiyun.com/wenyiCodeDog/article/details/110295205</guid><author>wenyiCodeDog</author><pubDate>Sat, 28 Nov 2020 22:31:26 +0800</pubDate><description><![CDATA[seata，前身fescar，是一款开源的分布式事务解决方案，致力于提供高性能和简单易用的分布式事务服务。

Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式，为用户打造一站式的分布式解决方案。

seata源码导入到idea中第一次启动server端的时候，编译会报错如下：



很明显就是protobuf包下generated不存在，其实这是由于seata的serializer项目么有编译造成的，只需要我们idea下载安装Protobuf Support插件，然后重启idea，然后]]></description><category></category></item></channel></rss>