基于 MongoDB 的文件服务器 MongoDB File Server 1.0.0 发布!

2018-01-22 MongoDB MongoDB File Server

欣喜的告诉大家,基于 MongoDB 的文件服务器 MongoDB File Server 1.0.0 发布了!MongoDB File Server 致力于小型文件的存储,比如博客中图片、普通文档等。由于MongoDB 支持多种数据格式的存储,对于二进制的存储自然也是不话下,所以可以很方便的用于存储文件。由于 MongoDB 的 BSON 文档对于数据量大小的限制(每个文档不超过16M),所以本文件服务器主要针对的是小型文件的存储。对于大型文件的存储(比如超过16M),MongoDB 官方已经提供了成熟的产品 GridFS,读者朋友可以自行了解。


《基于Spring Cloud的微服务实战》课程发布

2018-01-22 Java Spring Cloud Spring Boot Eureka Ribbon OpenFeign Zuul Config Hystrix Gradle Apache HttpClient Redis Quartz Scheduler Thymeleaf Bootstrap Spring Data

接到慕课网的通知,本人所设计的视频教程《基于Spring Cloud的微服务实战》于 2018年1月22日下午发布了!课程地址:https://coding.imooc.com/class/177.html。 课程从策划、编码、录制到后期制作,差不多花费了4-5个月的时间。课程中的每行代码都是笔者亲自敲的,光写代码都也要好几个月时间。编码期间也是遇到了很多技术问题,埋了很多坑,其中心酸只有自知。

那么,这门课程到底是怎么样的?






基于消息队列的分布式任务分配系统

2017-12-14 Distributed Message

最新在公司承担一个供需匹配模拟引擎的项目。该项目在最近上线的版本中,由于数据量和计算量暴增,原本在测试环境中没有发现的问题,在生产环境中暴露了出来。基于消息队列的分布式任务分配系统可以有效解决该问题。





使用 Eureka 实现服务注册与发现

2017-09-17 Eureka Spring Cloud

Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。 Spring Cloud 集成了 Eureka,并提供了开箱即用的支持。其中, Eureka 又可细分为 Eureka Server 和 Eureka Client。

本例子将演示如何通过 Spring Cloud Eureka 来快速实现服务的注册和发现。


Markdown 转为 Word 格式文档

2017-09-13 Markdown Pandoc Writage

平时都有用 Markdown 写书、写博客的习惯。很享受 Markdown 带来的纯粹撰写文字,而无须纠结格式所带来的快感。但有时,某些场合下,Word 文件又是必须的格式(比如,编辑部校稿,公司会议等),此时,就很有必要将Markdown 转为 Word 格式文档。

本文演示了几种方面将 Markdown 转为 Word 格式文档的方法。


基于Spring Boot的天气预报服务

2017-09-05 Spring Boot

本文,我们将基于 Spring Boot 技术来实现一个微服务天气预报服务接口——micro-weather-basic。micro-weather-basic 的作用是实现简单的天气预报功能,可以根据不同的城市,查询该城市的实时天气情况。


将HTML页面制作成为CHM格式的帮助手册

2017-08-23 CHM

CHM是英语“Compiled Help Manual”的简写,即“已编译的帮助文件”。CHM是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。

但有时,市面上并不能总是能找到我们需要的CHM文档,这个时候,就需要自己动手丰衣足食了。


Git导出某个分支的干净文件

2017-08-06 Git

经常需要将某个分支的文件打包发送,而且是干净的(不带版本控制信息),下面的语句很重要哦:

>git archive --format zip --output "./2.0.0-20170806.zip" 2.0.0-20170806

《基于Spring Boot 企业级博客系统实战》课程发布

2017-08-01 Java Spring Boot Gradle Elasticsearch Thymeleaf Spring Spring MVC Spring Security Hiberate MySQL H2 Bootstrap jQuery HTML5 JavaScript CSS NewStarBlog

