jdk8函数式编程

Lambda表达式

Lambda表达式允许我们将函数当成参数传递给某个方法,或者把代码本身当作数据处理。这一特性在许多语言都有支持,如pyhton, js等。Jdk1.8开始,Java也支持Lambda表达式。

最简单的Lambda表达式可由逗号分隔的参数列表、->符号和语句块组成,例如:

Read More

OWASP第三方依赖检查插件使用

什么是OWASP

OWASP(开放Web软体安全项目- Open Web Application Security Project) 是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。
其使命是使应用软件更加安全,使企业和组织能够对应用安全风险作出更清晰的决策。
目前OWASP全球拥有130个分会近万名会员,共同推动了安全标准、安全测试工具、安全指导手册等应用安全技术的发展。

Read More

docker搭建jenkins

使用docker搭建jenkins

jenkins目前官方有三个镜像,jenkins,jenkins/jenkins,和jenkins/jenkins:lts。其中 jenkins/jenkins 是每周更新,jenkins/jenkins:lts 是长期支持版本,而目前的 jenkins 镜像则会被废弃以更好的支持 jenkins/jenkins:lts 。

Read More

服务容错(三) 限流

限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页或告知资源没有了)、排队或等待(比如秒杀、评论、下单)、降级(返回兜底数据或默认数据,如商品详情页库存默认有货)。

Read More

spring cloud实践(八) elk

当服务扩展后,每次排查问题需要到多台机器查看日志;这是一个非常麻烦的问题,我们需要一个统一查看日志的地方。

ELK是一个日志集中平台,其组成为elastic search,logstash,kibana。其中es作为日志存储,logstatsh作日志收集,kibana作为可视化页面展示。logstash通常和filebeat共同使用,由filebeat收集本地日志再发送到logstash。

Read More

spring cloud实践(七) sleuth

链路追踪

随着业务发展,后端服务单元不断增加,导致一个前端请求需要诸多后端服务参与,这也使得如果请求出现问题变慢难以定位原因。此时就需要链路追踪系统。

分布式链路追踪系统会跟进一个请求到底有哪些服务参与,参与的顺序又是怎样的,从而达到每个请求的步骤清晰可见,出了问题,很快定位。

一般地,一个分布式链路追踪系统分为三个部分:数据收集,数据存储和数据展示。

Read More