<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sinat_36387539的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sinat_36387539</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sinat_36387539]]></copyright><item><title><![CDATA[OSS下载中文名编码错误]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/130098771</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/130098771</guid><author>sinat_36387539</author><pubDate>Wed, 12 Apr 2023 09:54:15 +0800</pubDate><description><![CDATA[关于获取oss中文名称文件，名称乱码编译问题]]></description><category></category></item><item><title><![CDATA[java - 中间件 Maven]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/124189748</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/124189748</guid><author>sinat_36387539</author><pubDate>Mon, 18 Apr 2022 09:49:38 +0800</pubDate><description><![CDATA[什么是Maven

Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Object Model (POM)概念来管理项目，所有的项目配置信息都被定义在一个叫做POM.xml的文件中…
Maven是一款跨平台的项目管理工具，是一个开源的项目…
Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理…
POM怎么理解呢？？？
我们使用Java是面向对象编程，对象就是我们的类
而Maven是面向项目，把我们的项目看做成是一个对象来进行管...]]></description><category></category></item><item><title><![CDATA[java - JVM CPU100%，问题排查]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/124143098</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/124143098</guid><author>sinat_36387539</author><pubDate>Wed, 13 Apr 2022 11:00:10 +0800</pubDate><description><![CDATA[前段时间我们新上了一个新的应用，因为流量一直不大，集群QPS大概只有5左右，写接口的rt在30ms左右。
因为最近接入了新的业务，业务方给出的数据是日常QPS可以达到2000，大促峰值QPS可能会达到1万。
所以，为了评估水位，我们进行了一次压测。压测过程中发现，当单机QPS达到200左右时，接口的rt没有明显变化，但是CPU利用率急剧升高，直到被打满。
压测停止后，CPU利用率立刻降了下来。
于是开始排查是什么导致了CPU的飙高。
					问题排查与解决

在压测期间，登录到机器，开始排查问题。
本案例]]></description><category></category></item><item><title><![CDATA[java - JVM堆外内存泄漏故障排查记录]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/124142738</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/124142738</guid><author>sinat_36387539</author><pubDate>Wed, 13 Apr 2022 10:51:23 +0800</pubDate><description><![CDATA[记录一次线上JVM堆外内存泄漏问题的排查过程与思路，其中夹带一些「JVM内存分配的原理分析」以及「常用的JVM问题排查手段和工具分享」，希望对大家有所帮助。
在整个排查过程中，我也走了不少弯路，但是在文章中我仍然会把完整的思路和想法写出来，当做一次经验教训，给后人参考，文章最后也总结了下内存泄漏问题快速排查的几个原则。
「本文的主要内容：」
故障描述和排查过程
故障原因和解决方案分析
JVM堆内内存和堆外内存分配原理
常用的进程内存泄漏排查指令和工具介绍和使用
故障描述
8月12日中午午休时间，我们商业服务]]></description><category></category></item><item><title><![CDATA[java - JVM 线上服务的FGC问题排查]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/124142565</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/124142565</guid><author>sinat_36387539</author><pubDate>Wed, 13 Apr 2022 10:42:43 +0800</pubDate><description><![CDATA[线上服务的GC问题，是Java程序非常典型的一类问题，非常考验工程师排查问题的能力。同时，几乎是面试必考题，但是能真正答好此题的人并不多，要么原理没吃透，要么缺乏实战经验。
过去半年时间里，我们的广告系统出现了多次和GC相关的线上问题，有Full GC过于频繁的，有Young GC耗时过长的，这些问题带来的影响是：GC过程中的程序卡顿，进一步导致服务超时从而影响到广告收入。
这篇文章，我将以一个FGC频繁的线上案例作为引子，详细介绍下GC的排查过程，另外会结合GC的运行原理给出一份实践指南，希望对你有所帮助]]></description><category></category></item><item><title><![CDATA[java 中间件 - redis 秒杀系统]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/124117455</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/124117455</guid><author>sinat_36387539</author><pubDate>Tue, 12 Apr 2022 10:22:44 +0800</pubDate><description><![CDATA[絮叨
之前写了很多Redis相关的知识点，我又大概回头看了下，除了比较底层的东西没写很深之外，我基本上的点都提到过了，我相信如果只是为了应付面试应该是够了的，但是如果你想把它们真正的吸收纳为己用，还是需要大量的知识积累，和很多实际操作的。
就我自己而言Redis在开发过程中实在用得太普遍了，热点数据的存储啊，整体性能的提升啊都会用到，但是就像我说的技术就是一把双刃剑，使用它们随之而来的问题也会很多的，我在老东家双十二就遇到缓存雪崩问题让整体服务宕机3分钟，想必大家都知道阿里今年的双十一数据了，那三分钟在这种]]></description><category></category></item><item><title><![CDATA[java - 中间件 -Redis常见面试题]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/124116562</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/124116562</guid><author>sinat_36387539</author><pubDate>Tue, 12 Apr 2022 10:15:59 +0800</pubDate><description><![CDATA[缓存知识点

缓存有哪些类型？
缓存是高并发场景下提高热点数据访问性能的一个有效手段，在开发项目时会经常使用到。
缓存的类型分为：本地缓存、分布式缓存和多级缓存。
本地缓存：
本地缓存就是在进程的内存中进行缓存，比如我们的 JVM 堆中，可以用 LRUMap 来实现，也可以使用 Ehcache 这样的工具来实现。
本地缓存是内存访问，没有远程交互开销，性能最好，但是受限于单机容量，一般缓存较小且无法扩展。
分布式缓存：
分布式缓存可以很好得解决这个问题。
分布式缓存一般都具有良好的水平扩展能力，对较大数据量]]></description><category></category></item><item><title><![CDATA[java - 中间件 Redis哨兵、持久化、主从、手撕LRU]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/124115815</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/124115815</guid><author>sinat_36387539</author><pubDate>Tue, 12 Apr 2022 09:32:37 +0800</pubDate><description><![CDATA[前言
Redis在互联网技术存储方面使用如此广泛，几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。作为一个在互联网公司面一次拿一次offer的面霸（请允许我使用一下夸张的修辞手法），打败了无数竞争对手，每次都只能看到无数落寞的身影失望的离开，略感愧疚，在一个寂寞难耐的夜晚，我痛定思痛，决定开始写《吊打面试官》系列，希望能帮助各位读者以后面试势如破竹，对面试官进行360°的反击，吊打问你的面试官，让一同面试的同僚瞠目结舌，疯狂收割大厂Offer！
絮叨
写这期其实比较纠结]]></description><category></category></item><item><title><![CDATA[java - 操作系统 Linux]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/124093676</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/124093676</guid><author>sinat_36387539</author><pubDate>Mon, 11 Apr 2022 15:36:49 +0800</pubDate><description><![CDATA[1.什么是Linux
Linux是一套免费使用和自由传播的类似Unix操作系统，一般的WEB项目都是部署放在Linux操作系统上面。Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想，是一个性能稳定的多用户网络操作系统。
2.Windows和Linux的区别
Windows是微软开发的操作系统，民用操作系统，可用于娱乐、影音、上网。Windows]]></description><category></category></item><item><title><![CDATA[java - 中间件 ElasticSearch面试题]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/124044598</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/124044598</guid><author>sinat_36387539</author><pubDate>Fri, 08 Apr 2022 16:31:00 +0800</pubDate><description><![CDATA[1、详细描述一下 Elasticsearch 更新和删除文档的过程。
（1）删除和更新也都是写操作，但是 Elasticsearch 中的文档是不可变的，因此不能被删除或者改动以展示其变更；
（2）磁盘上的每个段都有一个相应的.del 文件。当删除请求发送后，文档并没有真的被删除，而是在.del 文件中被标记为删除。该文档依然能匹配查询，但是会在结果中被过滤掉。当段合并时，在.del文件中被标记为删除的文档将不会被写入新段。
（3）在新的文档被创建时，Elasticsearch 会为该文档指定一个版本号，当]]></description><category></category></item><item><title><![CDATA[java - 中间件 Elasticserarch]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/124041121</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/124041121</guid><author>sinat_36387539</author><pubDate>Fri, 08 Apr 2022 16:20:50 +0800</pubDate><description><![CDATA[1.ElasticSearch了解多少，说说你们公司es的集群架构，索引数据大小，分片有多少，以及一些调优手段？
比如：ES集群架构13个节点，索引根据通道不同共20+索引，根据日期，每日递增20+，索引：10分片，每日递增1亿+数据，每个通道每天索引大小控制150GB之内。
1.1、设计阶段调优
（1）根据业务增量需求，采取基于日期模版创建索引，通过roll over API滚动索引；
（2）使用别名进行索引管理
（3）每天凌晨定时对索引做force_merge操作，释放空间
（4）采取冷热分离机制，热数]]></description><category></category></item><item><title><![CDATA[spring - 框架 Nginx]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/124033237</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/124033237</guid><author>sinat_36387539</author><pubDate>Fri, 08 Apr 2022 11:32:16 +0800</pubDate><description><![CDATA[1.什么是Nginx？
Nginx是一个轻量级/高性能的反向代理WEB服务器，他实现非常高效的反向代理、负载均衡，他可以处理2-3万并发连接数，官方监测能支持五万的并发，现在中国使用nginx网站用户有很多，例如：新浪、网易、腾讯等。
2.为什么要使用Nginx？
跨平台、配置简单、反向代理、高并发看姐、内存消耗小：开启10个nginx才占用150M内存，nginx处理静态文件好，消耗内存少
而且Nginx内置的健康检查功能：如果有一个服务器宕机，会做一个健康检查，在发送的请求就不会发送到宕机的服务器。重新]]></description><category></category></item><item><title><![CDATA[java框架 - SpringCloud]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/123897118</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/123897118</guid><author>sinat_36387539</author><pubDate>Fri, 01 Apr 2022 14:39:40 +0800</pubDate><description><![CDATA[什么是微服务架构
微服务架构就是将单体的应用程序分成多个应用程序，这多个应用程序就成为微服务，每个微服务运行在自己的进程中，并使用轻量级的机制通信。这些服务围绕业务能力来划分，并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言，不同数据库，以保证最低限度的集中式管理。


为什么需要学习Spring Cloud
首先springcloud基于spingboot的优雅简洁，可还记得我们被无数xml支配的恐惧？可还记得springmvc，mybatis错综复杂的配置，有了spingboot，这些..]]></description><category></category></item><item><title><![CDATA[java框架 - Spring Boot]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/123894443</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/123894443</guid><author>sinat_36387539</author><pubDate>Fri, 01 Apr 2022 14:23:33 +0800</pubDate><description><![CDATA[什么是SpringBoot?
通过Spring Boot，可以轻松地创建独立的，基于生产级别的Spring的应用程序，您可以“运行”它们。大多数Spring Boot应用程序需要最少的Spring配置。快速开发，快速整合，配置简化、内嵌服务容器


SpringBoot的特征？
创建独立的Spring应用程序
直接嵌入Tomcat，Jetty或Undertow（无需部署WAR文件）
提供固化的“starter”依赖项，以简化构建配置
尽可能自动配置Spring和3rd Party库
提供可用于生产的功能..]]></description><category></category></item><item><title><![CDATA[java框架 - SpringMVC]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/123893824</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/123893824</guid><author>sinat_36387539</author><pubDate>Fri, 01 Apr 2022 11:49:03 +0800</pubDate><description><![CDATA[1.1 什么是Spring MVC？简单介绍下你对Spring MVC的理解？
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架，通过把模
型-视图-控制器分离，将web层进行职责解耦，把复杂的web应用分成逻辑清晰的几部分，简化开
发，减少出错，方便组内开发人员之间的配合。
1.2 Spring MVC的优点
（1）可以支持各种视图技术,而不仅仅局限于JSP； （2）与Spring框架集成（如IoC容器、AOP等）；
（3）清晰的角色分配：前端控制器(dispa]]></description><category></category></item><item><title><![CDATA[java框架 - Spring AOP、 MVC、数据访问]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/123893536</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/123893536</guid><author>sinat_36387539</author><pubDate>Fri, 01 Apr 2022 11:29:27 +0800</pubDate><description><![CDATA[42.在 Spring 框架中如何更有效地使用 JDBC？ 使用 SpringJDBC 框架，资源管理和错误处理的代价都会被减轻。所以开发者只需 写 statements 和 queries 从数据存取数据，JDBC 也可以在 Spring 框架提供的 模板类的帮助下更有效地被使用，这个模板叫 JdbcTemplate


JdbcTemplate JdbcTemplate 类提供了很多便利的方法解决诸如把数据库数据转变成基本数据类 型或对象，执行写好的或可调用的数据库操作语句，提供自定义的数据错误处理。
]]></description><category></category></item><item><title><![CDATA[java框架 - Spring Beans 和注解]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/123893339</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/123893339</guid><author>sinat_36387539</author><pubDate>Fri, 01 Apr 2022 11:24:11 +0800</pubDate><description><![CDATA[21.什么是 Spring beans？ Spring beans 是那些形成 Spring 应用的主干的 java 对象。它们被 Spring IOC 容 器初始化，装配，和管理。这些 beans 通过容器中配置的元数据创建。比如，以 XML 文件中 的形式定义。 Spring 框架定义的 beans 都是单件 beans。在 bean tag 中有个属性”singleton”， 如果它被赋为 TRUE，bean 就是单件，否则就是一个 prototype bean。默认是 TRUE，所以所有在 Spri]]></description><category></category></item><item><title><![CDATA[java框架 - Spring概述]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/123892223</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/123892223</guid><author>sinat_36387539</author><pubDate>Fri, 01 Apr 2022 10:50:56 +0800</pubDate><description><![CDATA[什么是 spring? Spring 是个 java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用， 但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企 业级应用开发，并通过 POJO 为基础的编程模型促进良好的编程习惯。


使用 Spring 框架的好处是什么？ 轻量：Spring 是轻量的，基本的版本大约 2MB 控制反转：Spring 通过控制反转实现了松散耦合，对象们给出它们的依赖，而不是 创建或查找依赖的对象们 面向切面..]]></description><category></category></item><item><title><![CDATA[java框架 - MyBatis映射器]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/123891891</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/123891891</guid><author>sinat_36387539</author><pubDate>Fri, 01 Apr 2022 10:43:55 +0800</pubDate><description><![CDATA[#{}和KaTeX parse error: Expected 'EOF', got '#' at position 7: {}的区别
#̲{}是占位符，预编译处理；{}是拼接符，字符串替换，没有预编译处理。
Mybatis在处理#{}时，#{}传入参数是以字符串传入，会将SQL中的#{}替换为?号，调用
PreparedStatement的set方法来赋值。
#{} 可以有效的防止SQL注入，提高系统安全性；KaTeX parse error: Expected 'EOF', got '#' at po.]]></description><category></category></item><item><title><![CDATA[java框架 - MyBatis架构]]></title><link>https://blog.youkuaiyun.com/sinat_36387539/article/details/123891733</link><guid>https://blog.youkuaiyun.com/sinat_36387539/article/details/123891733</guid><author>sinat_36387539</author><pubDate>Fri, 01 Apr 2022 10:35:17 +0800</pubDate><description><![CDATA[MyBatis编程步骤是什么样的？
1、 创建SqlSessionFactory
2、 通过SqlSessionFactory创建SqlSession
3、 通过sqlsession执行数据库操作
4、 调用session.commit()提交事务
5、 调用session.close()关闭会话


请说说MyBatis的工作原理


在学习 MyBatis 程序之前，需要了解一下 MyBatis 工作原理，以便于理解程序。MyBatis 的工作
原理如下图

读取 MyBatis 配置文件：myba..]]></description><category></category></item></channel></rss>