摘要:一、前言 在解决昨天的问题时,又引出了很多新的问题,如为什么要进行编码,这些编码的关系如何,如ASCII,IOS-8859-1,GB2312,GBK,Unicode之间的关系,笔者想要彻底理解字符编码背后的故事,遂进行了探索,具体笔记如下。如园友能读完本篇文章,我相信会解开很多疑惑。 二、字符编码 阅读全文
posted @ 2016-03-25 10:46 leesf 阅读 (23869) 评论 (9) 编辑
摘要:一、前言 相信大家平时肯定会收到朋友发来的链接,打开一看,哦,需要投票。投完票后弹出一个页面(恭喜您,您已经投票成功),再次点击的时候发现,啊哈,您的IP(***.***.***.***)已经投过票了,不能重复投票。这时候,我们可能会想,能不能突破ip地址的限制进行刷票呢?有了这样的想法,那就去做吧 阅读全文
posted @ 2016-01-30 08:49 leesf 阅读 (11698) 评论 (27) 编辑
摘要:1. 前言 Flink提供了两种在yarn上运行的模式,分别为Session Cluster和Per Job Cluster模式,本文分析两种模式及启动流程。 下图展示了Flink On Yarn模式下涉及到的相关类图结构 2. Session Cluster模式 Session Cluster模式 阅读全文
posted @ 2019-07-05 09:21 leesf 阅读 (974) 评论 (0) 编辑
摘要:1. 前言 对于Flink中各个组件(JobMaster、TaskManager、Dispatcher等),其底层RPC框架基于Akka实现,本文着重分析Flink中的Rpc框架实现机制及梳理其通信流程。 2. Akka介绍 由于Flink底层Rpc是基于Akka实现,我们先了解下Akka的基本使用 阅读全文
posted @ 2019-07-02 13:13 leesf 阅读 (390) 评论 (0) 编辑
摘要:前言 项目使用SSM框架搭建Web后台服务,前台后使用 ,后台使用MyBatisGenerator自动生成代码,在前台使用关键字进行查询时,遇到了一些很宝贵的坑,现记录如下。为展示所遇问题,将项目进行了精简。 项目框架 后台框架 后台框架选型为 ,其中使用 创建代码, 为内嵌的Web服务器。 项目代 阅读全文
posted @ 2018-03-16 21:13 leesf 阅读 (966) 评论 (0) 编辑
摘要:前言 中的 提供了很多方法供所有的类使用,特别是 、`hashCode equals getClass Guava Objects`类,其提供了很多更为强大的方法。 Objects 是`Object equal toStringHelper`等方法,下面根据一个示例来分析源码。 示例 运行结果: t 阅读全文
posted @ 2018-01-28 08:48 leesf 阅读 (299) 评论 (0) 编辑
摘要:导读 在2017年的尾巴,回顾过去一整年,有些成长收获,有些失落惆怅;好的坏的,经历过的,都需要重温,算是对2017年的正式告别。 回顾 过去看现在 在 "2016年度总结" 中,有对2017年的展望。 技术书籍的学习,完成度90%,其中对于 源码学习部分并未开展,只是学习部分原理讲解内容,其他技术 阅读全文
posted @ 2017-12-30 21:26 leesf 阅读 (907) 评论 (3) 编辑
摘要:流概念 Data Streams上的关系查询 与`stream processing`对比如下。 | SQL | Stream Processing | | : | : | | 有限元组 | 无限元组 | | 完整数据集上的查询 | 无法基于所有数据查询 | | 查询会结束 | 查询不会结束 | M 阅读全文
posted @ 2017-12-12 14:52 leesf 阅读 (3495) 评论 (0) 编辑
摘要:前言 前面学习了简单的 知识,接着学习更高阶的 技术。 高级技术 Spring MVC配置的替换方案 自定义DispatcherServlet配置 在第五章我们曾编写过如下代码。 可以看到 实现了 抽象类,并重写了三个必须的方法,实际上还可对更多方法进行重写,以便实现额外的配置,如对 方法进行重写, 阅读全文
posted @ 2017-11-18 18:47 leesf 阅读 (1562) 评论 (0) 编辑
摘要:前言 前面学习了编写 请求的控制器,创建简单的视图,本篇博文讲解控制器完成请求到结果渲染到用户的浏览器的过程。 渲染Web视图 理解视图解析 前面所编写的控制器方法都没有直接产生浏览器中渲染所需要的 ,只是将数据填充到模型中,然后将模型传递给视图,方法返回值是 类型的值,其是视图的逻辑名称,不会直接 阅读全文
posted @ 2017-11-05 18:09 leesf 阅读 (1275) 评论 (0) 编辑
摘要:前言 版本上线时发现 的`toString toString toString md5 md5 md5`值不相等而重启,导致数据存在丢失情况。 源码 从项目中抽取出该模块代码,并进行了适当修改,但未改变整个处理逻辑,源码如下。 原因猜想 首先怀疑是由于 版本不一致的问题导致 方法返回的字符串不相同, 阅读全文
posted @ 2017-10-31 09:10 leesf 阅读 (2320) 评论 (2) 编辑
摘要:前言 源于前一篇博文中提到,将 项目转化为 项目,发现添加项目文件和修改 文件等都是手动完成的,心想着开发一个 插件来自动化完成上面的过程,实现一键转化。 思路 记录手动完成转化时需要的步骤。 修改 文件,如添加 和`spring web`的依赖。 在指定文件夹下添加 文件,并写入数据。 使用程序自 阅读全文
posted @ 2017-10-27 19:42 leesf 阅读 (329) 评论 (0) 编辑
摘要:前言 学习了 的注解、 后,接着学习 ,对于 应用开发, 提供了 框架。 Web应用 Spring MVC初探 为( ),当用户在浏览器中点击链接或提交表单时,请求经历的流程大致如下。 所有的请求都会通过一个前端控制器(front controller servlet),也即是 ,`Dispatch 阅读全文
posted @ 2017-10-25 20:56 leesf 阅读 (3361) 评论 (2) 编辑
摘要:前言 在将 项目转化为 项目时出现了点问题,总是无法成功部署,查阅资料也并没有找到一个完美的解决方案,最后是参考在 中创建 项目后的目录才成功运行,并将过程记录下来。 转化过程 修改pom.xml文件 添加 对应的 依赖,我添加的依赖如下。 主要需要添加 和`spring webmvc`两个依赖。 阅读全文
posted @ 2017-10-14 18:34 leesf 阅读 (878) 评论 (0) 编辑
摘要:前言 你是否也这样?每天加班完后只想回家躺着,经常忘记带伞回家。如果第二天早上有雨,往往就会成为 ,特别是笔者所在的深圳,更是喜欢下雨,稍不注意,就成 。其实想想,这种情况也是可以有效避免的,只需要晚上带伞回家,然后第二天早上带出来,最后美滋滋的吃早餐。但前提是晚上带伞回家,你知道的,做 的都在忙着 阅读全文
posted @ 2017-10-09 08:59 leesf 阅读 (2023) 评论 (24) 编辑
摘要:前言 前面已经讲解了 的装配技术,接着学习 中另外一个核心概念: 。 面向切面 面向切面编程 切面能够帮助模块化 ,`横切关注点`可以被描述为影响应用的功能,如为业务添加安全和事务管理等。 AOP(Aspect Orient Programming) 通知,通知定义切面何时被使用, 切面可以应用 种 阅读全文
posted @ 2017-10-06 15:38 leesf 阅读 (851) 评论 (4) 编辑
摘要:前言 前面讲解了 的核心装配技术,其可应付很多中装配情况,但 提供了高级装配技术,以此实现更为高级的 装配功能。 高级装配 配置profile bean 将所有不同 定义放置在一个或多个 中,在将应用部署到每个环境时,要确保对应的 处于 状态。如配置了如下数据源,并使用 注解定义。 JavaConf 阅读全文
posted @ 2017-10-05 15:08 leesf 阅读 (594) 评论 (3) 编辑
摘要:前言 在工作中发现 系统的重要性,于是计划重温下 ,顺便记录笔记方便之后查阅。 磁盘分区 在 系统中,每个设备都被当成一个文件来对待;如 接口的硬盘文件名为 。 磁盘的第一个扇区记录了 和`分区表 主引导分区 446bytes MBR 分区表 64bytes`。 磁盘分区是对 进行设置,默认分区表仅 阅读全文
posted @ 2017-09-20 19:45 leesf 阅读 (496) 评论 (0) 编辑
摘要:前言 是`Spring Spring bean Spring bean`。 装配bean 在装配 时非常灵活,其提供了三种方式装配 。 在 中进行显式配置。 在 中进行显式配置。 隐式的 发现机制和自动装配。 自动化装配bean 自动化装配技术最为便利, 从两个角度实现自动化装配。 组件扫描: 会自 阅读全文
posted @ 2017-09-20 19:44 leesf 阅读 (547) 评论 (4) 编辑
摘要:前言 为方便系统的学习 ,特整理文章目录如下。 "【Netty】第一个Netty应用" "【Netty】Netty核心组件介绍" "【Netty】Netty传输" "【Netty】Netty之ByteBuf" "【Netty】ChannelHandler和ChannelPipeline" "【Net 阅读全文
posted @ 2017-08-25 17:45 leesf 阅读 (1010) 评论 (0) 编辑
摘要:前言 对项目代码进行扫描时,出现静态扫描严重问题,发现是由于多线程环境下没有正确创建单例所导致。 问题分析 本项目使用的 。 项目代码如下(修改了类名,但核心没变) 按照项目生成单例代码,使用如下测试类进行测试 java static class Singleton { private static 阅读全文
posted @ 2017-08-22 21:31 leesf 阅读 (1062) 评论 (1) 编辑
摘要:前言 昨天花了差不多一天的时间,使用 搭建起了一套 博客,感觉不错,也特将搭建过程记录下来,方便有需要的朋友自行搭建。 搭建步骤 本环境是在Linux环境下搭建完成的 安装前建议使用命令 更新源 安装Ruby 使用命令 安装ruby。 使用命令 查看 是否安装成功(成功会出现类似如下字符串: )。 阅读全文
posted @ 2017-08-20 13:26 leesf 阅读 (300) 评论 (0) 编辑
摘要:一、前言 针对大叔据实时处理的入门,除了使用WordCount示例之外,还需要相对更深入点的示例来理解Storm,因此,本篇博文利用Storm实现了频繁项集挖掘的案例,以方便更好的入门Storm。 二、基础知识 2.1 频繁二项集挖掘 如顾客去超市购物时,牙膏和牙刷基本上都是摆放在一起,因为购买牙膏 阅读全文
posted @ 2017-07-14 10:03 leesf 阅读 (454) 评论 (0) 编辑
摘要:一、前言 前面已经基本上讲解完了Netty的主要内容,现在来学习Netty中的一些可能存在的问题,如TCP粘包和拆包。 二、粘包和拆包 对于TCP协议而言,当底层发送消息和接受消息时,都需要考虑TCP的粘包和拆包问题,一个完整的数据包可能会被TCP拆分为多个包发送,或者将多个小的数据包封装成大的数据 阅读全文
posted @ 2017-06-28 16:25 leesf 阅读 (849) 评论 (0) 编辑
摘要:一、前言 前面学习了WebSocket协议,并且通过示例讲解了WebSocket的具体使用,接着学习如何使用无连接的UDP来广播事件。 二、UDP广播事件 2.1 UDP基础 面向连接的TCP协议管理端到端的连接,在连接生命周期中,发送的消息会有序并且可靠地进行传输,最后连接有序地终止。然而,在无连 阅读全文
posted @ 2017-05-30 18:02 leesf 阅读 (2366) 评论 (2) 编辑
摘要:一、前言 前面学习了codec和ChannelHandler之间的关系,接着学习WebSocket。 二、WebSocket 2.1. WebSocket介绍 WebSocket协议允许客户端和服务器随时传输消息,要求他们异步处理接收的消息,而几乎所有的浏览器都支持WebSocket协议,Netty 阅读全文
posted @ 2017-05-30 10:57 leesf 阅读 (3882) 评论 (0) 编辑
摘要:一、前言 前面学习了Netty的codec框架,下面接着学习ChannelHandler与codec之间的关联。 二、ChannelHandler和codec Netty为不同的协议提供了处理器和编解码器,可以开箱即用,这些工具支持SSL / TLS和WebSocket,以及通过数据压缩使得HTTP 阅读全文
posted @ 2017-05-27 16:30 leesf 阅读 (1521) 评论 (2) 编辑