分类:work

使用Lightbend Config

Lightbend config 提供了一种叫 HOCON 的标记语言来进行配置管理,它是JVM上的配置管理工具,可用来替代Java自带的Properties;而相对于使用JSON来管理配置,它具有注释、变量、可组合等更丰富的特性。本文分享些日常开发工作中使用Lightbend config的经验和技巧。 Lightbend config以前叫Typesafe config,Github地址为:h

Firewall快速使用

基本使用查询状态1sudo firewall-cmd --zone=public --list-all 打开端口1sudo firewall-cmd --zone=public --permanent --add-port=3306/tcp --permanent选项设置匹配永久生效,但需要调用--reload使firewall重新加载配置使其马上生效。 使规则生效1sudo firewall-c

使用WebFlux与Reactor

注意empty会造成之后的所有转换操作不执行当Mono<T>的计算结果为empty时,在它之后添加的多个转换操作都不会被触发执行。有一些方法可以解决这个问题: 使用Optional<T>来包裹可能为空的数据类型。 1Mono<Optional<User>> findById(String userId); 使用.switchIfEmpty或.d

反应式的Spring

Spring从5.0开始拥抱反应式(Reactive)开发,通过Reactor和WebFlux来支持反应式的开发模式。有关反应式更多的内容可以阅读 《反应式宣言》 。反应式系统具有以下物质:即时响应性(Responsive)、回弹性(Resilient)、弹性(Elastic)以及消息驱动(Message Driven)。 对于这样的系统,我们称之为反应式系统(Reactive System)。这

Spring应用enum处理

原文地址:https://www.yangbajing.me/2019/04/17/spring应用enum处理/ 在Spring应用开发中,Java枚举(enum)默认都是使用字符串进行序列化/反序列化的。都通常我们都想将其序列化/反序列化为int值。 MyBatisMyBatis-plus提供了插件用于自定义enum的序列化/反序列化,非常方便。只需要在application.properti

DevOps实践:Gitlab、Jenkins

Wiki百科上对DevOps一词的解释:DevOps(Development和Operations的组合詞)是一种重视「软件开发人员(Dev)」和「IT运维技术人员(Ops)」之间沟通合作的文化、运动或慣例。 透过自动化「软件交付」和「架构变更」的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。 而Gitlab和Jenkins是我们在DevOps中常用的工具,本文将简单介绍下怎样搭配G

Nginx限流控制

最近公司给客户做的系统遇到大量爬虫爬取,造成系统资源消耗增高、系统响应降低…… 因为项目时间比较紧,没有更多时间在功能和代码层面上进行修改来上一套反爬虫系统。权衡以后决定使用Nginx提供的请求限流功能来实现一个简单的反爬虫机制。待以后再详细规划、设计反爬虫系统。 我们一直使用的是阿里发布的Nginx重发行版:Tengine,本文也将基于Tengine来介绍Nginx的限流控制。 ngx_http

使用Sphinx撰写电子文档

在日常工作中,写电子文档是个很普遍的事情。之前一直用Microsoft Word、Libreoffice Writer来写,但总感觉不方便,很多的精力都浪费在了调整格式上。而使用 Sphinx 来写电子文档,则可以把你从调整格式的泥潭中解放出来。Sphinx 是一款基于 Python的文档处理工具,Python官方的文档就是使用它来写的。Sphinx 使用reStructuredText 格式来定

我会做的技术选型

Java/Scala:全功能的业务、服务端开发平台。大数据开发:Spark、Scala、Akka Node.js:前端不说了,还有其它更好的选择吗 Go:21世纪的C语言,分布式开发、API开发利器 Python:胶水、灵活的脚本语言。数据科学家的最爱 开门见山,先表明下我的态度吧。以上4个是我的首先,个人认为很不错的技术选型。当然,也不是非此不可,技术选型这个除了从技术本身考虑,很多时候

Linux系统运维常用工具

本文记录一些 Linux 日常运维相关工具使用方法。 (注:未做特殊说明,以下设置均指:Ubuntu Server 14.04,并测试通过。) 系统设置更改系统默认字符集 Ubuntu Server下,需要修改 /etc/default/locale 文件使配置生效(需要重启系统)。也可以在每个用户的登录 .bashrc 或 .bash_profile中设置LANG、LANGUAGE等环境变量。

Nginx(Tengine)使用

用了一段时间Tengine了,主要用于静态资源、后端服务的反向代理、负载均衡方面。也有了一些使用经验,现在将一些配置及心得记录于此。 Tengine的安装Tengine的安装非常简单,就是: 123$ ./configure$ make$ sudo make install 官方有更详细的说明:http://tengine.taobao.org/document_cn/install_cn.htm

写给Python程序员的Scala入门教程

随着业务和数据的需要,我们引入了Spark。Spark对Python的支持还是挺好的,但毕竟它还是使用Scala开发的,且现有的API并没有100%覆盖Python。所以就有了这篇文章,让Python程序员可以接触Scala这门更高(级)、更快(速)、更强(大)的(奥运精神)语言。 Scala兼具Python样的开发效率,但又有Java般的执行性能,真是一不可多得的神器!(当然,鱼和熊不可兼得,S

JVM程序员书单

JVM程序员书单 为什么是JVM程序员书单,因为现在Java已经不再单指Java编程语言了,而是说整个Java生态环境和基于JVM平台的各种虚拟机语言。如:Scala、Clojure、Groovy等。 《软件框架设计的艺术》 这是Netbeans的创始人写的一本很有价值的书,里面的边角细节也很有料。国内市场上没有对这本书给予应给的赞誉。 《Effective Java 第二版》 被称为Java领域

Nginx负载均衡与反向代理

一般在应用部署中都不会直接把Web Server(如:Tomcat、Jetty等)暴露给用户,我们会在Web Server前面再加一个反向代理。这篇文章介绍的就是怎样设置Nginx来做反向代理。 Nginx安装以Ubuntu 14.04为例(其它系统请自行查找安装方法)。官方安装文档在:http://nginx.org/en/download.html 1234567curl http://ng

使用Gatling进行性能测试

Gatling下载是一款开源的性能测试工具,提供简洁、强大的DSL API编写测试套件,支持插件扩展,且自动生成美观、明了的HTML测试报告。 Gatling现在最新版本是:2.1.7。需要scala 2.11支持。 Gatling有多种执行方式,可以使用官话的bundle包,使用gatling.sh脚本执行,也可以使用使用gatling-sbt下载在Sbt工程里执行,也可以集成到如Jenkins