拈花

Results 6 issues of 拈花

RT,以clientA发消息给clientB为例,我目前梳理流程是这样的: clientA ->(http invoke) -> router ->(http invoke) -> server, 然后server转发消息到clientB的时候是查找SessionSocketHolder,找到对应的NioSocketChannel,然后把消息write进去。 所以我的疑问是,为什么客户端发给服务端的请求直接走http,由SpringBoot的Controller受理,而server转发的请求要走netty呢?

question

rt,`getIdFromSegmentBuffer`中先获取读锁,并发较高的时候多个线程都获得了读锁,都未通过`!buffer.isNextReady() && (segment.getIdle() < 0.9 * segment.getStep()) && buffer.getThreadRunning().compareAndSet(false, true)`的判定,然后走到后面value increment,这时候如果部分线程算下来超过了max,继续走后面的nextReady判定,这时候号段预加载线程根本没提交预加载任务,岂不是就要报`Both two segments in {} are not ready!`了。 我认为应该在`if (buffer.isNextReady()) {`未满足的时候手动触发一下另一块segment的加载动作以免报错达到高可用。

```java private void waitAndSleep(SegmentBuffer buffer) { int roll = 0; while (buffer.getThreadRunning().get()) { roll += 1; if(roll > 10000) { try { TimeUnit.MILLISECONDS.sleep(10); break; } catch (InterruptedException e) { logger.warn("Thread...

https://github.com/githubofrico/DataStructure/blob/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/queue/LinkedQueue.java#L95

https://github.com/githubofrico/DataStructure/blob/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/list/LinkedList.java#L51