分布式文件系统FastDFS详解 (zhuanlan.zhihu.com)
为什么要使用分布式文件系统呢?
嗯,这个问题问的好,使用了它对我们有哪些好处?带着这个问题我们来往下看:

单机时代
初创时期由于时间紧迫,在各种资源有限的情况下,通常就直接在项目目录下建立静态文件夹,用于用户存放项目中的文件资源。如果按不同类型再细分,可以在项目目录下再建立不同的子目录来区分。例如:resources\\static\\file、resources\\static\\img等。

优点:这样做比较便利,项目直接引用就行,实现起来也简单,无需任何复杂技术,保存数据库记录和访问起来也很方便。

缺点:如果只是后台系统的使用一般也不会有什么问题,但是作为一个前端网站使用的话就会存在弊端。一方面,文件和代码耦合在一起,文件越多存放越混乱;另一方面,如果流量比较大,静态文件访问会占据一定的资源,影响正常业务进行,不利于网站快速发展。

独立文件服务器
by @极乐小程序商店 2018-01-10 11:04 查看详情
Lombok 看这篇就够了 (zhuanlan.zhihu.com)
自从进公司实习后,项目代码中能用 Lombok 的都用了,毕竟这么好的轮子要充分利用好。也可以减少一些 get/set/toString 方法的编写,虽说 IDEA 的插件可以自动生成 get/set/toString 方法,但是使用 Lombok 可以让代码更简洁。

下面看看如何在 IDEA 中如何安装 Lombok:

安装

打开 IDEA 的 Settings 面板,并选择 Plugins 选项,然后点击 “Browse repositories”

在输入框输入”lombok”,得到搜索结果,点击安装,然后安装提示重启 IDEA,安装成功;
by @极乐小程序商店 2018-01-09 18:03 查看详情
Kafka 安装及快速入门 (zhuanlan.zhihu.com)
介绍

官网:http://kafka.apache.org/

Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。

Apache Kafka与传统消息系统相比,有以下不同:

它被设计为一个分布式系统,易于向外扩展;
它同时为发布和订阅提供高吞吐量;
它支持多订阅者,当失败时能自动平衡消费者;
它将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序。
安装 kafka
by @极乐小程序商店 2018-01-09 17:52 查看详情
SpringBoot Kafka 整合使用 (zhuanlan.zhihu.com)
前提

假设你了解过 SpringBoot 和 Kafka。

1、SpringBoot

如果对 SpringBoot 不了解的话,建议去看看 DD 大佬 和 纯洁的微笑 的系列博客。

2、Kafka

Kafka 的话可以看看我前两天写的博客 : Kafka 安装及快速入门 学习的话自己开台虚拟机自己手动搭建环境吧,有条件的买服务器。

注意:一定要亲自自己安装实践,接下来我们将这两个进行整合。

创建项目

项目整体架构:
by @极乐小程序商店 2018-01-09 17:45 查看详情
新手转战小程序开发心得 (zhuanlan.zhihu.com)
新手转战小程序开发心得https://zhuanlan.zhihu.com/p/32731293
by @极乐小程序商店 2018-01-09 15:15 查看详情
新手转战小程序开发心得 (zhuanlan.zhihu.com)
新手转战小程序开发心得https://zhuanlan.zhihu.com/p/32731293
by @极乐小程序商店 2018-01-09 15:15 查看详情
ASP获取微信小程序的用户ID(OpenID)——服务器端 (zhuanlan.zhihu.com)
ASP获取微信小程序的用户ID(OpenID)——服务器端https://zhuanlan.zhihu.com/p/32731785
by @极乐小程序商店 2018-01-09 15:13 查看详情
微信小程序开发之webview组件内网页实现微信原生支付 (zhuanlan.zhihu.com)
微信小程序开发之webview组件内网页实现微信原生支付https://zhuanlan.zhihu.com/p/32732356
by @极乐小程序商店 2018-01-09 15:03 查看详情
微信小程序开发之webview组件内网页实现微信原生支付 (zhuanlan.zhihu.com)
微信小程序开发之webview组件内网页实现微信原生支付https://zhuanlan.zhihu.com/p/32732356
by @极乐小程序商店 2018-01-09 15:03 查看详情
微信小程序充值及充值回调后的处理 (zhuanlan.zhihu.com)
微信小程序充值及充值回调后的处理https://zhuanlan.zhihu.com/p/32764828
by @极乐小程序商店 2018-01-09 15:01 查看详情
微信小程序中的分享事件 (zhuanlan.zhihu.com)
微信小程序中的分享事件 https://zhuanlan.zhihu.com/p/32765748
by @极乐小程序商店 2018-01-09 15:01 查看详情
微信小程序中的分享事件 (zhuanlan.zhihu.com)
微信小程序中的分享事件 https://zhuanlan.zhihu.com/p/32765748
by @极乐小程序商店 2018-01-09 15:01 查看详情
WebSocket协议:5分钟从入门到精通 (zhuanlan.zhihu.com)
一、内容概览

WebSocket的出现,使得浏览器具备了实时双向通信的能力。本文由浅入深,介绍了WebSocket如何建立连接、交换数据的细节,以及数据帧的格式。此外,还简要介绍了针对WebSocket的安全攻击,以及协议是如何抵御类似攻击的。

二、什么是WebSocket

HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。

对大部分web开发者来说,上面这段描述有点枯燥,其实只要记住几点:

