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

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,是现代软件开发技术的基础。本文论述了当前软件开发过程中存在的问题,讲解了持续集成、持续集成服务器的概念,最终探讨了为什么我们需要持续集成来解决这些问题。


ToadforDB2_Freeware_6.x 安装报错“Toad did not find a default DB2 client”

2016-12-21 DB2

ToadforDB2 是比较好用的图形界面的DB2管理工具,分为免费版和商业版本。在新版的 ToadforDB2_Freeware_6.x 进行安装时,会提示报错“Toad did not find a default DB2 client”,即找不到 DB2 的客户端,意思是 6 版本区别与 5 版本 所不同的是,它依赖于 DB2 client 的实现。



Apache Mesos 在不同平台下的安装

2016-11-20 Mesos

在传统上,物理机和虚拟机是数据中心的典型的计算单元。当应用部署后,这些机器需要安装各种配置工具来对这些应用做管理。机器通常被组织成集群,提供独立的服务,而系统管理员则来监督其日常的日常运作。最终,这些集群达到其最大容量时,需要多机联网来处理负载,这就对集群的扩展带来了挑战。

在2010年,UC Berkeley 大学就对上述问题,提出了解决方案,这就是现在的 Apache Mesos。Mesos 抽象了 CPU、内存、硬盘资源,让数据中心的功能对外就像是一个大的机器。Mesos 创建一个单独的底层集群来提供他们给应用程序所需要的资源,而不会超出虚拟机和操作系统的性能限制。

本节介绍了 Mesos 在不同平台上的安装和使用过程。


Way Lau

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

Donate

See the list of Donors.