使用Docker搭建ELK日志系统 (zhuanlan.zhihu.com)
之前用本地版本安装了ELK之后,就没有再去弄它了。年底没那么忙,心里一直惦记,所以最近又开始折腾了。去elastic官网看一下,果然版本帝就是版本帝,一周一版本。现在我用的版本是基于6.1.1版本的。

目标

收集Java日志文件,并且根据文件的不同将日志分类,比如:订单日志,客户日志等。
日志文件多行处理
总体架构图
by @极乐小程序商店 2018-01-02 17:47 查看详情
Dubbo 新编程模型之外部化配置 (zhuanlan.zhihu.com)
外部化配置(External Configuration)

在Dubbo 注解驱动例子中,无论是服务提供方,还是服务消费方,均需要转配相关配置Bean:

@Bean
public ApplicationConfig applicationConfig() {
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName(\"dubbo-annotation-consumer\");
return applicationConfig;
}


虽然实现类似于 ProviderConfiguration 和 ConsumerConfiguration 这样的 Spring @Configuration Bean 成本并不高,不过通过 Java Code 的方式定义配置 Bean,或多或少是一种 Hard Code(硬编码)的行为,缺少弹性。

尽管在 Spring 应用中,可以通过 @Value 或者 Environment 的方式获取外部配置,其代码简洁性以及类型转换灵活性存在明显的不足。因此,Spring Boot 提出了外部化配置(External Configuration)的感念,即通过程序以外的配置源,动态地绑定指定类型。
by @极乐小程序商店 2018-01-02 17:19 查看详情
第一个微信小程序小游戏Demo:飞机大战 (www.wxapp-union.com)
第一个微信小程序小游戏Demo:飞机大战,需要的老铁来下载吧。
by @极乐小程序商店 2017-12-29 19:01 查看详情
这款跳一跳的小游戏,是微信小程序的年度大招! (zhuanlan.zhihu.com)
1 对微信用户来说,这是真的「玩完即走」的小游戏

就在今天,微信更新的 6.6.1 版本突然开放了小游戏,微信启动页面还重点推荐了小游戏「跳一跳」。


目前,小游戏只能在 6.6.1 版微信进行游玩,使用旧版本微信打开,会提示「需要更新微信」。iOS 已经可以直接在 App Store 更新新版。

这意味着,你现在直接在微信上面就能玩到一大堆自己喜欢的游戏了,无须下载安装。开发者也能光明正大地申请一个小游戏,提交给微信审核发布,让用户畅玩。
by @极乐小程序商店 2017-12-29 14:09 查看详情
IntelliJ-IDEA-Mavne-Scala-Spark开发环境搭建 (zhuanlan.zhihu.com)
背景

几乎所有编程语言的第一个程序都是 Hello World。
下载并安装JDK、Scala、Maven

之前的Hadoop HA 和 Spark集群的文章中已经安装过JDK、Scala。Maven安装也很简单,略。
下载Idea并安装Scala插件

在线安装有点慢,但网上很多方法解决,略。
创建一个maven-scala工程
by @极乐小程序商店 2017-12-29 12:00 查看详情
我的第一个scala程序 (zhuanlan.zhihu.com)
帮同事处理List[scala.collection.immutable.Map[String,Any]]的排序问题
原来想的办法是

var x = mylist.sortWith(_.get(\"commonCount\").toString > _.get(\"commonCount\").toString)
_.get(\"commonCount\")可以取出值,但类型是 Some,要用_.get(\"commonCount\").get 来获取真实类型

scala> println(mylist.map(_.get(\"commonCount\").get.getClass))
List(class java.lang.Integer, class java.lang.Integer, class java.lang.Integer, class java.lang.Integer, class java.lang.Integer)
知道真实的数据类型,但在实际使用时要转换成基本类型.asInstanceOf[Int],进行判断
by @极乐小程序商店 2017-12-29 11:05 查看详情
MVC系列——一个异常消息传递引发的思考 (zhuanlan.zhihu.com)
正文

前言:最近在某个项目里面遇到一个有点纠结的小问题,经过半天时间的思索和尝试,问题得到解决。在此记录一下解决的过程,以及解决问题的过程中对.net里面MVC异常处理的思考。都是些老生常谈的问题,不多说,直接上“主菜”。

一、问题重现

项目是一个传统.net framework的MVC项目,为了简便,项目里面定义了一个自定义异常类用于向客户端传递错误消息,客户端接收到异常的消息时在浏览器里面弹出提示。先来看看这个自定义异常类CustormerException的定义
by @极乐小程序商店 2017-12-29 10:30 查看详情
Windows 下安装 Consul (zhuanlan.zhihu.com)
前提

从刚工作就开始接触 Consul,中途自己也有两个项目和 Consul 有关,后面有机会再讲讲,网上关于这个的资料还比较少。因为明天有 Consul 的技术分享,所以自己今天下午在官网看了下相关的介绍。

介绍

Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件, 由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源。Consul 支持健康检查, 并允许 HTTP 和 DNS 协议调用 API 存储键值对。
命令行超级好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品。一致性协议采用 Raft 算法, 用来保证服务的高可用, 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制。
by @极乐小程序商店 2017-12-28 18:47 查看详情
ELK 实时日志分析平台环境搭建 (zhuanlan.zhihu.com)
简单介绍

ELK(ElasticSearch, Logstash, Kibana),三者组合在一起搭建实时的日志分析平台,目前好多公司都是这套!

Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful 风格接口,多数据源,自动搜索负载等。
Logstash 是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
Kibana 也是一个开源和免费的工具,它 Kibana 可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
安装 ES

。。。这个省略,不 bb
by @极乐小程序商店 2017-12-28 18:43 查看详情
微信小程序更新:用小程序玩吃鸡是种什么感觉? (www.toutiao.com)
极乐科技刚获息:微信小程序开放新功能,小游戏全面开放,期待小程序中玩吃鸡。

微信小程序更新:用小程序玩吃鸡是种什么感觉?

为了帮助用户更便捷地使用小程序,微信在主界面新增了小程序任务栏的功能。小程序菜单进行了升级,并提供小程序间快速切换的功能。同时,我们开放了小游戏开发文档和开发者工具。
by @极乐小程序商店 2017-12-28 18:06 查看详情
微信小程序更新:用小程序玩吃鸡是种什么感觉? (zhuanlan.zhihu.com)
为了帮助用户更便捷地使用小程序,微信在主界面新增了小程序任务栏的功能。小程序菜单进行了升级,并提供小程序间快速切换的功能。同时,我们开放了小游戏开发文档和开发者工具。
为了让用户更便捷地启动和使用小程序,微信在最新版6.6.1的主界面中,增加了小程序任务栏。用户可以通过下拉的动…
by @极乐小程序商店 2017-12-28 16:00 查看详情
微信小程序开发——本地调试 (zhuanlan.zhihu.com)
微信小程序开发——本地调试 https://zhuanlan.zhihu.com/p/32387683
by @极乐小程序商店 2017-12-27 14:43 查看详情
五分钟掌握微信小程序轮播图 (zhuanlan.zhihu.com)
五分钟掌握微信小程序轮播图 https://zhuanlan.zhihu.com/p/32388737
by @极乐小程序商店 2017-12-27 14:37 查看详情
五分钟掌握微信小程序轮播图 (zhuanlan.zhihu.com)
五分钟掌握微信小程序轮播图 https://zhuanlan.zhihu.com/p/32388737
by @极乐小程序商店 2017-12-27 14:37 查看详情
缓存穿透、缓存并发、缓存失效之思路变迁 (zhuanlan.zhihu.com)
我们在用缓存的时候,不管是Redis或者Memcached,基本上会通用遇到以下三个问题:


缓存穿透
缓存并发
缓存失效
by @极乐小程序商店 2017-12-27 11:08 查看详情
Spring Boot中使用Flyway来管理数据库版本 (zhuanlan.zhihu.com)
如果没有读过上面内容的读者,有兴趣的可以一阅。在上面的使用JdbcTemplate一文中,主要通过spring提供的JdbcTemplate实现对用户表的增删改查操作。在实现这个例子的时候,我们事先在MySQL中创建了用户表。创建表的过程我们在实际开发系统的时候会经常使用,但是一直有一个问题存在,由于一个系统的程序版本通过git得到了很好的版本控制,而数据库结构并没有,即使我们通过Git进行了语句的版本化,那么在各个环境的数据库中如何做好版本管理呢?下面我们就通过本文来学习一下在Spring Boot中如何使用Flyway来管理数据库的版本。

Flyway简介
Flyway是一个简单开源数据库版本控制器(约定大于配置),主要提供migrate、clean、info、validate、baseline、repair等命令。它支持SQL(PL/SQL、T-SQL)方式和Java方式,支持命令行客户端等,还提供一系列的插件支持(Maven、Gradle、SBT、ANT等)。
by @极乐小程序商店 2017-12-27 10:47 查看详情
Spring Boot 2.0 自动配置原理浅析 (zhuanlan.zhihu.com)
1. 外化配置和自动配置
Spring Boot 配置,包括自动配置和外化配置。

比如常见的,将属性外化配置在 application.properties 应用配置文件,然后在工程中获取该属性值。Spring Boot 可以将配置外部化,这种模式叫做 “外化配置”。将配置从代码中分离外置,最明显的作用是只要简单地修改下外化配置文件,就可以在不同环境中,可以运行相同的应用代码。具体见《Spring Boot 配置文件 – 在坑中实践》:
http://www.spring4all.com/article/267

那自动配置呢

Spring Boot spring-boot-autoconfigure 依赖做了很多默认的配置项,即应用默认值。这种模式叫做 “自动配置”。Spring Boot 自动配置会根据添加的依赖,自动加载依赖相关的配置属性并启动依赖。例如默认用的内嵌式容器是 Tomcat ,端口默认设置为 8080。

为什么需要自动配置?顾名思义,自动配置的意义是利用这种模式代替了配置 XML 繁琐模式。以前使用 Spring MVC ,需要进行配置组件扫描、调度器、视图解析器等,使用 Spring Boot 自动配置后,只需要添加 MVC 组件即可自动配置所需要的 Bean。所有自动配置的实现都在 spring-boot-autoconfigure 依赖中,包括 Spring MVC 、Data 和其它框架的自动配置。
by @极乐小程序商店 2017-12-22 15:43 查看详情
技术大咖访谈第二期:和大咖安晓辉老师聊聊迷茫的IT生涯 (zhuanlan.zhihu.com)
本次访谈的主题主要围绕: 成长、个人经历、技术发展等几个方面。

安老师,您先向大家简单介绍下自己!

安老师:

大家好,我是安晓辉,一个老程序员,有十余年开发与管理经验,经历过软件开发工程师、研发经理、项目总监、研发总监等岗位。著有《程序员的成长课》、《 Qt Quick 核心编程》、《 Qt on Android 核心编程》、《你好哇,程序员》、《解忧程序员》等图书,电子工业出版社优秀作者,订阅号“程序视界”创建者。 CSDN 知名博主, 2014、2015两届博客之星,博客阅读量超 500 万,排名 100 以内。

1. 目前,您觉得对于现在的职场初中级菜鸟需要克服哪些技术难关或者应该如何做好自己的职业规划?

安老师:

技术难关和具体技术有关,我懂的技术不多,很难一一说到,所以,只提一个通用的点:一定要有一种技术,是精通的,所谓精通,是指你熟悉这种技术的原理,达到可以改善、优化、定制、扩展的程度。

关于开发者的职业规划,很多人只关注技术,嘴里说的都是 Java 、Python 、JS 、Hadoop 等语言或者框架,但实际上,你需要考虑三点:
by @极乐小程序商店 2017-12-22 15:13 查看详情