WebSocket可以在浏览器里使用
支持双向通信
使用很简单
by @极乐小程序商店 2018-01-08 15:39 查看详情
保护web应用的安全 (zhuanlan.zhihu.com)
原文:Securing a Web Application
译者:lexburner
校对:zaixiandemiao
本指南将引导你使用Spring Security来保护Web应用的安全。

你将要构建什么

你将构建一个Spring MVC应用程序,该应用程序使用一些固定的用户,支持表单登录的形式来保护页面。

你需要什么

约15分钟
一个你喜欢的文本编辑器或IDE
JDK≥1.8
Gradle 2.3+ or Maven 3.0+
你也可以将代码直接导入你的IDE:
Spring Tool Suite (STS)
IntelliJ IDEA
by @极乐小程序商店 2018-01-04 17:29 查看详情
文章自动生成标签的算法分析与实现 (zhuanlan.zhihu.com)
标签匹配算法分析

假设有一篇文章,标题和内容如下:

标题:Spring Boot 容器选择 Undertow 而不是 Tomcat
内容:Spring Boot内嵌容器支持Tomcat、Jetty、Undertow。为什么选择Undertow?这里有一篇文章,时间 2017年1月26日发布的:
Tomcat vs. Jetty vs. Undertow: Comparison of Spring Boot Embedded Servlet Containers
这篇文章详细测试了Spring Boot应用在三种容器下的性能和内存使用,内含完整的测试代码和测试流程。证明了Undertow在性能和内存使用上是最好的。
如果要为此文章自动生成标签,该如何做呢?

1、创建一个带指针的字符串对象
by @极乐小程序商店 2018-01-04 17:16 查看详情
跳一跳高分全攻略,这个微信小程序小游戏有毒 (www.toutiao.com)
这个元旦,朋友圈被一款小游戏刷屏了。

屏幕上有一个“i”形小人,当玩家手指触碰到手机屏幕时,长按,它就弓腰蓄力;松开,它就开始翻转跳跃到各种方形圆形道具上,从而而获得分数,直到最终摔下去,然后你就可以在排行榜上和好友PK啦!

这款名叫“跳一跳”的微信小程序小游戏一经推出可谓风靡朋友圈,小编好奇便去试了一把,结果这一试就根本停不下来了!

作为手残党的小编对排行榜上那些几百上千的大神们表示分外膜拜,这么高的分怎么拿到的?小编翻阅众多秘笈,终于集齐了一套高分全攻略,好东西当然要分享,攻略如下,亲们拿走不谢!
by @极乐小程序商店 2018-01-03 18:10 查看详情
Scala快速入门系列:声明变量、控制结构与函数、常用数组操作 (zhuanlan.zhihu.com)
Scala快速入门-1-声明变量

背景

因为Spark是由Scala开发的,所以在开发Spark应用程序之前要对Scala语言学习。虽然Spark也支持Java、Python语言,但是作为一名Java程序猿,还是决定要学习Scala哈。
Scala是运行在JVM上一门语言。开发效率非常高、语法丰富简洁,三两行Scala代码能搞定Java要写的一大坨代码。
Scala的语法糖太甜~~
Scala特性

面向对象特性
by @极乐小程序商店 2018-01-03 14:52 查看详情
Spring Boot干货系列:(十二)Spring Boot使用单元测试 (zhuanlan.zhihu.com)
前言

这次来介绍下Spring Boot中对单元测试的整合使用,本篇会通过以下4点来介绍,基本满足日常需求

Service层单元测试
Controller层单元测试
新断言assertThat使用
单元测试的回滚正文
Spring Boot中引入单元测试很简单,依赖如下:<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
by @极乐小程序商店 2018-01-03 14:27 查看详情
ThreadLocal原理探究 (zhuanlan.zhihu.com)
2.1.11 ThreadLocal

ThreadLocal是在JDK包里面提供的,它提供了线程本地变量,也就是如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个本地拷贝,多个线程操作这个变量的时候,实际是操作的自己本地内存里面的变量,从而避免了线程安全问题,创建一个ThreadLocal变量后每个线程会拷贝一个变量到自己本地内存,如下图:
by @极乐小程序商店 2018-01-03 14:17 查看详情
Spring Boot 2.0 整合 ES 5 文章内容搜索实战 (zhuanlan.zhihu.com)
一、文章内容搜索思路
上一篇讲了在怎么在 Spring Boot 2.0 上整合 ES 5 ,这一篇聊聊具体实战。简单讲下如何实现文章、问答这些内容搜索的具体实现。实现思路很简单:

基于「短语匹配」并设置最小匹配权重值
哪来的短语,利用 IK 分词器分词
基于 Fiter 实现筛选
基于 Pageable 实现分页排序
这里直接调用搜索的话,容易搜出不尽人意的东西。因为内容搜索关注内容的连接性。所以这里处理方法比较 low ,希望多交流一起实现更好的搜索方法。就是通过分词得到很多短语,然后利用短语进行短语精准匹配。

ES 安装 IK 分词器插件很简单。第一步,在下载对应版本 https://github.com/medcl/elasticsearch-analysis-ik/releases。第二步,在 elasticsearch-5.5.3/plugins 目录下,新建一个文件夹 ik,把 elasticsearch-analysis-ik-5.5.3.zip 解压后的文件拷贝到 elasticsearch-5.1.1/plugins/ik 目录下。最后重启 ES 即可。
by @极乐小程序商店 2018-01-02 18:56 查看详情