Slot是一个什么样的概念,在框架中起到什么样的作用?
有使用者肯定发现了,在组件中通过this关键字,可以调用到this.getSlot()
这个方法,返回一个slot。
那这个Slot是什么呢?在框架中起到什么样的作用?
Slot对象是上下文的一个包装类。每一个请求,都会申请一个新的Slot对象,同时一个请求结束的时候,也会回收这个slot对象。
LiteFlow框架声称的对于每个请求,上下文之间是隔离的,准确的来说,是Slot之间是隔离的。因为Slot隔离,所以上下文也隔离。上下文是Slot中的一个子项。
上下文是用来存放组件中产生的业务数据的,而它的包装类Slot里,则存放着一些框架对于这次请求中的元数据。大多数情况下,用户是不需要关心的。
大部分情况下,用户只要直接获得上下文就可以了。
值得一提的是,slot的数量可能有些使用者会以为只有1024个,从而认为并发如果超过1024,slot就会分配不过来了。其实不然,LiteFlow框架从很早开始就加入了slot自动扩容的机制,当slot用完的时候,slot就会自动扩容。扩容因子为0.75,也就是说,每次扩容之后的数量为扩容之前的1.75倍。其实使用者是完全不用担心并发大,slot分配不过来的问题。
帮助我们改善此文档 (opens new window)
上次更新: 2023/03/27, 00:04:52