<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[F7ANTY的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/F7ANTY</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; F7ANTY]]></copyright><item><title><![CDATA[手持LED弹幕，超炫特效，让你的每一次出场都耀眼夺目！]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/138356257</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/138356257</guid><author>F7ANTY</author><pubDate>Tue, 30 Apr 2024 20:38:24 +0800</pubDate><description><![CDATA[在这个快节奏的数字时代，沟通不再局限于言语和文字，就连表白、追星、晚会互动，甚至日常的提词都需要一点科技的火花来点燃气氛。于是，手持LED弹幕滚动屏，这个集实用与趣味于一身的神器，悄然成为了社交场上的新宠儿。让我们一起探索，如何用这款“现代魔杖”，在各个场合中大放异彩！]]></description><category></category></item><item><title><![CDATA[Docker maven构建项目]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/126051250</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/126051250</guid><author>F7ANTY</author><pubDate>Fri, 29 Jul 2022 10:55:26 +0800</pubDate><description><![CDATA[代码】Dockermaven构建项目。]]></description><category></category></item><item><title><![CDATA[此网址使用了一个通常用于网络浏览以外目的的端口。出于安全原因，Firefox 取消了该请求]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/125896390</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/125896390</guid><author>F7ANTY</author><pubDate>Wed, 20 Jul 2022 17:08:53 +0800</pubDate><description><![CDATA[此网址已被限制此网址使用了一个通常用于网络浏览以外目的的端口。3、每次都配置端口号太麻烦，在保证安全的前提下，将所有的端口全部开放，可填写为0-65535。1、在Firefox地址栏输入aboutconfig，点击我了解此风险，进入配置页面。2、取消多个端口号限制时，端口号之间用,隔开，如6666,7777,8888；如果是学习、开发环境，推荐第3种方式，一次输入，以后就不会再报类似错误了。1、只取消一个端口号限制时，填写对应的端口号，如6666；...]]></description><category></category></item><item><title><![CDATA[springboot @ComponentScan排除指定类]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/125836478</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/125836478</guid><author>F7ANTY</author><pubDate>Sun, 17 Jul 2022 20:25:17 +0800</pubDate><description><![CDATA[自定义规则需继承org.springframework.core.type.filter.TypeFilter类，实现match方法即可。@Override//可以通过MetadataReader获得各种信息，然后根据自己的需求返回boolean，实例表示包名含有aaa路径的类名将满足筛选条件。}}配置结果就是含有aaa路径的类名将被排除不被加入spring容器中。...]]></description><category></category></item><item><title><![CDATA[Spring Boot应用中@CompentScan excludeFilters配置无效的问题]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/125836416</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/125836416</guid><author>F7ANTY</author><pubDate>Sun, 17 Jul 2022 20:20:53 +0800</pubDate><description><![CDATA[在我们项目中，有一个core的module，里面存放了每个项目公用的package，但是有些开发人员把一些无关的初始化操作也放到了core项目中，这就导致如果A项目引用了core，那么就会做一些无用的初始化操作，由于core的子包太多，无法一个一个引用，所以使用排除法是最快的，使用。结果扫描一下core包下面的类，确实有一个类B使用。大致的意思就是说，如果你在A类中，使用了exlucde配置，在你不需要排除的类中，有某些类B的注解上也使用了。，那么在A类中，同时也排除类B，A类中的exclude全部生效。.]]></description><category></category></item><item><title><![CDATA[java中@Repeatable的理解]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/124495218</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/124495218</guid><author>F7ANTY</author><pubDate>Fri, 29 Apr 2022 14:23:54 +0800</pubDate><description><![CDATA[@Repeatable是jdk8中新增的注解，使用如Spring中的@ComponentScan注解。在没有@Repeatable注解的的注解中，在同一个地方使用相同的注解会报错，有了此元注解注解的注解，就可以在同一个地方使用相同的注解。其官方文档如下

The annotation type {@code java.lang.annotation.Repeatable} is used to indicate that the annotation type whose declaration it (m]]></description><category></category></item><item><title><![CDATA[GitHub/GitLab/Gitee 中项目互拷贝后仍保留历史提交记录]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/122349170</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/122349170</guid><author>F7ANTY</author><pubDate>Thu, 06 Jan 2022 17:38:59 +0800</pubDate><description><![CDATA[1、从原地址克隆一份裸版本库，比如：原本托管于 GitHub / 本地的私有仓库




git clone --bare ”git地址“


2、然后到新的 Git 服务器上创建一个新项目
3、以镜像推送的方式上传代码到 Git 服务器上。请确保已经添加了公钥到新的机器上




cd project_name.git
git push --mirror “新仓库地址”


4、删除本地代码




cd ..
rm -rf project_name.git


5、到新服务器上找到 Clone 地址，直]]></description><category></category></item><item><title><![CDATA[MySQL报错1055 - Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated 解决方法]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/122211985</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/122211985</guid><author>F7ANTY</author><pubDate>Wed, 29 Dec 2021 11:31:27 +0800</pubDate><description><![CDATA[1、问题复现：

　　今天在进行数据迁移时，使用Navicat连接数据库进行连接时，由于 SQL语句中使用了 group by分组函数，结果报了如下错误：



2、产生原因

　　产生原因说是，在MySQL数据库版本为5.7以上的版本，默认开启了ONLY_FULL_GROUP_BY SQL模式，在此模式下，对于group by操作,如果在select语句中的查询列没有在group by中出现，那么这个SQL就是非法的，因为列不在group by语句中，所以设置了sql_mode=only_full_gr.]]></description><category></category></item><item><title><![CDATA[探索对象池技术]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/122195983</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/122195983</guid><author>F7ANTY</author><pubDate>Tue, 28 Dec 2021 16:12:36 +0800</pubDate><description><![CDATA[对象池技术是一种常见的对象缓存手段。’对象’意味着池中的内容是一种结构化实体，这也就是一般意义上面向对象中的对象模型；’池’(或动词池化)意味着将有生命周期的对象缓存到’池子’中进行管理，即用即取。缓存的目的大多是为了提升性能，对象池技术的目的也即如此。所以，对象池技术的本质简单来说就是：将具有生命周期的结构化对象缓存到带有一定管理功能的容器中，以提高对象的访问性能。

处理网络连接是对象池使用最多的场景。比如一些RPC框架的NettyChannel缓存(如motan)，以及数据库连接池的Connectio]]></description><category></category></item><item><title><![CDATA[深入理解SPI机制]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/121808441</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/121808441</guid><author>F7ANTY</author><pubDate>Thu, 09 Dec 2021 10:46:59 +0800</pubDate><description><![CDATA[一、什么是SPI

SPI ，全称为 Service Provider Interface，是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件，自动加载文件里所定义的类。

这一机制为很多框架扩展提供了可能，比如在Dubbo、JDBC中都使用到了SPI机制。我们先通过一个很简单的例子来看下它是怎么用的。

1、小栗子

首先，我们需要定义一个接口，SPIService




package com.viewscenes.netsupervisor.spi]]></description><category></category></item><item><title><![CDATA[Mac 生成项目目录树形结构]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/121479890</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/121479890</guid><author>F7ANTY</author><pubDate>Mon, 22 Nov 2021 20:37:29 +0800</pubDate><description><![CDATA[Mac 生成项目目录树形结构]]></description><category></category></item><item><title><![CDATA[Java LocalDate/LocalTime/LocalDateTime序列化]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/120913406</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/120913406</guid><author>F7ANTY</author><pubDate>Fri, 22 Oct 2021 21:13:29 +0800</pubDate><description><![CDATA[// 格式 20:10:10.011
    @JsonFormat(pattern = "HH:mm:ss.SSS", timezone = "GMT+8")
    private LocalTime localTime;

    // 格式 2021-10-22
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate localDate;

    // 格式 2021-10-22 ...]]></description><category></category></item><item><title><![CDATA[基于 Nacos 配置中心的动态日志配置方案]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/120484550</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/120484550</guid><author>F7ANTY</author><pubDate>Sun, 26 Sep 2021 11:06:51 +0800</pubDate><description><![CDATA[动态设置 log4j2 日志的级别不能落
	
	
	SpringBoot 动态设置 logback 日志的级别
	
上面这两篇文章只是从技术角度说了，可以实现动态日志配置。但是并没有形成适用生产环境使用的方案。今天介绍一种基于 Nacos 配置中心的动态配置日志级别的方案。



0x01：安装 Nacos 配置中心

配置中心 Nacos 的官网


官网：https://nacos.io/zh-cn/docs/quick-start.html


下载安装包



需要注意一下 Nacos 需要 6..]]></description><category></category></item><item><title><![CDATA[OVERRIDE SLF4J LOGBACK.XML FOR A DOCKER DEPLOYED APPLICATION]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/120364457</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/120364457</guid><author>F7ANTY</author><pubDate>Sat, 18 Sep 2021 11:45:20 +0800</pubDate><description><![CDATA[Using env variables:

Create two env variable to hold the log directory location and log level setting respectively. Then use that variables in the logback.xml. Then pass the appropriate values while running the docker image


docker run --env LOG_DIR=/opt]]></description><category></category></item><item><title><![CDATA[SpringBoot启动测试时报错（javax.websocket.server.ServerContainer not available）]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/118277756</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/118277756</guid><author>F7ANTY</author><pubDate>Sun, 27 Jun 2021 18:17:35 +0800</pubDate><description><![CDATA[一、测试发送短信接口时，启动springboot报如下错误

2019-10-09 15:35:07.595 ERROR org.springframework.boot.SpringApplication:reportFailure[833] Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverEndpointExporte.]]></description><category></category></item><item><title><![CDATA[如何在Kubernetes上部署高可用和可扩展的Elasticsearch？]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/117232938</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/117232938</guid><author>F7ANTY</author><pubDate>Mon, 24 May 2021 21:22:38 +0800</pubDate><description><![CDATA[在上一篇文章中，我们通过扩展MongoDB副本集来了解有StatefulSets。 在这篇文章中，我们将与ES-HQ和Kibana一起使用HA Elasticsearch集群（具有不同的Master，Data和Client节点）。

先决条件

Elasticsearch的基本知识，其Node类型及角色
	运行至少有3个节点的Kubernetes集群（至少4Cores 4GB）
	Kibana的相关知识


部署架构图





Elasticsearch Data Node的Pod被部署为具有Head..]]></description><category></category></item><item><title><![CDATA[kubectl patch]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/116644939</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/116644939</guid><author>F7ANTY</author><pubDate>Tue, 11 May 2021 10:47:37 +0800</pubDate><description><![CDATA[copyfrom：使用 kubectl patch 更新 API 对象

1、使用策略性合并补丁更新一个 Deployment


    通过补丁，您可以避免定义整个对象，只需要定义您希望更改的部分。
    通过策略性合并补丁，您只需要定义新增的元素就可以更新一个列表。
列表中已有的元素仍然保留，新增的元素和已有的元素会被合并。上述例子
中，最终结果的 containers 列表中既有原先的 nginx 容器，也有新增的 redis 容器。


第一步: 创建一个deployment


# cat .]]></description><category></category></item><item><title><![CDATA[SpringBoot HATEOAS用法简介]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/116567961</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/116567961</guid><author>F7ANTY</author><pubDate>Sun, 09 May 2021 18:04:09 +0800</pubDate><description><![CDATA[REST风格简介

介绍HATEOAS之前先简单介绍一下REST，REST 是 Representational state transfer 的缩写，翻译过来的意思是表达性状态转换。REST是一种架构的风格

Richardson Maturity Model

Richardson 提出了REST一种 成熟度模型，我们称之为Richardson Maturity Model，这种模式将REST按照成熟度划分为4个等级

Level0：使用HTTP作为WEB服务的传输方式，以REST样式公开SOAP We]]></description><category></category></item><item><title><![CDATA[vim画纯文本图的插件Drawit]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/116567903</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/116567903</guid><author>F7ANTY</author><pubDate>Sun, 09 May 2021 17:59:23 +0800</pubDate><description><![CDATA[要在vim里面画个下面这样的图，可以使用drawit插件

            +-------------------------+
  +-----------+   | +-------------+    |
  | IDT table | &lt;---+--|IDTR Register|  C  |
  +-----------+   | +-------------+  P  |
     ^| ...]]></description><category></category></item><item><title><![CDATA[Hystrix原理与实战]]></title><link>https://blog.youkuaiyun.com/F7ANTY/article/details/115581986</link><guid>https://blog.youkuaiyun.com/F7ANTY/article/details/115581986</guid><author>F7ANTY</author><pubDate>Sat, 10 Apr 2021 18:39:13 +0800</pubDate><description><![CDATA[背景

分布式系统环境下，服务间类似依赖非常常见，一个业务调用通常依赖多个基础服务。如下图，对于同步调用，当库存服务不可用时，商品服务请求线程被阻塞，当有大批量请求调用库存服务时，最终可能导致整个商品服务资源耗尽，无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递，这种现象被称为雪崩效应。



雪崩效应常见场景

硬件故障：如服务器宕机，机房断电，光纤被挖断等。
	流量激增：如异常流量，重试加大流量等。
	缓存穿透：一般发生在应用重启，所有缓存失效时，以及短时间内大量缓存失效时。大量的缓存不命中]]></description><category></category></item></channel></rss>