BeanUtils中HashMap触发死循环

一次HashMap多线程不安全的踩坑…


一种使用自定义注解+切面统一收集审计日志的方式

最近在做一个审计模块,想要实现的是为微服务各个模块提供一个审计日志服务,即各个微服务模块收集日志 + 日志存储在db/elk/hive,然后针对存储的审计日志做展示或者分析的一个服务。可以看出实现一个审计服务的三个关键地方是:

  • 收集日志
  • 存储日志
  • 展示/分析日志

第一个关键地方是收集日志, 本文也想探讨下如何更低耦合的收集日志。


Java8函数式接口

Java8引入了“行为参数化”的理念。为了实现行为参数化,java8提出函数式接口Lambda表达式。本文首先会讲讲什么是函数式接口,然后会讲到java8预定义的四种核心函数式接口,以及使用这四种接口处理问题的demo。同时,本文还会使用大量的用Stream处理集合数据的例子。


Lambda表达式详解

编写简洁而灵活的代码,能够轻松地适应不断变化的需求

导读: 通过本文,你可以了解为什么Jdk1.8引入lambda表达式,一些设计思想;还有你怎么使用lambda表达式让你的代码更加优雅一些。另外,你还可以接触一点流(Stream)和并行开发的知识.


Java内部类详解

What

Sun公司在JDK1.1以后的版本中引入了内部类的概念:一个类可以定义在另一个类之中。这个嵌套着另一个类的类叫做”外部类(outer class)”, 被嵌套的类叫做内部类(inner class).


庖丁解牛-多服务器并发场景下乐观锁的实际应用

庖丁解牛-多服务器并发场景下乐观锁的实际应用

笔者面临的一个业务场景为:项目中多条业务线的实现都需要创建一个实例ID(instanceID),实例ID的值为系统当前的实例ID最大值+1。这样就会面临着在同一时间下有多个用户更新实例ID,造成并发冲突的问题。

笔者首先想到的解决方法是使用关键字synchronized来解决。但是组内同事提出光有synchronized是不够的,因为synchronized只能解决单台机器的JVM多线程并发问题,无法解决线上多台服务器分布式导致的并发问题。


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×