일반적으로 개발 문제가 발생 함-지속적인 업데이트

개발 질문 1 : 깨진 파이프

문제 설명:

Caused by: java.io.IOException: Broken pipe
	at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
	at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
	at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
	at sun.nio.ch.IOUtil.write(IOUtil.java:65)
	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
	at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:134)
	at org.apache.tomcat.util.net.NioBlockingSelector.write(NioBlockingSelector.java:101)
	at org.apache.tomcat.util.net.NioSelectorPool.write(NioSelectorPool.java:157)
	at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1225)
	at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:743)
	at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:696)
	at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:686)
	at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:553)
	at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:157)
	at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:216)
	at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1149)
	at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:394)
	at org.apache.coyote.Response.action(Response.java:209)
	at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:294)
Caused by: java.io.IOException: Connection reset by peer
	at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
	at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
	at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
	at sun.nio.ch.IOUtil.write(IOUtil.java:65)
	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
	at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:134)
	at org.apache.tomcat.util.net.NioBlockingSelector.write(NioBlockingSelector.java:101)
	at org.apache.tomcat.util.net.NioSelectorPool.write(NioSelectorPool.java:157)
	at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1225)
	at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:743)
	at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:696)
	at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:686)
	at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:553)
	at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:157)
	at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:216)
	at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1149)

문제 원인 :

이 예외는 클라이언트가 타임 아웃을 읽고 연결을 닫는 것인데, 이때 서버가 클라이언트의 연결이 끊어진 연결에 데이터를 쓸 때 끊어진 파이프 예외가 발생합니다! 문제가 발생하는 상황은 100 개 제품의 일괄 리스팅 작업이고 백엔드 인터페이스가 응답을 완료하기 전에 프런트 엔드 연결이 끊어졌습니다.

해결책:

처리를 위해 멀티 스레딩을 여는 방법을 사용했습니다. 응답 시간이 초과되었으므로 처리를 위해 몇 개의 스레드를 더 엽니 다. 상황에 따라 다릅니다. 스레드를 남용하지 마십시오! ! !

개발 문제 2

문제 설명:

문제 원인 :

해결책:

백엔드 엔지니어는 일상 업무의 일부 이상 및 오류에 대한 요약을 축적해야합니다. 첫째, 요약 한 후 다음 번에 같은 문제가 발생할 때 특히 온라인에 접속할 때 손실이 발생하지 않습니다. , 다른 동료 여러분이 문제 해결을 기다리고있을 때 짹짹 거리는 것은별로 좋지 않습니다. 둘째, 인터뷰 중에 유사한 질문을 자주 받게됩니다. 사회 채용 분야의 숙련 된 엔지니어로서 학교를 고용 할 수 없습니다. 인터뷰는 자신의 기준으로, 자신의 경험 축적이 있어야하며, 언제라도 불확실한 상황에 맞설 준비가되어 있어야합니다!

추천

출처blog.csdn.net/qq_37896194/article/details/115351778