Reactive Stream 编程规范
Lambda是java8新特性,替换匿名内部类,只能有一个自己的抽象方法,继承Object的方法不算。
@FunctionInterface非必须,建议加来定义为抽象方法,如果多加其他自己的方法会报错。
webflux是java9特性
内置接口,Predicate,Consumer貔貅,Supplier聚宝盆,Function,UnaryOperator,BiFunction,BinaryOperator
Stream惰性求值,多个中间操作可以链式调用。
并行处理parallel(),System.setProperty()设置系统参数
中间操作-有状态/无状态操作
终止操作-短路/非短路操作
WebFlux
Mono表示一个或零个异步序列,Flux.just表示多个异步序列
Mono.fromSupplier();用户体验一样,服务端是异步的增加吞吐量
SSE,Server Sent Event 服务端推送事件,事件流方式, produces=“text/event-stream”–更新频繁,低延迟的场景。单工通道,WebSocket双工通道。
EventSource - open / message / error
反应式编程(Reactive Programming)库:RxJava,RxJava2,Reactor
背压Back Pressure:由订阅者控制发布者发布速度。
Flow since java9 Publisher Subscribe Subscription
只支持非关系型数据库
没有返回值的使用 .then(Mono.just(xxx))添加返回值
Mono.map 使用同步方式做映射 .flatMap 异步方式
Reactive Stack 可以使用netty容器
route + handler = controller
异常处理器,参数校验
Kubernetes
容器编排实现应用自动启停,自动伸缩。降本增效。把无数松散的节点组装成一个整体,看起来像是一台超级计算机。
充分利用服务器资源。持续集成迭代。
kernel vm linux自带的虚拟化技术 - 构建安全级别更高的私有云环境
openstack构建云计算的基础设施层(网络,磁盘,cpu,内存)
GC & SpringCloud Alibaba
调试metaspace参数防止fullgc
Nacos Config, Nacos Discovery, RocketMq,
Nacos是一个更易于构建云原生应用的动态服务发现,配置管理和服务管理平台。
@refreshscope实现动态刷新,spring.profiles.active 实现多环境切换