接到慕课网的通知,本人所设计的视频教程《基于Spring Boot 企业级博客系统实战》于 2017年7月31日中午发布了!课程地址:http://coding.imooc.com/class/125.html。 课程从策划、编码、录制到后期制作,差不多花费了4-5个月的时间。 课程中的每行代码都是笔者亲自敲的,光写代码都要个把个月时间。编码期间也是遇到了很多技术问题,埋了很多坑,其中心酸只有自知。



使用 Webix 创建 Email 客户端

2017-06-24 Webix

Webix 是一个JavaScript UI 库,提供了多达88个UI小部件和功能丰富的 CSS/HTML5 JavaScript 控件。使用 Webix 可以有效地加快 Web 应用的开发。文本将演示了如何通过 Webix 框架,来创建一个 Email 客户端原型。



Gradle Wrapper 引用本地的发布包

2017-06-04 Gradle

Gradle Wrapper 免去了用户在使用 Gradle 进行项目构建时需要安装 Gradle 的繁琐步骤。 每个 Gradle Wrapper 都绑定到一个特定版本的 Gradle,所以当你第一次在给定 Gradle 版本下运行上面的命令之一时,它将下载相应的 Gradle 发布包,并使用它来执行构建。默认,Gradle Wrapper 的发布包是指向的官网的 Web 服务地址,有时候,下载这个发布包比较慢甚至不成功,本文演示了加速下载发布包的方式。


基于 MongoDB 及 Spring Boot 的文件服务器的实现

2017-06-03 MongoDB Spring Boot

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

本文将介绍通过 MongoDB 存储二进制文件,从而实现一个文件服务器 MongoDB File Server。


Keepalived 软件架构设计

2017-05-22 Keepalived Architecture

Keepalived 顾名思义,就是保持存活、保持在线了, 也就是用来实现服务的高可用(high availably)或热备,从而避免单点故障的发生。本文对 Keepalived 架构设计进行讲解。


NGINX 简明教程

2017-05-21 NGINX

NGINX 是一款来自俄罗斯的HTTP 和反向代理(reverse proxy)服务器、邮件服务器,以及通用的 TCP/UDP 代理服务器,以其高性能被业界广泛采用。本文通过最简洁的方式,将 NGINX 核心应用做下介绍。


分布式系统常见的事务处理机制

2017-04-13 Distributed Transaction

为保障系统的可用性、可靠性以及性能,在分布式系统中,往往会设置数据冗余,即对数据进行复制。举例来说,当一个数据库的副本被破环以后,那么系统只需要转换到其他数据副本就能继续运行下去。另外一个例子,当访问单一服务器管理的数据的进程数不断增加时,系统就需要对服务器的数量进行扩充,此时,对服务器进行复制,随后让它们分担工作负荷,就可以提高性能。但同时,如何保障多个数据节点之间数据的一致以及如何处理分布式事务,将成为为一个复杂的话题。本文将介绍常用的事务处理机制。


OAuth 2.0 认证的原理与实践

2017-03-24 OAuth2 Spring Security GitHub

使用 OAuth 2.0 认证的的好处是显然易见的。你只需要用同一个账号密码,就能在各个网站进行访问,而免去了在每个网站都进行注册的繁琐过程。 本文将介绍 OAuth 2.0 的原理,并基于 Spring Security 和 GitHub 账号,来演示 OAuth 2.0 的认证的过程。


Spring Data + Thymeleaf 3 + Bootstrap 4 实现分页器

2017-03-05 Spring Spring Data Thymeleaf Bootstrap

实际上分页器或者分页组件在现实中都有广泛着的应用,照理来说老卫没有必要单独撰文来提这茬。事实是,我近期刚好在写一门关于Spring Data、Thymeleaf 3、Bootstrap 4 的应用课程,所以用了Bootstrap 4的样式,结果之前很多例如 Bootstrap 3 的表格、分页器啊之类的插件都不能很好的兼容,百度谷歌无果,而且 Bootstrap 4 还没有出稳定版本,官网的示例也是少的可怜,最终下决心要自己写个分页器了,所用到的技术就是 Spring Data、Thymeleaf 3、Bootstrap 4 。


