Guava: Google Core Libraries for Java
https://github.com/google/guava
观察者 vs 发布/订阅
Spring Events
Event handling in the ApplicationContext is provided through the ApplicationEvent class and the ApplicationListener interface.
If a bean that implements the ApplicationListener interface is deployed into the context, every time an ApplicationEvent gets published to the ApplicationContext, that bean is notified.
Essentially, this is the standard Observer design pattern.
Event channels are conduits in which events are transmitted from event emitters to event consumers. … The physical implementation of event channels can be based on traditional components such as message-oriented middleware…
Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems.
Spring Cloud Stream is a framework for building highly scalable event-driven microservices connected with shared messaging systems.
The framework provides a flexible programming model built on already established and familiar Spring idioms and best practices, including support for persistent pub/sub semantics, consumer groups, and stateful partitions.
https://spring.io/projects/spring-cloud-stream
Binder
Spring Cloud Stream supports a variety of binder implementations.