<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yangjnsjbad的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yangjnsjbad</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yangjnsjbad]]></copyright><item><title><![CDATA[3 步完成 Spring Boot 的日志脱敏]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125817793</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125817793</guid><author>yangjnsjbad</author><pubDate>Sat, 16 Jul 2022 11:34:43 +0800</pubDate><description><![CDATA[一个项目在书写了很多打印日志的代码，但是后面有了脱敏需求，如果我们去手动改动代码，会花费大量时间。如果引入本组件，完成配置即可轻松完成脱敏。（仅需三步可轻松配置）1、引入Jar包依赖前提是你将Jar包打入本地仓库，Jar包地址见后文。2、替换日志文件配置类(logback.xml)日志打印方式都只需要替换成脱敏的类即可，如果你的业务不需要，则无需替换。①ConsoleAppender-控制台脱敏//原类//替换类②RollingFileAppender-滚动文件//原类//原类。...]]></description><category></category></item><item><title><![CDATA[Java | 平铺列表（List）互转树形（Tree）结构]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125817588</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125817588</guid><author>yangjnsjbad</author><pubDate>Sat, 16 Jul 2022 11:20:25 +0800</pubDate><description><![CDATA[至此，递归和非递归分别实现和已完成，实现比较仓促，有很多细节处未处理好，希望看到的小伙伴及时指出，不胜感激。httpshttps。]]></description><category></category></item><item><title><![CDATA[这么卷吗？公司新来的00后工作没两年，跳槽到我们公司起薪18K，都快接近我了]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125802447</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125802447</guid><author>yangjnsjbad</author><pubDate>Fri, 15 Jul 2022 13:27:21 +0800</pubDate><description><![CDATA[最近和他聊了一次天，原来这位小老弟家里条件不太好，一大家子指望他一个人养活，所以他再大三的时候就已经开始自学Java了，大四获得了一个小公司的实习机会。在工作中不断的学习、实践，花的时间比别人多一倍，所以才能打下扎实的基础，现在工作也是得心应手。共206页包含分布式，中间件，大数据与高并发，数据库，设计模式与实践，数据结构与算法，HR面试题举例等一起分享出来给大家看看，也是给大家平时查漏补缺。后面我以部门培训为由，让他分享了他的学习笔记，据说是他在阿里10年大佬的一个学长总结出的《阿里内部面试笔记》。...]]></description><category></category></item><item><title><![CDATA[新一代HTAP数据库崛起，MySQL生态的最佳归宿？]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125802387</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125802387</guid><author>yangjnsjbad</author><pubDate>Fri, 15 Jul 2022 13:19:33 +0800</pubDate><description><![CDATA[数据库领域同样如此。过去五十余年，数据库经历OLTP和OLAP两种需求漫长的融合-分离-再融合的过程。究其原因，数据库的发展始终与用户场景需求变迁紧密相关。如今，随着云计算和大数据的兴起，业务场景正在经历前所未有的变革，数据库领域也掀起了一股HTAP浪潮。Gartner在多次报告中强调，HTAP是数据库领域最重要的发展趋势之一，也是用户数字化转型中重要的数据平台。业界甚至认为，HTAP的兴起代表着数据库大融合时代的开启。那么，为什么数据库大厂和云服务巨头们均纷纷押宝HTAP？...]]></description><category></category></item><item><title><![CDATA[面试官：完全背包都不会，是你自己走还是我送你？]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125798305</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125798305</guid><author>yangjnsjbad</author><pubDate>Fri, 15 Jul 2022 13:14:12 +0800</pubDate><description><![CDATA[分析问题设置dp数组并分析数组的含义。寻找动态转移方程，分析dp数组当中数据之间的依赖关系，我们在迭代的时候一定要遵循这个关系。初始化数组。进行数组dp求解。分析动态转移方程的含义和数据依赖关系，分析是否能够在不破坏数据依赖关系的条件下，优化数组空间。其实上面的套路对于大多数动态规划的题目都有用的，因为动态规划的流程基本一致，而动态规划最难的地方就是第一步了，通过分析问题寻找动态转移方程。httpshttps。...]]></description><category></category></item><item><title><![CDATA[面试被问MySQL 如何去重，还有谁不会？]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125779991</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125779991</guid><author>yangjnsjbad</author><pubDate>Thu, 14 Jul 2022 10:59:30 +0800</pubDate><description><![CDATA[在 MySQL 中通常是使用 distinct 或 group by子句，但在支持窗口函数的 sql（如Hive SQL、Oracle等等） 中还可以使用 row_number 窗口函数进行去重。举个栗子，现有这样一张表 task： 备注：我们需要求出任务的总数量，因为 task_id 并非唯一的，所以需要去重：


distinct 通常效率较低。它不适合用来展示去重后具体的值，一般与 count 配合用来计算条数。distinct 使用中，放在 select 后边，对后面所有的字段的值统一进行去重。比如]]></description><category></category></item><item><title><![CDATA[RabbitMQ面试29连问，看完还过不了面试，我给你一Jio]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125758973</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125758973</guid><author>yangjnsjbad</author><pubDate>Wed, 13 Jul 2022 10:43:32 +0800</pubDate><description><![CDATA[目前已经更新了Nginx，感兴趣的朋友也可以去看一下废话不多说，开始今天的面试之旅RabbitMQ是实现了高级消息队列协议（AMQP）的开源消息代理软件（亦称面向消息的中间件）。RabbitMQ服务器是用Erlang语言编写的，而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。可靠性: RabbitMQ使用一些机制来保证可靠性， 如持久化、传输确认及发布确认等。灵活的路由 : 在消息进入队列之前，通过交换器来路由消息。对于典型的路由功能， RabbitMQ 己经提]]></description><category></category></item><item><title><![CDATA[使用uuid做MySQL主键，被老板，爆怼一顿]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125757560</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125757560</guid><author>yangjnsjbad</author><pubDate>Wed, 13 Jul 2022 09:58:04 +0800</pubDate><description><![CDATA[1.1：要说明这个问题,我们首先来建立三张表,分别是user_auto_key,user_uuid,user_random_key,分别表示自动增长的主键,uuid作为主键,随机key作为主键,其它我们完全保持不变.根据控制变量法,我们只把每个表的主键使用不同的策略生成,而其他的字段完全一样，然后测试一下表的插入速度和查询速度：注：这里的随机key其实是指用雪花算法算出来的前后不连续不重复无规律的id:一串18位长度的long值id自动生成表格： 用户uuid表 随机主键表： 技术框架：springboot]]></description><category></category></item><item><title><![CDATA[从零开始把 SpringBoot 搬到 K8s 上运行，我用了这几步！]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125757315</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125757315</guid><author>yangjnsjbad</author><pubDate>Wed, 13 Jul 2022 09:46:08 +0800</pubDate><description><![CDATA[大家好，我是网管。咱们的 K8s 入门和实践，在经历了三篇理论知识的后，相信各位都已经期待许久（可能的吧），就差私信我，你整着理论整半天有啥用，本大人写的程序怎么能放到 K8s 上运行。别急，今天这篇文章就带你从写第一行代码开始，一步步教你把程序放到 K8s 跑起来。这次咱们先用 Spring Boot开发的程序做个例子，后面再写一篇怎么把 Spring Boot 应用放到 K8s 上运行。本文的重点，不在于那种语言写的程序，而是先学会应用 上到 K8s 的步骤，所以编程部分的演示非常简单，恨不能写一行代码]]></description><category></category></item><item><title><![CDATA[服务器宕机了，Kafka 消息会丢失吗？]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125757157</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125757157</guid><author>yangjnsjbad</author><pubDate>Wed, 13 Jul 2022 09:42:50 +0800</pubDate><description><![CDATA[消息队列可谓是高并发下的必备中间件了，而 Kafka 作为其中的佼佼者，经常被我们使用到各种各样的场景下。随着 Kafka 而来得，还有三个问题：消息丢失、消息重复、消息顺序。今天，树哥带大家聊聊消息丢失的问题。回到标题提出的问题：我们是否真的能保证 Kafka 消息不丢失？答案是：我们无法保证 Kafka 消息不丢失，只能保证某种程度下，消息不丢失。这里所说的某些情况，从严重程度依次为：Kafka 宕机、服务器宕机、机房地震、城市毁灭、地球毁灭。不要觉得树哥在危言耸听，如果你的服务器部署在乌克兰的首都，那]]></description><category></category></item><item><title><![CDATA[面试官：应用上线后Cpu使用率飙升如何排查？]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125757084</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125757084</guid><author>yangjnsjbad</author><pubDate>Wed, 13 Jul 2022 09:37:25 +0800</pubDate><description><![CDATA[其实这是个很常见的问题，也非常简单，那既然如此我为什么还要写呢？因为上次回答的时候我忘记将线程PID转换成16进制的命令了。所以我决定再重温一遍这个问题，当然贴心的我还给大家准备好了测试代码，大家可以实际操作一下，这样下次就不会忘记了。


在main方法中开启了一个线程，无限构建对象。


准备好上面的代码，运行HighCpuTest，然后就可以开始一些列的操作来发现问题原因了。


上一步用 命令找到了那个 Java 进程。那一个进程中有那么多线程，不可能所有线程都一直占着 CPU 不放，这一步要做的就]]></description><category></category></item><item><title><![CDATA[【双管齐下】BAT 面试Java岗经验汇总：面试重点+精选面试120题+6条面试经验]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125736690</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125736690</guid><author>yangjnsjbad</author><pubDate>Tue, 12 Jul 2022 09:48:09 +0800</pubDate><description><![CDATA[我发现一个奇怪的现象：那些跳槽的人，总是从一个坑，跳进令一个坑中。毕竟一段工作经历过去了，会的还是原来的知识，人的身价就摆在那里，无论怎么折腾，也不会拿到更好的offer。这样的跳槽其实没有意义，也许就有人问，现在都是互联网寒冬了，要怎样才能把握好机会，拿到跟好跟适合自己的offer呢？技术才是我们程序员的立身之本，在再好的机遇面前我们也要有这个实力去抓住它。561be3dbc077de015a81802fa888b0dc_v2-e792990d5021b2d6e4c0de23836bb654_1440w_]]></description><category></category></item><item><title><![CDATA[Redis 内存优化神技，小内存保存大数据]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125736357</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125736357</guid><author>yangjnsjbad</author><pubDate>Tue, 12 Jul 2022 09:40:38 +0800</pubDate><description><![CDATA[我们应该从 Redis 是如何保存数据的原理展开，分析键值对的存储结构和原理。从而继续延展出每种数据类型底层的数据结构，针对不同场景使用更恰当的数据结构和编码实现更少的内存占用。为了保存数据， Redis 需要先申请内存，数据过期或者内存淘汰需要回收内存，从而拓展出内存碎片优化。最后，说下 key、value 使用规范和技巧、 Bitmap 等高阶数据类型，运用这些技巧巧妙解决有限内存去存储更多数据难题……这一套组合拳下来直接封神。具体详情，且看「码哥」一一道来。主要优化神技如下：在优化之前，我们先掌握 R]]></description><category></category></item><item><title><![CDATA[分库分表真的适合你的系统吗？聊聊分库分表和NewSQL如何选择]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125736140</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125736140</guid><author>yangjnsjbad</author><pubDate>Tue, 12 Jul 2022 09:23:03 +0800</pubDate><description><![CDATA[曾几何时，“并发高就分库，数据大就分表”已经成了处理 MySQL 数据增长问题的圣经。面试官喜欢问，博主喜欢写，候选人也喜欢背，似乎已经形成了一个闭环。但你有没有思考过，分库分表真的适合你的系统吗？在业务刚刚发展起来的时候，流量全部打到了一个 MySQL 上，用户信息全落到了 user 表。后来，user 表的数据量越来越大了。于是，你做了一次垂直拆分，将原来的 user 表拆分成了新的 user 表和 user_details 表。这样一拆之后，用户的信息分散到两个表，user 表的数据量一下就变小了，u]]></description><category></category></item><item><title><![CDATA[【重磅】写了400多页的Java面试八股文PDF，面试必备]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125718535</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125718535</guid><author>yangjnsjbad</author><pubDate>Mon, 11 Jul 2022 12:01:29 +0800</pubDate><description><![CDATA[大家好呀，最近很多小伙伴，让我帮忙找找 Java 面试资料。于是我把以前的面试专栏的文章，整理成PDF啦！有MySQL、Redis、消息队列、计算机网络、Zookeeper、Java基础、以及各个大厂的面试真题，大家一起学习，卷起来！文末货曲面试专栏PDF                 对上述资料有需要的朋友，可以点赞+关注小编后，见瓶轮驱~...]]></description><category></category></item><item><title><![CDATA[mysql数据库查询好慢，除了索引，还能因为什么？]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125715317</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125715317</guid><author>yangjnsjbad</author><pubDate>Mon, 11 Jul 2022 09:41:55 +0800</pubDate><description><![CDATA[我熟练应用ctrl c和ctrl v 开发curd代码好多年了。mysql查询为什么会慢，关于这个问题，在实际开发经常会遇到，而面试中，也是个高频题。遇到这种问题，我们一般也会想到是因为索引。那除开索引之外，还有哪些因素会导致数据库查询变慢呢？有哪些操作，可以提升mysql的查询能力呢？今天这篇文章，我们就来聊聊会导致数据库查询变慢的场景有哪些，并给出原因和解决方案。我们先来看下，一条查询语句下来，会经历哪些流程。比如我们有一张数据库表


我们平常写的应用代码（go或C++之类的），这时候就叫客户端了。客]]></description><category></category></item><item><title><![CDATA[一文带你深入理解SpringBean生命周期之InitializingBean详解]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125351916</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125351916</guid><author>yangjnsjbad</author><pubDate>Sat, 18 Jun 2022 21:27:46 +0800</pubDate><description><![CDATA[Spring Bean的生命周期是一个比较复杂的过程，从创建到销毁，包含了一些列的过程，本章重点讲解下Spring Bean的。首先我们来回顾下Spring Bean整个生命周期。执行阶段： 其中标记黄色部分的就是我们本文的主角，它是在bean的属性被设置值之后，调用bean init-method属性指定的方法之前执行的。


只有一个方法，见名知意，这个方法是在bean的属性值被设置以后执行。 Spring给我们提供了这么一个扩展点，可以用来做很多的事情, 比如可以修改默认设置的属性，添加补充额外的属性]]></description><category></category></item><item><title><![CDATA[知乎万赞：什么样的程序员在35岁以后依然被公司抢着要?打破程序员“中年危机”]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125350716</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125350716</guid><author>yangjnsjbad</author><pubDate>Sat, 18 Jun 2022 19:26:30 +0800</pubDate><description><![CDATA[程序员圈子里一直流传着一个魔咒：35 岁的中年危机。这些“传说”令许多程序员每离 35 岁进一步，就更焦虑一分，并迫切寻找打破这一魔咒的方法。35 岁，真的是职场荣枯线吗?前段时间看到知乎上的这个帖子：35 岁似乎已成职场荣枯线，失业风险叠加中年危机加剧焦虑，你如何看待「 35 岁危机」?个人觉得的，其实 我们工作到了一定的年纪，有时候不用社会淘汰你，你自己就感觉体力跟不上了尤其是互联网公司，做开发的35岁甚至不到35岁，很多普遍转行或者是被动离职的。(PS：这里不卖焦虑)我们要以正确要以正确的眼光看待：如]]></description><category></category></item><item><title><![CDATA[在 Pisa-Proxy 中，如何利用 Rust 实现 MySQL 代理]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125332951</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125332951</guid><author>yangjnsjbad</author><pubDate>Fri, 17 Jun 2022 14:27:45 +0800</pubDate><description><![CDATA[背景在 Database Mesh 中，Pisanix 是一套以数据库为中心的治理框架，为用户提供了诸多治理能力，例如：数据库流量治理，SQL 防火墙，负载均衡和审计等。在 Pisanix 中，Pisa-Proxy 是作为整个 Database Mesh 实现中数据平面的核心组件。Pisa-Proxy 服务本身需要具备 MySQL 协议感知，理解 SQL 语句，能对后端代理的数据库做一些特定的策略，SQL 并发控制和断路等功能。在这诸多特性当中，能够理解 MySQL 协议就尤为重要，本篇将主要介绍 MySQ]]></description><category></category></item><item><title><![CDATA[Spring Cloud 如何统一异常处理？写得太好了！]]></title><link>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125332846</link><guid>https://blog.youkuaiyun.com/yangjnsjbad/article/details/125332846</guid><author>yangjnsjbad</author><pubDate>Fri, 17 Jun 2022 14:23:26 +0800</pubDate><description><![CDATA[在启动应用时会发现在控制台打印的日志中出现了两个路径为 {[/error]} 的访问地址，当系统中发送异常错误时，Spring Boot 会根据请求方式分别跳转到以 JSON 格式或以界面显示的 /error 地址中显示错误信息。


Spring Boot 基础就不介绍了，推荐下这个实战教程：
https://github.com/javastacks/spring-boot-best-practice


默认异常处理

使用 AJAX 方式请求时返回的 JSON 格式错误信息。


使用浏览器请求时返]]></description><category></category></item></channel></rss>