用大白话聊聊分布式系统

2017-03-05 Distributed

一提起“分布式系统”,大家的第一感觉就是好高大上啊,深不可测,看各类大牛关于分布式系统的演讲或者书籍,也大多是一脸懵逼。本文期望用浅显易懂的大白话来就什么是分布式系统、分布式系统有哪些优势、分布式系统会面临哪里挑战、如何来设计分布式等方面的话题来展开讨论。


Thymeleaf 3 引入了新的解析系统

2017-02-19 Thymeleaf

如果你的代码使用了 HTML5 的标准,而Thymeleaf 版本来停留在 2.x ,那么如果没有把<input>闭合,如下:

<form>
 First name:<br>
<input type="text" name="firstname">
<br>
 Last name:<br>
<input type="text" name="lastname">
</form> 

就会抛出如下错误。

org.xml.sax.SAXParseException: 元素类型 "input" 必须由匹配的结束标记 "</input>" 终止。

使用 GFM Eclipse 插件时,不在项目里面生成 HTML 文件

2017-02-19 GFM

GFM 是 GitHub Flavored Markdown Viewer 的简称,是一款对 GitHub 友好的 Markdown 编辑器 ,在 Eclipse中可以以插件形式安装。

在使用过程中,我们发现对使用 GFM 编辑过的.md文件,都会在同个目录下生成.md.html的同名文件。显然,很多时候,我们并不需要保存.md.html文件,我们只想把.md文件存储到代码库。


使用 PMD Eclipse插件

2017-02-14 PMD

PMD 是一个源代码分析器。 它发现常见的编程缺陷,如未使用的变量、空 catch 块、不必要的对象创建等等。 它支持Java、JavaScript、Salesforce.com Apex、PLSQL、Apache Velocity、XML、XSL 等。

此外,它包括 CPD(copy-paste-detector,复制粘贴检测器)。 CPD 在Java、C、C++、C#、Groovy、PHP、Ruby、Fortran、JavaScript、PLSQL、Apache Velocity、Scala、Objective C、Matlab、Python、Go、Swift 和 Salesforce.com Apex 中能够发现重复的代码。

本文介绍了如何在 Eclipse 里面安装、使用 PMD 插件的过程。


使用 Eclipse Checkstyle Plugin

2017-02-13 Checkstyle

Checkstyle是一个开发工具,帮助程序员编写符合编码标准的Java代码。 好的代码规范,在一个项目协作的团队中尤为重要。Checkstyle 能够自动化检查Java代码的过程,免去了人工校验的繁琐。 同时,Checkstyle是高度可配置的,可以支持几乎任何编码标准。 只需要提供了一个示例配置文件,就能支持代码的约定。

本文介绍了如何在 Eclipse 里面安装、使用 Checkstyle 插件的过程。


imooc 讲课技巧

2017-02-12 imooc

总结自 imooc 上的讲课技巧。对比培养演讲、讲课培训还是比较有帮助的。



通过 WSL在Windows下愉快的玩耍Linux

2017-02-05 WSL Windows

WSL(Windows Subsystem for Linux) 是 在Windows系统中为那些熟悉Linux用户准备的诸多子系统功能。换言之,你可以在Windows环境下来执行Linux操作,运行 Linux程序。这对于Windows、Linux双系统有需求的用户来说是个不错的功能。本文详细介绍了如何使用 WSL。





为什么我们迫切需要持续集成(Continuous Integration)

2016-12-25 CI

持续集成(Continuous Integration),也就是我们经常说的 CI,是现代软件开发技术的基础。本文论述了当前软件开发过程中存在的问题,讲解了持续集成、持续集成服务器的概念,最终探讨了为什么我们需要持续集成来解决这些问题。


Way Lau

Software Engineer and Full Stack Developer, now work and live in Shenzhen, China. Detail

Donate

See the list of Donors.