<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[snwown的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/snwown</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; snwown]]></copyright><item><title><![CDATA[Docker + Harbor 私有镜像仓库搭建]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/157471454</link><guid>https://blog.youkuaiyun.com/snwown/article/details/157471454</guid><author>snwown</author><pubDate>Tue, 24 Feb 2026 21:42:20 +0800</pubDate><description><![CDATA[打开docker 修改配置文件，如果使用HTTP，在客户端机器的 /etc/docker/daemon.json 中添加。可以做镜像管理，支持 Docker 镜像的存储、分发和管理，提供完整的镜像生命周期管理功能。安装完成后，可以运行以下命令验证 Docker 是否安装成功：如图安装为29.2.0的docker版本。将本地的镜像文件通过DockerFile文件进行打包推送，以推送到harbor上。新建一个文件 Dockerfile，dockerfile的文件如下。是	Docker 构建镜像的主命令；]]></description><category></category></item><item><title><![CDATA[jdk8特性2]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/155734644</link><guid>https://blog.youkuaiyun.com/snwown/article/details/155734644</guid><author>snwown</author><pubDate>Tue, 06 Jan 2026 15:13:18 +0800</pubDate><description><![CDATA[如果我们的 Lambda 表达式需要多行代码，可以用一对打括号 {} 扩起来，如果Lambda 表达式需要使用到外部的参数，那么必须对参数添加 final 修饰符表示参数不可变更。lambda 表达式可以随意引用外部变量，但如果外部变量是在当前作用域声明的，则一定不可以进行第二次赋值，哪怕是在 lambda 语句之后。原理：CountSownLatch有个计数器字段，根据需要减少计数，直到它被计数到零，用以阻止调用线程。作用：阻塞线程，直到其他线程完成给定任务；]]></description><category></category></item><item><title><![CDATA[JDK21新特性-序列集合]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/156082293</link><guid>https://blog.youkuaiyun.com/snwown/article/details/156082293</guid><author>snwown</author><pubDate>Fri, 19 Dec 2025 15:44:26 +0800</pubDate><description><![CDATA[序列集合是指元素有明确顺序的集合，如List、Deque等。Java 21为这类集合引入了统一的API。]]></description><category></category></item><item><title><![CDATA[JDK21-记录模式/swich模式匹配]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/156070032</link><guid>https://blog.youkuaiyun.com/snwown/article/details/156070032</guid><author>snwown</author><pubDate>Fri, 19 Dec 2025 11:07:31 +0800</pubDate><description><![CDATA[通过switch表达式和语句的模式匹配来增强Java编程语言。通过将模式匹配扩展到switch，可以针对多个模式测试表达式，每个模式都有一个特定的操作，从而可以简洁、安全地表达复杂的面向数据的查询。Java 19引入的Record Patterns功能。这个语法允许在instanceof和switch表达式中直接解构record对象的组件。参数: Object obj - 接收任意类型的对象。代码简洁：避免了额外的类型转换和getter调用。直接解构：可以直接从record中提取字段值。]]></description><category></category></item><item><title><![CDATA[jkd8特性]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/155557999</link><guid>https://blog.youkuaiyun.com/snwown/article/details/155557999</guid><author>snwown</author><pubDate>Mon, 08 Dec 2025 17:36:36 +0800</pubDate><description><![CDATA[Collectors是 Stream API 的核心工具类，提供了一系列静态工厂方法，用于将 Stream 流中的元素收集为集合（List/Set/Map）、值（求和 / 计数 / 最值）、字符串等，支持并行处理，且用法灵活。2、toList() 实现不固定：Java 8 中默认返回 ArrayList，但官方未明确约定，若需固定集合类型（如 LinkedList），建议用 toCollection(LinkedList::new)；) 再收集，不能直接用 Collectors.filtering；]]></description><category></category></item><item><title><![CDATA[关于开发面对颠覆性需求变更的思考]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/150215418</link><guid>https://blog.youkuaiyun.com/snwown/article/details/150215418</guid><author>snwown</author><pubDate>Mon, 11 Aug 2025 15:24:57 +0800</pubDate><description><![CDATA[有了任务分解的视角，我需要将一个大的目标进行拆解，如果我要达成这个目标，整体解决方案是远远不够的，我需要把任务分解成一个一个小的部分。站在以终为始的角度，我需要了解真正的目标是什么，所以，我会关心为什么要做这个特性。接下来，要关注实现路径，用户会怎么用，是否有其他的替代手段，需要了解产品经理的设计是经过思考的，还是“拍着脑袋”给出的。所以，我要不断地问问题，确保自己的理解和产品经理交代的内容一致。一方面，我会了解到更多的细节，另一方面，当时间紧迫的时候，我会和产品经理来谈谈究竟优先实现哪个场景。]]></description><category></category></item><item><title><![CDATA[Flink-05学习 接上节，将FlinkJedisPoolConfig 从Kafka写入Redis]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/149125169</link><guid>https://blog.youkuaiyun.com/snwown/article/details/149125169</guid><author>snwown</author><pubDate>Fri, 04 Jul 2025 23:16:44 +0800</pubDate><description><![CDATA[上节成功实现了FlinkKafkaConsumer消费Kafka数据，并将数据写入到控制台，接下来将继续将计算的结果输入到redis中。]]></description><category></category></item><item><title><![CDATA[Flink-04学习 FlinkKafkaConsumer消费Kafka数据]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/148537713</link><guid>https://blog.youkuaiyun.com/snwown/article/details/148537713</guid><author>snwown</author><pubDate>Mon, 23 Jun 2025 16:12:07 +0800</pubDate><description><![CDATA[添加pom.xml文件，kafka相关的包。]]></description><category></category></item><item><title><![CDATA[Mac m1 通过docker镜像安装kafka]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/148748844</link><guid>https://blog.youkuaiyun.com/snwown/article/details/148748844</guid><author>snwown</author><pubDate>Wed, 18 Jun 2025 23:00:56 +0800</pubDate><description><![CDATA[kafka依赖zookeeper，因此需要使用docker同时安装zookeeper和kafka。macOS的docker在容器和宿主之间无法通过ip直接通信，因此在安装的时候需要特殊注意与ip相关的设置。当容器需要访问宿主ip时，需要使用docker.for.mac.host.internal或者host.docker.internal代替。]]></description><category></category></item><item><title><![CDATA[持续集成 CI/CD-Jenkins持续集成GitLab项目打包docker镜像推送k8s集群并部署至rancher]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/148734189</link><guid>https://blog.youkuaiyun.com/snwown/article/details/148734189</guid><author>snwown</author><pubDate>Wed, 18 Jun 2025 15:08:34 +0800</pubDate><description><![CDATA[点击Allowed branches下的Filter branches by regex进行选择监听的分支，正则匹配 .*test 分支并点击Generate生成Secret token的token，取消默认选择Allow all branches to trigger this job。以test分支为例 提交即部署。注意：如果harbor中无项目，这里要去harbor中添加项目需要的存储位置。填写 Description，项目的描述尽可能的详细，方便维护。url为项目的git地址，及选择的git用户。]]></description><category></category></item><item><title><![CDATA[Flink03-学习-套接字分词流自动写入工具]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/148396220</link><guid>https://blog.youkuaiyun.com/snwown/article/details/148396220</guid><author>snwown</author><pubDate>Tue, 03 Jun 2025 23:08:47 +0800</pubDate><description><![CDATA[上一节中通过如下命令启动服务摸来模拟Socket流。现在我们写一个ServerSocket来模拟让流自动写入不用手动操作。pom.xml和上一节一致不需要修改。]]></description><category></category></item><item><title><![CDATA[Flink-02学习-套接字分词]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/147570449</link><guid>https://blog.youkuaiyun.com/snwown/article/details/147570449</guid><author>snwown</author><pubDate>Sun, 27 Apr 2025 22:50:24 +0800</pubDate><description><![CDATA[连接的 IP 地址为 0.0.0.0（监听所有网络接口）]]></description><category></category></item><item><title><![CDATA[java-mybatis01]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/147569181</link><guid>https://blog.youkuaiyun.com/snwown/article/details/147569181</guid><author>snwown</author><pubDate>Sun, 27 Apr 2025 22:04:50 +0800</pubDate><description><![CDATA[MyBatis 是一款优秀的 基于 ORM 的半自动轻量级持久层框架，它支持定制化的 SQL、存储过程以及高级映射，MyBatis 避免了几乎所有 JDBC 代码和手动设置参数以及获取结果集。ORM把关系数据库包装成面向对象的模型，采用ORM框架后，应用程序不再直接访问底层数据库，而是以面向对象的方式来操作持久化对象，而ORM框架则将这些面向对象的操作转换成底层SQL。ORM完成面向对象的编程语言DAO关系数据库的映射后，开发人员可以利用面向对象设计语言的建议易用性，也可利用关系数据库的技术优势。]]></description><category></category></item><item><title><![CDATA[Flink-01学习 介绍Flink及上手小项目之词频统计]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/147278213</link><guid>https://blog.youkuaiyun.com/snwown/article/details/147278213</guid><author>snwown</author><pubDate>Thu, 17 Apr 2025 19:13:29 +0800</pubDate><description><![CDATA[官网概述学习Flink具体包括四个关键概念：流数据的持续处理，事件时间，有状态流处理和状态快照。Apache Flink 是一个开源的流处理框架，旨在处理批处理和实时数据处理，具有高吞吐量和低延迟的特点。Apache Flink 是一个用于对无界和有界数据流进行有状态计算的框架和分布式处理引擎。Flink 被设计为可在所有常见的集群环境中运行，并以内存速度和任意规模执行计算。特点流处理：Flink 将批处理视为流处理的一种特殊情况。这种方法允许实时数据处理，实现即时的洞察和行动。]]></description><category></category></item><item><title><![CDATA[Redis的常见的问题（穿透、雪崩、击穿、热key、大key、不一致）]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/129593759</link><guid>https://blog.youkuaiyun.com/snwown/article/details/129593759</guid><author>snwown</author><pubDate>Sun, 19 Mar 2023 23:22:01 +0800</pubDate><description><![CDATA[产生原因：大量的应用请求无法在 Redis 缓存中进行处理，紧接着，应用将大量请求发送到数据库层，导致数据库层的压力激增。1、对空值进行缓存：对于DB中没有的数据，进行redis缓存，假如上述的-0数据在DB中没有，那么可以在redis中对-=对数据进行空值缓存（key = -0，value = 0），那么当请求过来的时候，会返回一个null值。产生原因：redis缓存中没有数据，但是数据库中有数据，大量的请求访问redis中找不到数据，直接打入数据库，可能造成数据库压力太大，数据库崩溃，叫缓存击穿。]]></description><category></category></item><item><title><![CDATA[10.20 第一次复盘]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/127442002</link><guid>https://blog.youkuaiyun.com/snwown/article/details/127442002</guid><author>snwown</author><pubDate>Fri, 21 Oct 2022 11:33:03 +0800</pubDate><description><![CDATA[10.20 个人第一次复盘项目项目背景
项目初始阶段，预防后期新增不同类型场景，限定了页面的格式并且将每个都进行了路由限定，以此限定场景项目改变]]></description><category></category></item><item><title><![CDATA[简单的python基础]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/125563244</link><guid>https://blog.youkuaiyun.com/snwown/article/details/125563244</guid><author>snwown</author><pubDate>Thu, 14 Jul 2022 10:59:11 +0800</pubDate><description><![CDATA[Python 崇尚优美、清晰、简单，是一个优秀并广泛使用的语言。与 Java 和 C++ 这些语言相比，Python 最大的两个特点是：python是一种弱类型语言，变量的定义不需要在前加类型说明，而且不同类型之间可以方便地相互转换。python有五个标准的数据类型：其中 List、Tuple、Dictionary 为容器，Python 支持四种不同的数字类型：int（有符号整型）、long（长整型）、float（浮点型）、complex（复数）。每个变量在使用前都必须赋值，变量赋值以后该变量才会被创建。
]]></description><category></category></item><item><title><![CDATA[websocket消息推送]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/124041983</link><guid>https://blog.youkuaiyun.com/snwown/article/details/124041983</guid><author>snwown</author><pubDate>Tue, 12 Apr 2022 10:04:08 +0800</pubDate><description><![CDATA[什么是websocket
websocket协议是基于TCP的一种新的网络协议，实现浏览器与服务器全双工（full-duplex）通信——允许服务器主动发送信息给客户端。

为什么需要websocket？
因为http协议的通信只能由客户端发起，做不到服务器主动向客户端发送消息。

maven依赖
		&lt;dependency&gt;  
           &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;  
           &lt]]></description><category></category></item><item><title><![CDATA[alibaba-cloud- 学习1]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/123541627</link><guid>https://blog.youkuaiyun.com/snwown/article/details/123541627</guid><author>snwown</author><pubDate>Mon, 21 Mar 2022 15:01:43 +0800</pubDate><description><![CDATA[阿里开源组件
Nacos：一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 可以与 Spring, Spring Boot, Spring Cloud 集成，并能代替 Spring Cloud Eureka, Spring Cloud Config。
Sentinel：把流量作为切入点，从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
RocketMQ：开源的分布式消息系统，基于高可用分布式集群技术，提供低延时的、高可靠的消息发布与订阅服务。
Dubbo：在国内应用非]]></description><category></category></item><item><title><![CDATA[java9 -springboot排序的另外一种方式]]></title><link>https://blog.youkuaiyun.com/snwown/article/details/123496035</link><guid>https://blog.youkuaiyun.com/snwown/article/details/123496035</guid><author>snwown</author><pubDate>Tue, 15 Mar 2022 13:43:55 +0800</pubDate><description><![CDATA[首先，在需要排序的返回的VO字段中，需要实现一个方法。
public class StatisticsListVO implements Comparable&lt;LifeVillageAcceptanceStatisticsListVO&gt; {;
    /**
     * totalTasks 总任务数
     **/
    @ApiModelProperty(value = "总任务数")
    private Integer totalTasks;
    
    @Override]]></description><category></category></item></channel></rss>