-
错误日志:ERROR 13160 --- [ntloop-thread-0] o.a.s.config.client.ConfigCenterClient : Config update from https://cse.cn-north-1.myhuaweicloud.com failed. Error message is [Search domain query failed. Original hostname: 'cse.cn-north-1.myhuaweicloud.com' failed to resolve 'cse.cn-north-1.myhuaweicloud.com' after 2 queries ].
-
都什么年代了,JAVA项目整体趋势是Gradle,到现在为止官网还没有给开发者提供一个SpringBoot Gradle集成CSE的指导,最近立项新项目,技术选型用的gradle作为编译,集成CSE真心蛋疼,各种报错,耗时耗功,跪求一个个SpringBoot Gradle集成CSE的指导
-
分场景。如果是tomcat场景,可以参考tomcat配置。如果是vert.x的HTTP服务器,下面几个参数可以参考:servicecomb.uploads.maxSize : 设置body的限制大小。servicecomb.rest.server.maxHeaderSize: 设置请求header大小限制。servicecomb.rest.server.maxInitialLineLength: 设置HTTP请求的第一行长度限制。(即URL)
-
对于一些异常协议报文测试, CSE SDK 会打印大量的netty异常日志,比如:----TCP握手失败2018-09-03 14:13:31,843 [WARN ] [transport-vert.x-eventloop-thread-27][io.netty.util.internal.logging.Slf4JLogger.warn(Slf4JLogger.java:151)] An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.java.io.IOException: Connection reset by peerat sun.nio.ch.FileDispatcherImpl.read0(Native Method)at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)at sun.nio.ch.IOUtil.read(IOUtil.java:192)at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)at io.netty.buffer.PooledUnsafeDirectByteBuf.setBytes(PooledUnsafeDirectByteBuf.java:288)at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1108)at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:345)at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645)at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)at java.lang.Thread.run(Thread.java:748)----SSL握手失败[2018-09-20 20:13:33,209/CST][transport-vert.x-eventloop-thread-4][WARN]An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception. io.netty.util.internal.logging.Slf4JLogger.warn(Slf4JLogger.java:151)io.netty.handler.codec.DecoderException: io.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record: 474554202f20485454502f312e310d0a486f73743a203139322e3136382e302e3230343a383038320d0a436f6e6e656374696f6e3a206b6565702d616c6976650d0a43616368652d436f6e74726f6c3a206d61782d6167653d300d0a557067726164652d496e7365637572652d52657175657374733a20310d0a557365722d4167656e743a204d6f7a696c6c612f352e30202857696e646f7773204e542031302e303b20574f57363429204170706c65576at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:459)at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)at io.netty.channel.AbstractChannelHandlerC可以通过:log4j.logger.io.netty.channel.DefaultChannelPipeline=ERROR,paas,stdout来关闭。 注意修改下后面的pass, stdout为自己的logger。关闭后,对于底层协议(TCP、SSL)可能没有任何错误信息。 会给定位带来麻烦。需要注意下。 新版本会做适当的优化,即即使给这个日志关闭,也打印少量的信息。
-
参数校验错误一个是在反序列化的时候失败,一个是参数校验的时候失败;异常类型分API定义的异常、控制异常和未知异常。 1、 序列化/反序列化的异常处理-- Jackson Mapper反序列化异常400, throw new InvocationExectpion(400, message)2、 数据类型不匹配时的异常处理-- Jackson Mapper反序列化异常400, throw new InvocationExectpion(400, message)3、 异常情况下参数默认值的处理-- 异常情况下是没有参数默认值的。 对于没有传递参数的情况,是有参数值的,参数值规则参考讨论:https://lists.apache.org/thread.html/34567b14215779d8dc4a1d358b48680dc5c0d8feda2bb096ffe026bf@%3Cdev.servicecomb.apache.org%3E 规格在单独截取出来了。 4、 可选参数/必选参数的异常处理区别-- JAX-RS模式下,参数缺省全部是可选,没有必选定义。可以通过JSR Validation API的标签定义校验,比如@NotNull等标签,返回400错误码。5、 各种数据类型的边界值异常处理(字符长度/整数范围/数组类型长度)-- 这个其实只有两类:JSR Validation API返回的异常400 和 Jackson Mapper反序列化异常4006、 URL匹配原则及异常处理-- 具体算法比较复杂,主要涉及的错误码包括400,405等。遵循JAX RS规范: http://download.oracle.com/javaee-archive/jax-rs-spec.java.net/jsr339-experts/att-3593/spec.pdf (3.7 Matching Requests to Resource Methods)7、 消息头解析/编码/传递逻辑-- https://docs.servicecomb.io/java-chassis/zh_CN/general-development/context.html-- https://bbs.huaweicloud.com/blogs/67ef53c6ab7011e89fc57ca23e93a89f8、 各异常场景下的错误码映射、异常信息返回定义-- 参考异常分类和处理机制:https://docs.servicecomb.io/java-chassis/zh_CN/general-development/error-handling.html 现在大家觉得比较难理解的一些缺省参数问题,是由于对A -> B -> C这种方式,如果某个微服务序列化、反序列化参数设置不一致,存在的一些细节差异,现在CSE很难调整edge、微服务等实现方式,适配这种缺省值差异要求。这里有实践建议:https://bbs.huaweicloud.com/blogs/67ef53c6ab7011e89fc57ca23e93a89f 。 基本要求是建议将可能的缺省情况(没传、空、NULL等情况当成一致的语义)。 缺省值处理规则:My suggestions are as follows1. Encourage providers to specify required & defalutValue explicitly. a. when required=true and defaultValue is given, if consumers do not give a value, use default value;b. when required=true and defaultValue is not given, if consumers do not give a value, throw a BadParam exception.c. when required=false and defaultValue is given, if consumers do not give a value, use default value; d. when required=false and defaultValue is not given, give default values to parameter according to java conventions. e.g. integer is 0 and object is null.e. when generating swagger, generate defalutValue only when explicitly specified. 2. As I know from PR[2], JAX-RS do not have annotations to specify required, required is always false. This is different from Spring MVC, which required defaults to true.a. JAX-RS defaults: required=false and defalutValue not specifiedb. Spring MVC default: required=true adefalutValue not specifiednd
-
在使用服务中心做服务发现的情况下,都会存在这样的问题,一个实例异常终止,服务中心无法感知服务已经下线,直到心跳超时。服务中心更新实例信息后,调用端也无法及时感知实例变更,需要结合服务中心的push机制,或者主动的pull机制。这样也需要一定的时间。那么如何保证这种情况下,调用不失败了?这就涉及到微服务管控的核心能力:隔离和重试。 详细加固建议开发者可以参考:https://bbs.huaweicloud.com/blogs/72a312f09c8911e89fc57ca23e93a89f
-
本次活动已结束,恭喜以下小伙伴获奖 请获奖的小伙伴在尽快将你的收件信息(地址,电话,联系人)通过私信发给“花花”,谢谢~~ 1、幸运参与奖,获奖名单第一层楼:飞行员(华为云账号:w862118426)开奖总楼层为144层:中奖楼层=144*20%≈29#,第29楼是版主花花的回帖,顺延至下一层有效楼层:33楼【妙手仁心(华为云账号:cairixian)】中奖楼层=144*40%≈58#【lma(华为云账号:ldl543336839)】中奖楼层=144*60%≈86#【jason635(华为云账号:jason635)】中奖楼层=144*80%≈115#【建赟(华为云账号:qvhaokeji)】最后一层楼:靓到木有票(华为云账号:bird2000) 2、使用心得奖,获奖名单:一等奖1名:yw80(华为云账号:easyx)二等奖3名:真爱无敌(华为云账号:huyulei)daleilei(华为云账号:daleilei)小修(华为云账号:xiaoxiu)三等奖5名:ecstatic(华为云账号:ecstatic)andyleung(华为云账号:andyleung)xiuyuan(华为云账号:xiuyuan)稻草人(华为云账号:lgwangd)四年三班扛把子(华为云账号:jwkjdj) 活动时间:2018年8月27日-9月14日 活动参与方式:进入微服务引擎CSE服务控制台,登录/注册——>进入到CSE控制台——>截图——>回帖。 具体操作流程请查看帖子下方内容。 回帖格式:“产品使用心得+华为云用户名+截图” 开奖规则:1、幸运参与奖:华为自拍杆。只要按照回帖格式 “产品使用心得(内容不限)+华为云用户名+截图”的用户,就可以参与抽奖。 中奖楼层=活动结束后的总楼层数*中奖比例,中奖比例为20%、40%、60%、80%、第一层、最后一层,遇到小数点将四舍五入取整。 2、使用心得奖:在使用过程中,输出对产品使用或者功能有价值的想法和见解,评选出: 一等奖1名:奖品华为移动电源(10000mAh快充版) 二等奖3名:奖品华为畅玩手环; 三等奖5名:奖品华为小天鹅蓝牙音箱。 具体操作流程如下:1、进入微服务引擎CSE服务控制台(https://console.huaweicloud.com/cse/?region=cn-north-1#/cse/home?shequ ),此时,如果有华为云账号,请直接登录,如果没有请注册再登录。 2、登录进入到CSE控制台,便可完成任务,直接截图,必须要包含华为云用户名,如下图右上角。 3、最后进行回帖,回帖格式必须为“产品使用心得+华为云用户名(不能是子用户名)+截图”。【产品使用心得】:可以体验一下CSE体验馆>>,吐槽你的心声。或者对CSE的SDK>>有优化建议。 温馨提示:1、我们在9月17日公示获奖者名单,同时会在3个工作日内联系获奖者,在公示后7个工作日内统一发放奖品。2、获奖楼层需包含产品使用心得+华为云用户名+截图,否则视为无效楼层,顺延至下一层。有效楼层需大于50楼才开奖。3、每个ID只能中奖一次,如果重复中奖,顺延至下一楼层。4、请遵守华为云社区常规活动规则。
-
ServiceStage和CSE有何不同?
-
1、升级背景CSE新版本(2.3.17)对微服务的故障隔离策略等进行了修改,为了验证微服务可靠性和服务治理相关的参数,将异步原型验证的微服务版本(java-chassis SDK)从2.3.8升级到了2.3.35之后,业务调用失败,日志里面频繁打印:Load balancer does not have available server for client: default,但是通过服务中心查询,以及日志中查看find instance关键字,都有一个实例。 业务采用Tomcat + SpringMVC + CSE SDK的方式开发,消息接入使用SpringMVC原生的DispatcherServlet, 然后通过CSE SDK调用后端的微服务。2、故障定位对报错日志分析,发现跟Transport相关,日志如下: not deployed transport rest, ignore rest: rest://localhost:9090 这种情况通常意味着系统REST transport没加载。但是检查了相关依赖,REST模块和tomcat的Servlet都是正确依赖的。 对部署的业务war包进行分析,发现包含多个不同版本的transport,而且版本跨度较大: 定位发现原来在版本升级时只改了CSE的版本号,打包时没有clean,导致老版本的CSE类库也被打进了安装包:增加clean参数重新打包,业务启动成功。3、总结1. 业务升级的时候,尽可能使用mvn clean install来构建新本版本。 多个jar包并存的情况,会产生很多莫名其妙的问题,可能浪费大量的定位时间。2. Tomcat集成新版本做了大量优化,并且增加了不同场景下的集成方式。CSE在Tomcat场景下的各种集成原理参考:https://docs.servicecomb.io/java-chassis/zh_CN/build-provider/protocol/rest-over-servlet.html
-
------------------2018-08-23 09:03:16,990 [ERROR] invoke failed, invocation=PRODUCER rest collector.collector.helloworld org.apache.servicecomb.swagger.invocation.exception.DefaultExceptionToResponseConverter.convert(DefaultExceptionToResponseConverter.java:35)java.lang.NullPointerExceptionat com.huawei.cse.porter.controller.CollectorImpl.helloworld(CollectorImpl.java:49)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.servicecomb.swagger.engine.SwaggerProducerOperation.doInvoke(SwaggerProducerOperation.java:148)at org.apache.servicecomb.swagger.engine.SwaggerProducerOperation.syncInvoke(SwaggerProducerOperation.java:139)at org.apache.servicecomb.swagger.engine.SwaggerProducerOperation.invoke(SwaggerProducerOperation.java:109)at org.apache.servicecomb.core.handler.impl.ProducerOperationHandler.handle(ProducerOperationHandler.java:40)at org.apache.servicecomb.core.Invocation.next(Invocation.java:148)at org.apache.servicecomb.bizkeeper.BizkeeperCommand.lambda$construct$2(BizkeeperCommand.java:79)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.Observable.unsafeSubscribe(Observable.java:8666)at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:52)at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:36)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.Observable.unsafeSubscribe(Observable.java:8666)at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:52)at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:36)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.Observable.unsafeSubscribe(Observable.java:8666)at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:52)at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:36)at rx.Observable.subscribe(Observable.java:8759)at rx.Observable.subscribe(Observable.java:8726)at rx.Observable.subscribe(Observable.java:8619)at org.apache.servicecomb.bizkeeper.BizkeeperHandler.handle(BizkeeperHandler.java:77)at org.apache.servicecomb.core.Invocation.next(Invocation.java:148)at com.huawei.paas.cse.tcc.handler.ProviderTccTransactionHandler.handle(ProviderTccTransactionHandler.java:59)at org.apache.servicecomb.core.Invocation.next(Invocation.java:148)at org.apache.servicecomb.qps.ProviderQpsFlowControlHandler.handle(ProviderQpsFlowControlHandler.java:50)at org.apache.servicecomb.core.Invocation.next(Invocation.java:148)at com.huawei.paas.cse.handler.stats.PerfStatsHandler.handle(PerfStatsHandler.java:60)at org.apache.servicecomb.core.Invocation.next(Invocation.java:148)at org.apache.servicecomb.core.handler.ShutdownHookHandler.handle(ShutdownHookHandler.java:68)at org.apache.servicecomb.core.Invocation.next(Invocation.java:148)at org.apache.servicecomb.common.rest.AbstractRestInvocation.doInvoke(AbstractRestInvocation.java:189)at org.apache.servicecomb.common.rest.AbstractRestInvocation.invoke(AbstractRestInvocation.java:165)at org.apache.servicecomb.common.rest.AbstractRestInvocation.runOnExecutor(AbstractRestInvocation.java:150)at org.apache.servicecomb.common.rest.AbstractRestInvocation.lambda$scheduleInvocation$0(AbstractRestInvocation.java:133)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)2018-08-23 09:03:16,995 [WARN] bizkeeper command failed due to:InvocationException: code=590;msg=CommonExceptionData [message=Cse Internal Server Error] org.apache.servicecomb.bizkeeper.BizkeeperCommand.lambda$null$1(BizkeeperCommand.java:82)2018-08-23 09:03:16,996 [WARN] bizkeeper execution error org.apache.servicecomb.bizkeeper.BizkeeperHandler$1.onExecutionError(BizkeeperHandler.java:54)InvocationException: code=590;msg=CommonExceptionData [message=Cse Internal Server Error]at org.apache.servicecomb.swagger.invocation.exception.ExceptionFactory.d**ate(ExceptionFactory.java:79)at org.apache.servicecomb.swagger.invocation.exception.ExceptionFactory.convertException(ExceptionFactory.java:124)at org.apache.servicecomb.swagger.invocation.exception.ExceptionFactory.convertProducerException(ExceptionFactory.java:97)at org.apache.servicecomb.swagger.invocation.Response.createProducerFail(Response.java:134)at org.apache.servicecomb.swagger.invocation.Response.producerFailResp(Response.java:145)at org.apache.servicecomb.swagger.invocation.exception.DefaultExceptionToResponseConverter.convert(DefaultExceptionToResponseConverter.java:36)at org.apache.servicecomb.swagger.invocation.exception.ExceptionToResponseConverters.convertExceptionToResponse(ExceptionToResponseConverters.java:47)at org.apache.servicecomb.swagger.invocation.exception.ExceptionFactory.convertExceptionToResponse(ExceptionFactory.java:128)at org.apache.servicecomb.swagger.engine.SwaggerProducerOperation.proces**ception(SwaggerProducerOperation.java:161)at org.apache.servicecomb.swagger.engine.SwaggerProducerOperation.doInvoke(SwaggerProducerOperation.java:151)at org.apache.servicecomb.swagger.engine.SwaggerProducerOperation.syncInvoke(SwaggerProducerOperation.java:139)at org.apache.servicecomb.swagger.engine.SwaggerProducerOperation.invoke(SwaggerProducerOperation.java:109)at org.apache.servicecomb.core.handler.impl.ProducerOperationHandler.handle(ProducerOperationHandler.java:40)at org.apache.servicecomb.core.Invocation.next(Invocation.java:148)at org.apache.servicecomb.bizkeeper.BizkeeperCommand.lambda$construct$2(BizkeeperCommand.java:79)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.Observable.unsafeSubscribe(Observable.java:8666)at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:52)at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:36)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.Observable.unsafeSubscribe(Observable.java:8666)at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:52)at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:36)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)at rx.Observable.unsafeSubscribe(Observable.java:8666)at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:52)at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:36)at rx.Observable.subscribe(Observable.java:8759)at rx.Observable.subscribe(Observable.java:8726)at rx.Observable.subscribe(Observable.java:8619)at org.apache.servicecomb.bizkeeper.BizkeeperHandler.handle(BizkeeperHandler.java:77)at org.apache.servicecomb.core.Invocation.next(Invocation.java:148)at com.huawei.paas.cse.tcc.handler.ProviderTccTransactionHandler.handle(ProviderTccTransactionHandler.java:59)at org.apache.servicecomb.core.Invocation.next(Invocation.java:148)at org.apache.servicecomb.qps.ProviderQpsFlowControlHandler.handle(ProviderQpsFlowControlHandler.java:50)at org.apache.servicecomb.core.Invocation.next(Invocation.java:148)at com.huawei.paas.cse.handler.stats.PerfStatsHandler.handle(PerfStatsHandler.java:60)at org.apache.servicecomb.core.Invocation.next(Invocation.java:148)at org.apache.servicecomb.core.handler.ShutdownHookHandler.handle(ShutdownHookHandler.java:68)at org.apache.servicecomb.core.Invocation.next(Invocation.java:148)at org.apache.servicecomb.common.rest.AbstractRestInvocation.doInvoke(AbstractRestInvocation.java:189)at org.apache.servicecomb.common.rest.AbstractRestInvocation.invoke(AbstractRestInvocation.java:165)at org.apache.servicecomb.common.rest.AbstractRestInvocation.runOnExecutor(AbstractRestInvocation.java:150)at org.apache.servicecomb.common.rest.AbstractRestInvocation.lambda$scheduleInvocation$0(AbstractRestInvocation.java:133)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.NullPointerExceptionat com.huawei.cse.porter.controller.CollectorImpl.helloworld(CollectorImpl.java:49)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.servicecomb.swagger.engine.SwaggerProducerOperation.doInvoke(SwaggerProducerOperation.java:148)... 60 more
-
cse.isolation.maxConcurrentRequests是服务消费者/提供者都会起作用,还是仅服务消费者起作用 ------------------------------------maxConcurrentRequests最大并发数我理解等同Hystrix的隔离仓信号量类似的功能,原来一般对Hystrix隔离仓的理解,认为其主要作用在服务消费者侧,但我们PaaS服务治理这块,很多参数配置时实际是可同时作用到消费者/提供者的,所以我想问下上述cse.isolation.maxConcurrentRequests是消费者/提供者都会起作用,还是仅消费者侧起作用
-
华为云微服务引擎(CSE)首页请到:https://www.huaweicloud.com/product/cse.html华为云微服务引擎(CSE)快速入门:https://support.huaweicloud.com/qs-cse/cse_qs_0001.html了解更多产品信息:https://support.huaweicloud.com/productdesc-cse/cse_productdesc_0001.html
-
微服务引擎(Cloud Service Engine) 提供高性能微服务框架和一站式服务注册、服务治理、动态配置和分布式事务管理控制台,帮助用户实现微服务应用的快速开发和高可用运维;提供Spring Cloud、Service Mesh和ServiceComb商业版。CSE资料汇总类别链接视频CSE灰度发布微服务治理之限流微服务治理之容错微服务治理之熔断微服务治理之降级CSE开发第一个微服务微服务治理之负载均衡入门介绍深入揭秘华为企业级微服务架构的实践之道使用商业版微服务CSE vs 使用开原版微服务Spring Cloud最佳实践快速体验微服务能力基于CSE开发新的微服务基于Mesh接入已有应用容器部署weathermapSpring Cloud应用如何接入CSE5分钟搞定Dubbo应用接入华为云CSE文档中心产品介绍快速入门常见问题用户指南开发指南事务方案华为云微服务引擎CSE事务方案一:TCC机制的数据最终一致性处理华为云微服务引擎CSE事务方案二:2PC机制的数据强一致性处理相关推荐ServiceComb数据一致性解决方案Saga演进介绍让.NET应用秒变微服务打造一个企业级应用的微服务开发框架(上)---从服务注册中心到服务管理中心打造一个企业级应用的微服务开发框架(下)---ServiceComb通信处理详解商用级Service Mesh服务的设计之道使用ServiceComb Go-chassis构建微服务相关活动华为云微服务引擎CSE大量新特性上线,诚邀您免费体验
-
华为云微服务引擎(CSE)首页请到:https://www.huaweicloud.com/product/cse.html华为云微服务引擎(CSE)快速入门:https://support.huaweicloud.com/qs-cse/cse_qs_0001.html了解更多产品信息:https://support.huaweicloud.com/productdesc-cse/cse_productdesc_0001.html
上滑加载中
推荐直播
-
全面解析华为云EI-API服务:理论基础与实践应用指南
2024/11/29 周五 18:20-20:20
Alex 华为云学堂技术讲师
本期直播给大家带来的是理论与实践结合的华为云EI-API的服务介绍。从“主要功能,应用场景,实践案例,调用流程”四个维度来深入解析“语音交互API,文字识别API,自然语言处理API,图像识别API及图像搜索API”五大场景下API服务,同时结合实验,来加深开发者对API服务理解。
回顾中 -
企业员工、应届毕业生、在读研究生共探项目实践
2024/12/02 周一 19:00-21:00
姚圣伟 在职软件工程师 昇腾社区优秀开发者 华为云云享专家 HCDG天津地区发起人
大神带你一键了解和掌握LeakyReLU自定义算子在ONNX网络中应用和优化技巧,在线分享如何入门,以及在工作中如何结合实际项目进行学习
即将直播 -
昇腾云服务ModelArts深度解析:理论基础与实践应用指南
2024/12/03 周二 14:30-16:30
Alex 华为云学堂技术讲师
如何快速创建和部署模型,管理全周期AI工作流呢?本期直播聚焦华为昇腾云服务ModelArts一站式AI开发平台功能介绍,同时结合基于ModelArts 的实践性实验,帮助开发者从理论到实验更好地理解和使用ModelArts。
去报名
热门标签