<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[QiAn的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/linping_wong</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; linping_wong]]></copyright><item><title><![CDATA[JavaFX + springboot]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/158809547</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/158809547</guid><author>linping_wong</author><pubDate>Sun, 08 Mar 2026 23:28:47 +0800</pubDate><description><![CDATA[javafx启动类需要继承Application类，并重写start方法。至此点击运行即可看到桌面窗口。]]></description><category></category></item><item><title><![CDATA[Canal]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/148437242</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/148437242</guid><author>linping_wong</author><pubDate>Wed, 04 Jun 2025 23:52:05 +0800</pubDate><description><![CDATA[实时监控采集MySQL中变化的数据，并写到消息队列供实时计算框架使用。（通过解析MySQL的binlog日志（二进制预写日志）完成数据的同步）用canal做数据分析，必须用row级别的，因为没有MySQL的引擎，不能执行MySQL语句。canal是读取binlog的作用。第二章 MySQL的准备。]]></description><category></category></item><item><title><![CDATA[SpringCloud]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/148366975</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/148366975</guid><author>linping_wong</author><pubDate>Mon, 02 Jun 2025 00:15:24 +0800</pubDate><description><![CDATA[分布式配套：日志系统、指标监控、链路追踪、消息处理。]]></description><category></category></item><item><title><![CDATA[java—14 ZooKeeper]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/147492600</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/147492600</guid><author>linping_wong</author><pubDate>Thu, 24 Apr 2025 21:38:28 +0800</pubDate><description><![CDATA[ZooKeeper中的数据是保存在节点（znode）上的，多个znode之间够成一棵树形的目录 结构。树是由节点所组成，ZooKeeper的数据存储也同样是基于节点，这种节点就做Znode；但是，不同于树的节点，Znode的引用方式是路径引用，类似于文件路径: /a/b；这种的 层级结构，让每一个Znode节点拥有唯一的路径，就像命名空间一样，对不同信息做出 清晰的隔离。读锁（Read Lock）： 并发的时候，多个线程都可以去执行读操作，彼此不会阻塞。加读锁成功的前提是：没有对其待访问的资源加写锁。]]></description><category></category></item><item><title><![CDATA[java—13 RocketMQ]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/147492388</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/147492388</guid><author>linping_wong</author><pubDate>Thu, 24 Apr 2025 21:16:13 +0800</pubDate><description><![CDATA[RocketMQ架构上主要分为四部分，分别为Producer、Consumer、NameServer和 BrokerServer。]]></description><category></category></item><item><title><![CDATA[java—12 kafka]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/147486031</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/147486031</guid><author>linping_wong</author><pubDate>Thu, 24 Apr 2025 19:51:23 +0800</pubDate><description><![CDATA[号称史上最快的消息队列，它实际类似于Socket的一系列接口，他跟Socket的区别是：普 通的socket是端到端的（1:1的关系），而ZMQ却是可以N：M 的关系，人们对BSD套接字 的了解较多的是点对点的连接，点对点连接需要显式地建立连接、销毁连接、选择协议 （TCP/UDP）和处理错误等，而ZMQ屏蔽了这些细节，让你的网络编程更为简单。RocketMQ的所有消息都是持久化的，先写入系统PAGECACHE，然后刷盘，可以保证内存与磁盘都有 一份数据，而访问时，直接从内存读取。]]></description><category></category></item><item><title><![CDATA[java—11 Redis]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/147476736</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/147476736</guid><author>linping_wong</author><pubDate>Thu, 24 Apr 2025 16:15:25 +0800</pubDate><description><![CDATA[Redis就是缓存，Redis基于内存，将大量访问的数据放到缓存，而不是数据库，这样不会访问数据库，如果都放到内存，内存是jvm中的，无法保证多线程共享同一份内存，所以使用Redis。数据存在内存中，但是可以对其进行持久化，这样内存宕机之后，数据也不会丢失。Redis是开源的（BSD许可），数据结构存储于内存中，被用来作为数据库，缓存和消息代理。]]></description><category></category></item><item><title><![CDATA[java—10 并发编程]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/147476679</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/147476679</guid><author>linping_wong</author><pubDate>Thu, 24 Apr 2025 13:37:00 +0800</pubDate><description><![CDATA[五、ConcurrentHashMap。二、ThreadLocal。四、并发容器和线程池。]]></description><category></category></item><item><title><![CDATA[java—03 集合与容器：List、HashMap（II）]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/147001082</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/147001082</guid><author>linping_wong</author><pubDate>Fri, 04 Apr 2025 18:29:59 +0800</pubDate><description><![CDATA[是集合框架中最核心的实现，高频使用的容器之一。]]></description><category></category></item><item><title><![CDATA[java—02 反射 泛型（II）]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/147000767</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/147000767</guid><author>linping_wong</author><pubDate>Fri, 04 Apr 2025 18:11:49 +0800</pubDate><description><![CDATA[这样的话，用户明确了什么类型，该类就代表着什么类型，用户在使用的时候就不用担心强转的问题和运行时转换异常的问题了。泛型是编程语言中一种支持参数化类型的特性，允许在定义类、接口、方法时使用类型参数（TypeParameters）,而在使用时执行具体的类型。定义时不确定类型：在编写类、接口或方法时使用类型占位符（如<T>）,实际使用时再传入具体类型（如String、Integer）除了在类上使用泛型，可能就仅仅在某个方法上需要使用泛型，外界仅仅关心该方法，不关心类其他的属性，这时可以采用类型方法。]]></description><category></category></item><item><title><![CDATA[java: 错误: 不支持发行版本 22 无效的发行版本]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/146998851</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/146998851</guid><author>linping_wong</author><pubDate>Fri, 04 Apr 2025 15:28:48 +0800</pubDate><description><![CDATA[修改三个地方的版本号，保持一致：]]></description><category></category></item><item><title><![CDATA[java—01 设计模式和设计原则（II）]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/146529443</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/146529443</guid><author>linping_wong</author><pubDate>Wed, 26 Mar 2025 15:47:27 +0800</pubDate><description><![CDATA[实现注意点：子类的所有方法必须在父类中声明，或子类必须实现父类中声明的所有方法；代码示例要点：当子类覆盖或实现父类的方法时，方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松；当子类的方法实现父类的抽象方法时，方法的后置条件(即方法的返回值)要比父类更严格。要考虑子类的修改，而且在缺乏规范的环境下，这种修改可能带来非常糟糕的结果：大片的代码需要重构。② 降低代码的灵活性：子类必须拥有父类的属性和方法，让子类自由的世界中多了些约束。原则定义：所有引用基类的地方必须能透明地使用其子类的对象。]]></description><category></category></item><item><title><![CDATA[前后端传值响应下载文件压缩包]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/145926397</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/145926397</guid><author>linping_wong</author><pubDate>Fri, 28 Feb 2025 13:42:56 +0800</pubDate><description><![CDATA[【代码】前后端传值响应下载文件压缩包。]]></description><category></category></item><item><title><![CDATA[HBase基础]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/145816059</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/145816059</guid><author>linping_wong</author><pubDate>Sun, 23 Feb 2025 21:26:17 +0800</pubDate><description><![CDATA[HBase的起源是Google的BigTable论文，受到了该论文思想的启发，目前作为Hadoop的子项目来开发维护，用于支持结构化的数据存储官方网站：http://hbase.apache.org-- 2006年Google发表BigTable白皮书-- 2006年开始开发HBase-- 2010年HBase成为Apache顶级项目-- 现在很多公司二次开发出了很多发行版本，也开始使用了HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统，利用HBASE技术可在廉价PC Server上搭建起大]]></description><category></category></item><item><title><![CDATA[Spark内存并行计算框架]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/145811332</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/145811332</guid><author>linping_wong</author><pubDate>Sun, 23 Feb 2025 16:18:09 +0800</pubDate><description><![CDATA[spark核心概念spark集群架构spark集群安装部署spark-shell的使用通过IDEA开发spark程序。]]></description><category></category></item><item><title><![CDATA[Scala基础学习]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/145785201</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/145785201</guid><author>linping_wong</author><pubDate>Fri, 21 Feb 2025 22:48:03 +0800</pubDate><description><![CDATA[我们基于的scala版本 2.12.10scala是运行在 JVM 上的多范式（规范）编程语言，同时支持面向对象和面向函数编程。（真实数据与操作过程解耦）早期scala刚出现的时候，并没有怎么引起重视，随着Spark和Kafka这样基于scala的大数据框架的兴起，scala逐步进入大数据开发者的眼帘。scala的主要优势是它的表达性。官网地址 http://www.scala-lang.org。]]></description><category></category></item><item><title><![CDATA[出行项目案例]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/145784130</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/145784130</guid><author>linping_wong</author><pubDate>Fri, 21 Feb 2025 20:26:10 +0800</pubDate><description><![CDATA[spark和kafka主要通过Scala实现，Hadoop和HBase主要基于java实现。大数据没有事务的概念，需要不间断完整地把流程跑完，没有事务回滚的概念。（3）企业级的项目，利用这个思路可以做二次拓展开发。（4）从0到有，数据抽取、数据存储、数据处理、展现。（1）通用的数据处理流程，入门大数据领域。（2）真实体验大数据开发工程师的工作。]]></description><category></category></item><item><title><![CDATA[SpringBoot3]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/145064834</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/145064834</guid><author>linping_wong</author><pubDate>Fri, 10 Jan 2025 23:24:30 +0800</pubDate><description><![CDATA[SpringBoot基于Spring开发，继承了Spring框架原有的优秀特性，但并不是来替代Spring的解决方案，而和Spring框架紧密结合进一步简化了Spring应用的整个搭建和开发过程。其设计目的是用来简化Spring应用的初始搭建一级开发过程，主要是通过提供默认配置等方式让我们更容易使用。关于SpringBoot有一句很出名的话就是约定大于配置。]]></description><category></category></item><item><title><![CDATA[图书项目：整合SSM]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/144892997</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/144892997</guid><author>linping_wong</author><pubDate>Thu, 02 Jan 2025 19:12:42 +0800</pubDate><description><![CDATA[配置文件：mybatis-config.xml applicationContext.xml（Spring的配置文件） database.properties。2. applicationContext.xml（Spring的配置文件）建包：controller dao/mapper pojo service。pom文件：导包，写入静态资源导出配置，连接数据库。]]></description><category></category></item><item><title><![CDATA[SpringMVC]]></title><link>https://blog.youkuaiyun.com/linping_wong/article/details/144892573</link><guid>https://blog.youkuaiyun.com/linping_wong/article/details/144892573</guid><author>linping_wong</author><pubDate>Thu, 02 Jan 2025 19:08:54 +0800</pubDate><description><![CDATA[顺序：build 添加web支持 lib导包 web.xml springmvc-servlet.xml hello.jsp HelloController。有视图解析器时，默认是转发，如果想重定向，需要加上“redirect”。解决post方式提交的中文乱码问题（对get方法不太友好，但可以用）@Controller：走视图解析器 搭配@ResponseBody。@RequestParam的属性值和域名中的变量名要一致。RESTful风格：简洁、高效（支持缓存）、安全。--文件上传配置-->]]></description><category></category></item></channel></rss>