-
Local CSE是华为云微服务提供给广大开发者的本地轻量化微服务引擎,用于本地开发的轻量服务中心、配置中心,并提供简单的界面,开发者可以通过Local CSE零改造快速接入部署微服务,无需付费即可进行微服务开发,是广大开发者的微服务开发利器 如何简单接入Local CSE,零成本学习轻量化微服务引擎?如何多场景巧妙运用Local CSE?看华为云微服务高级工程师为开发者详解 Local CSE的服务注册与配置中心,手把手Local CSE实践教学…2022年开年直播微服务本地轻量化引擎 Local CSE利剑出鞘<直播时间>2月17日 19:00-20:00<直播嘉宾>昱霖 华为云微服务框架高级工程师Echo 华为云微服务产品经理<直播地址>微服务快速开发利器之 Local CSE直播预热活动,多重好礼等你来>>戳我,参与直播预热赢好礼<<好礼一:报名送码豆活动期间,成功报名直播并签到可获得200码豆。(限前500名)好礼二:参与邀请排行榜赢大奖邀请好友报名直播并签到赢荣耀Xsports运动蓝牙耳机/华为智能体脂秤 3 /华为mini蓝牙音箱等好礼注意:①人数相同时,以最先到达的为准;②若排名TOP1未达到最低有效邀请数量,则奖励顺延,例如:张三有效邀请量为799人,排名TOP1,则张三的奖励为华为智能体脂秤 3。邀请好友的具体操作流程如下:步骤一:邀请人成功报名活动后(点击去报名),点击图示中的“分享有礼”按钮 步骤二:通过生成的专属链接/邀请二维码,即可邀请好友报名活动。步骤三:好友报名直播后,点击“进入直播间”,填写签到问卷。有效邀请的定义(邀请的好友):所有被邀请人员需满足以下条件才可算成功邀请,纳入奖励数量:拥有华为云账号;2.回到直播间填写签到问卷。看直播,参与提问互动,奖品抽抽抽!1. 直播提问直播期间在“问答区”向专家提问,专家抽中问题进行答疑,抽中问题即可获得《持续演进的CloudNtive 云原生架构下微服务最佳实践]》书籍1本或华为云定制桌面鼠标垫1个(提问格式:手机号码后四位+问题,例:2333+如何零成本学习轻量化微服务引擎?)2. 直播抽奖直播期间,根据小助手在直播间提示的关键词口令进行抽奖,中奖即可获得《持续演进的CloudNtive 云原生架构下微服务最佳实践]》书籍1本或华为云定制桌面鼠标垫1个 [持续演进的CloudNtive 云原生架构下微服务最佳实践] [华为云定制桌面鼠标垫]更多好礼,更多精彩干货,尽在微服务直播间!2022年2月17日(周四)19:00-20:00我在直播间等你>> 扫码加入直播交流群 <<直播中奖名单公示一、直播预热活动:直播报名签到中奖用户名单如下,奖励已发放到账,请查收核对账号名码豆奖励hid****s200wk5****8200hw7****5200can****n200zhe****u200hw3****9200yiz****l200cai****y200hw4****5200hid****_200kua****y200lon****2200z11****5200hw4****4200hid****7200hw0****7200cao****8200hw1****6200a37****7200xj1****1200cft****7200hw_****1200hen****c200zzz****i200yc-****n200hw7****1200mee****0200fuh****a200nuk****n200hw5****3200qin****6200hw4****1200bru****0200hw1****3200shy****s200温馨提示:获奖用户将在2月24日16点前公布至本活动帖,请获奖用户在2022年3月3日15点前联系小助手(微信号:servicestage02)完善邮寄地址,过期未联系者视为自动放弃获奖奖品。活动奖品颜色随机,不接受指定,实物礼品将在活动结束后15个工作日内发货,码豆礼品将在活动结束后5个工作日内发放。本次活动一个实名认证账号只能对应一个获奖人,如同一账号填写多个不同获奖人,不予发放奖励;活动参与需遵守《华为社区常规活动规则》;华为云微服务拥有活动最终解释权。 华为云码豆怎么用?会员中心入口:https://devcloud.huaweicloud.com/bonususer/home码豆奖励活动规则:1)码豆可在码豆会员中心兑换实物礼品;2)码豆奖励将于活动结束后的3个工作日内充值到账,请到会员中心的“查看明细”中查看到账情况;3)码豆只能用于会员中心的礼品兑换,不得转让,具体规则请到会员中心阅读“码豆规则”;4)为保证码豆成功发放,如果修改过账号名还请向工作人员提供修改前后的账号名。
-
急急急,求助!!!!! java实习生第一次接触Service combService comb,自己在本服务写代码,自测通过。结果到项目测试,其他服务调用出错,比较着急,网上没有解决办法,公司说是:因为发的xml报文 应该是框架 把这个报文转义了,你在这里想办法 把报文转义的去掉 就可以了,直接通过Http调用就不会有这个问题的,主要是用了CSE。1、这是调用过程2:debug发送的string类型的xml报文3.接受方 接受的是String类型的xml报文,就在这产生错误,多了""。4:从这里看,明显接受方的xml报文解析的不正确,多了首尾""。不知道有没有大佬了解这的原因,跪求讲解。
-
[ERROR][org.apache.servicecomb.serviceregistry.client.http.RestUtils] POST /v4/default/registry/microservices fail, endpoint is xxx, message: The timeout period of 30000ms has been exceeded while executing POST /v4/default/registry/microservices for host 部署微应用报这个错,有人知道什么原因不?servicecomb版本是1.3.0的
-
创建简单的一次性定时任务var request = {"task_key": {"name": "aa3",// 任务名称"group": "Timer_Regist"// 任务分组},"task_invocation": {"type": "ServiceTask",// 任务类型:1、ServiceTask==CSE任务;2、LegacyServiceTask==ADC1.0四段式任务"rest_url": "/adc-service/rest/v1/services/test_timer/timer/timer_demo",// 服务调用地址"http_method": "POST",// 服务调用方法,默认为POST"parameters": {}// 服务调用参数},"description": "schedule-cron-task",// 任务描述"force_replace": true,// 是否覆盖同名任务,默认是false"task_label": "ssss3",// 任务标签"delay_seconds": 600000,// 间隔周期"time_zone_id": "UTC",// 使用的时区,默认为UTC"start_time": 0// 任务开始时间,0表示马上开始};var response = ServiceInvoker.post("/adc-schedule-job/rest/v1/timertask/action/schedule-once-task", request);return response;创建简单的重复定时任务var request = {"task_key": {"name": "aa1",// 任务名称"group": "Timer_Regist"// 任务分组},"task_invocation": {"type": "ServiceTask",// 任务类型:1、ServiceTask==CSE任务;2、LegacyServiceTask==ADC1.0四段式任务"rest_url": "/adc-service/rest/v1/services/test_timer/timer/timer_demo",// 服务调用地址"http_method": "POST",// 服务调用方法,默认为POST"parameters": {}// 服务调用参数},"description": "schedule-cron-task",// 任务描述"force_replace": true,// 是否覆盖同名任务,默认是false"task_label": "ssss1",// 任务标签"interval_seconds": 600000,// 间隔周期"repeat_count": 3,// 重复次数"time_zone_id": "UTC",// 使用的时区,默认为UTC"start_time": 0,// 任务开始时间,0表示马上开始"end_time": 0// 任务结束时间,0表示不设置};var response = ServiceInvoker.post("/adc-schedule-job/rest/v1/timertask/action/schedule-repeat-task", request);return response;创建Cron任务var request = {"task_key": {"name": "aa2",// 任务名称"group": "Timer_Regist"// 任务分组},"task_invocation": {"type": "ServiceTask",// 任务类型:1、ServiceTask==CSE任务;2、LegacyServiceTask==ADC1.0四段式任务"rest_url": "/adc-service/rest/v1/services/test_timer/timer/timer_demo",// 服务调用地址"http_method": "POST",// 服务调用方法,默认为POST"parameters": {}// 服务调用参数},"description": "schedule-cron-task",// 任务描述"force_replace": true,// 是否覆盖同名任务,默认是false"cron_expression": "0 0 0 * * ? *",// Cron表达式"time_zone_id": "UTC",// 使用的时区,默认为UTC"start_time": 0,// 任务开始时间,0表示马上开始"end_time": 0// 任务结束时间,0表示不设置};var response = ServiceInvoker.post("/adc-schedule-job/rest/v1/timertask/action/schedule-cron-task", request);return response;删除任务var request = {"name": "aa3",// 任务名称"group": "Timer_Regist"// 任务分组};var response = ServiceInvoker.post("/adc-schedule-job/rest/v1/timertask/action/delete-task", request);return response;批量删除任务var request = {"task_keys": [{"name": "aa2",// 任务名称"group": "Timer_Regist"// 任务分组}]};var response = ServiceInvoker.post("/adc-schedule-job/rest/v1/timertask/action/delete-tasks", request);return response;检查任务是否存在var request = {name: "test_timer",// 任务名称group: "timer"// 任务分组}var response = ServiceInvoker.post("/adc-schedule-job/rest/v1/timertask/action/check-exists", request);return response;暂停任务var request = {name: "test_timer",// 任务名称group: "timer"// 任务分组}var response = ServiceInvoker.post("/adc-schedule-job/rest/v1/timertask/action/pause-task", request);return response;继续任务var request = {name: "test_timer",// 任务名称group: "timer"// 任务分组}var response = ServiceInvoker.post("/adc-schedule-job/rest/v1/timertask/action/resume-task", request);return response;立即触发任务var request = {name: "test_timer",// 任务名称group: "timer"// 任务分组}var response = ServiceInvoker.post("/adc-schedule-job/rest/v1/timertask/action/execute-task", request);return response;查询单个任务详情var request = {name: "test_timer",// 任务名称group: "timer"// 任务分组}var response = ServiceInvoker.post("/adc-schedule-job/rest/v1/timertask/action/find-task-detail", request);
-
-
各位大佬,华为云(私有云)部署java springcloud微服务,使用CSE专业版。过几天实例就没了,使用的是docker部署的。大家有遇到过吗?<dependency> <groupId>org.apache.servicecomb</groupId> <artifactId>service-center-client</artifactId> <version>2.0.1</version> </dependency>使用的是这个包开发的,启动方式是附件图片
-
Dubbo和CSE底层都使用了Spring的依赖注入和bean管理系统,所以使用Dubbo的服务迁移到华为云微服务引擎CSE的工作量较小, 主要改动在依赖和配置方面。本示例的完整代码已放在GitHub上,其中目录dubbo-demo是原始的Dubbo DEMO,目录dubbo-demo-servicecomb是改造后的可直接运行于华为云CSE的DEMO。1、管理依赖:/dubbo-demo/pom.xml在主项目pom里的dependencyManagement中增加如下配置来管理CSE包依赖,子项目就不需要指定CSE版本号。 <dependencyManagement> <dependencies> <dependency> <groupId>com.huawei.paas.cse</groupId> <artifactId>cse-dependency</artifactId> <version>2.3.9</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>注意,maven的settings需添加cse的mirror才能正常下载到cse的相关依赖包: <mirror> <id>nexus-cse</id> <mirrorOf>*</mirrorOf> <name>cse nexus</name> <url>http://maven.huaweicse.com/nexus/content/groups/public</url> </mirror>2、服务提供方:dubbo-demo-provider2.1、替换依赖:/dubbo-demo-provider/pom.xml将对Dubbo的依赖替换为对CSE的依赖pom.xmlDubbo <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.7</version> </dependency>CSE <dependency> <groupId>com.huawei.paas.cse</groupId> <artifactId>cse-solution-service-engine</artifactId> </dependency>2.2、通过添加标签的方式发布服务接口:DemoServiceImplDubbopublic class DemoServiceImpl implements DemoService { ......}CSE@RpcSchema(schemaId = "providerSchema")public class DemoServiceImpl implements DemoService { ......}2.3、修改配置:/dubbo-demo-provider/src/main/resources删除:/dubbo-demo-provider/src/main/resources/META-INF/spring/dubbo-demo-provider.xml新增:/dubbo-demo-provider/src/main/resources/META-INF/spring/demo.bean.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" xmlns:cse="http://www.huawei.com/schema/paas/cse/pojo" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans classpath:org/springframework/beans/factory/xml/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="com.alibaba.dubbo.demo" /></beans>新增:/dubbo-demo-provider/src/main/resources/microservice.yamlAPPLICATION_ID: dubbo_servicecombservice_description: name: provider version: 0.0.1cse: service: registry: address: https://cse.cn-north-1.myhuaweicloud.com:443 rest: address: 0.0.0.0:8082 credentials: accessKey: 替换为华为云IAM账号AK(如何获取AK/SK) secretKey: 替换为华为云IAM账号SK akskCustomCipher: default project: cn-north-12.4、修改提供方启动入口Dubbopublic class Provider { public static void main(String[] args) throws Exception { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/dubbo-demo-provider.xml"}); context.start(); System.in.read(); // 按任意键退出 }}CSEpublic class Provider { public static void main(String[] args) throws Exception { Log4jUtils.init(); BeanUtils.init(); }}3、服务消费方:dubbo-demo-consumer3.1、替换依赖:/dubbo-demo-consumer/pom.xml将对Dubbo的依赖替换为对CSE的依赖Dubbo <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.7</version> </dependency>CSE <dependency> <groupId>com.huawei.paas.cse</groupId> <artifactId>cse-solution-service-engine</artifactId> </dependency>3.2、修改消费方启动入口Dubbopublic class Consumer { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/dubbo-demo-consumer.xml"}); context.start(); DemoService demoService = (DemoService) context.getBean("demoService"); String hello = demoService.sayHello("world"); System.out.println(hello); }}CSEimport org.springframework.stereotype.Component;@Componentpublic class Consumer { @RpcReference(microserviceName="provider", schemaId="providerSchema") private static DemoService demoService; public static void main(String[] args) throws Exception { Log4jUtils.init(); BeanUtils.init(); String hello = demoService.sayHello("world"); System.out.println(hello); }}3.3、修改配置:/dubbo-demo-comsumer/src/main/resources删除:/dubbo-demo-consumer/src/main/resources/META-INF/spring/dubbo-demo-consumer.xml新增:/dubbo-demo-consumer/src/main/resources/META-INF/spring/demo.bean.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" xmlns:cse="http://www.huawei.com/schema/paas/cse/pojo" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans classpath:org/springframework/beans/factory/xml/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="com.alibaba.dubbo.demo" /></beans>新增:/dubbo-demo-consumer/src/main/resources/microservice.yamlAPPLICATION_ID: dubbo_servicecombservice_description: name: consumer version: 0.0.1cse: service: registry: address: https://cse.cn-north-1.myhuaweicloud.com:443 rest: address: 0.0.0.0:8084 credentials: accessKey: 替换为华为云IAM账号AK(如何获取AK/SK) secretKey: 替换为华为云IAM账号SK akskCustomCipher: default project: cn-north-14、验证:先启动Provider,再启动Consumer4.1、进入华为云微服务引擎CSE控制台:微服务管理>服务治理>dubbo_servicecomb,看到如下服务调用关系:4.2、进入Consumer的输出控制台,能看到输出:Hello world————————————————文章来源: blog.csdn.net,作者:looook原文链接:https://blog.csdn.net/looook/article/details/80312804
-
如果你的组织想要采用微服务,那么就需要了解领域驱动设计,事件驱动架构,核心域,子域,有界上下文,反腐层等等,以正确地拆分你的业务逻辑(Business Space)并将其与微服务体系结构(Code Space)映射,这样你就可以获得微服务的好处。我将在本文中对它们进行总结,并为你在组织中拆分微服务时提供一些指导。微服务拆分的10条规范1.使用有界上下文:使用有界上下文,我们分离数据模型,抽象业务中的共性。每个有界上下文都有自己的业务逻辑。在进行微服务拆分之前,首先要做的是缩小产品经理与开发人员之间的距离,产品经理可能不了解技术术语,技术团队可能不了解技术术语在业务方面的重要性。他们就像一个葡萄牙语人士与一位英语人士交谈:没有人理解彼此的信息。因此,为了弥补差距,我们需要采取以下步骤:开发人员与产品经理需要讨论:“业务目标是什么?”。“特定功能中的主要角色是什么?” “他们在定义功能时使用了哪些术语?” 在每个步骤上,都要提出更多问题,直到双方达成一致。每个上下文中每个域名实体名称都要是清晰的。为每种上下文定义一种通用语言,以便业务团队和技术团队在交流时可以使用一种通用语言进行交流。从一个粗粒度的有界上下文开始。2.确定核心域并保持竞争优势:核心域是为你的业务带来收益的领域。对于在线购物而言,购物车模块是核心领域,它为从企业到消费者(B2C)提供了平台。了解你的核心模块,并思考如何改进竞争对手没有的功能。任何自动化或创新都会提高优势并增加你的收入,因此请注意,要在核心领域进行研发和投资,以保持竞争优势。3.对通用域进行成本优化:通用域就是该领域中每个企业所共有的领域,并且不同的第三方厂商已经提供了解决方案。像你的信息通知模块或广告活动模块,建议不要花钱来重新发明轮子,最好以便宜的价格采用第三方解决方案。4.考虑支持领域:核心域需要支持域的帮助来丰富自身功能,甚至在某些情况下,支持域也可以带来收益,并且将来有可能成为核心域。例如,在购物车域中,库存管理是支持领域,但投资研发-识别客户订单最近库存位置的算法,对降低运输成本也很重要。5.引入反腐层:反腐层(Anti-corruption layer,简称 ACL)介于新应用和旧应用之间,用于确保新应用的设计不受老应用的限制。是一种在不同应用间转换的机制。创建一个反腐层,以根据客户端自己的域模型为客户提供功能。该层通过其现有接口与另一个系统进行通信,几乎不需要对其进行任何修改。因此,反腐层隔离不仅是为了保护你的系统免受异常代码的侵害,还在于分离不同的域并确保它们在将来保持分离。反腐层是将一个域映射到另一个域,这样使用第二个域的服务就不必被第一个域的概念“破坏”。实际上,我们经常遇到基于大型机或任何其他语言构建的旧系统,但无法拆分该系统,并且还需要使用旧应用的数据。因此,在旧应用和微服务通信之间创建反腐层是一个好主意。还要考虑通用领域,因为他们是不受开发团队控制的任何外部系统(第三方系统),因此也需要引入一个反腐层,该层将微服务与外部AP隔离开来,充当微服务和第三方之间的翻译者。它还可以帮助你将来采用任何第三方库。6.识别数据通信模式:一旦基于功能拆分了微服务,并且每个核心服务封装了它们自己的数据库,接下来就要考虑不同微服务间是如何通信的?是同步的?还是异步的?例如,对于一些系统,用户可以执行部分功能并创建中间状态,另一个系统对中间状态采取措施并回调或通知用户。7.引入事件驱动架构(EDA):在实际的应用程序中,你的业务案例具有复杂的工作流,并且根据数据的状态在工作流上具有许多分支。如果你考虑通过Rest API公开所有内容,则会看到它创建了一个复杂的通信网络。因此,我们需要一个干净的架构,其中每个微服务都可以独立运行而不会产生耦合,这里事件驱动的架构起着至关重要的作用,每个事件都包裹着状态的变化,并且微服务遵循发布订阅(pub/sub) 模型,因此一个微服务会发布以事件的形式包装的数据,其他微服务会侦听该事件。由于事件是不可变的,因此它也保存实体或聚合器的历史记录。8.使API简洁明了:在微服务中,在发布API时,请确保你的API不发布内部状态。发布API是一种使其他服务可以获取足够的信息以继续其流程的方式,因此要虑封装和网络调用,不应多次返回以获取派生信息。还要考虑事件,应该发布哪些事件以及哪些事件必须保留在内部。也许你可以发布一个粗粒度事件,而不是发布一个个内部的小事件。例如,你有地址更改事件和个人信息更改事件。最好是发布一个名为CustomerUpdateEvent的粗粒度事件,而不是提供两个独立的事件。9.将相关的微服务合并为更大的服务:拆分之后,当需要添加或更新功能时,你会遇到一些微服务总是一起变化的情况。这时候,你应该知道你已经以错误的方式拆分了它。它们一定不能被隔离到一个小型服务中,它们是同一逻辑单元的一部分。因此,将它们合并为一个服务是明智的,将减少不必要的网络通信。10. 引入无缝开发支持工具:微服务不是免费的午餐。如果你采用微服务,那么首先要做好准备,因为微服务是分布式的,因此要投资一些软件工具,以此来扩展弹性和提高可用性,并缩短产品投产时间,帮助尽早发现故障等。因此,请花钱在CI / CD流水线上,采用云基础架构,使用跟踪工具,使用日志聚合器来搜索日志,使用混沌工程测试你的系统,等等。结论拆分微服务时,以上几点是必要的。我将针对每个主题写一篇文章,介绍它们如何在采用微服务体系结构中发挥关键作用。另外,我想听听你在拆分微服务时所面临的挑战。译文链接: https://dzone.com/articles/10-commandments-on-microservice-decomposition转载https://www.kubernetes.org.cn/8994.html
-
Thread[transport-vert.x-eventloop-thread-2,5,main] has been blocked for 368339 ms, time limit is 2000客户并没有jar的依赖包,排除了edge-core模块导致该问题,麻烦大佬给看下该问题
-
[ERROR][MapServiceRegistryClient.java-212][Service Center Task [java.util.concurrent.ThreadPoolExecutor$Worker@553f3655[State = -1, empty queue][85]]][]-register schema cn_dev_default#CDPSolutionService#MICROSERVICE#CDPDatasetService#alliance_cdp_cluster_dev#1.0.0.102/DataflowController fail.com.huawei.nuwa.map.support.servicecomb.client.MapServiceRegistryClientustomStackTrace com.huawei.nuwa.map.api.exception.InvalidParamException: {"code":400,"error":"schemaId is not belong to the service"} at com.huawei.nuwa.map.client.RestApiClient.translateException(RestApiClient.java:160) ~[nuwa-cloudmap-core-1.0.1.105.jar!/:?] at com.huawei.nuwa.map.client.RestApiClient.restApi(RestApiClient.java:76) ~[nuwa-cloudmap-core-1.0.1.105.jar!/:?] at com.huawei.nuwa.map.client.NuwaMapClient.restApi(NuwaMapClient.java:467) ~[nuwa-cloudmap-core-1.0.1.105.jar!/:?] at com.huawei.nuwa.map.client.NuwaMapClient.registerMicroServiceSchema(NuwaMapClient.java:407) ~[nuwa-cloudmap-core-1.0.1.105.jar!/:?] at com.huawei.nuwa.map.client.MicroServiceClient.registerMicroServiceSchema(MicroServiceClient.java:133) ~[nuwa-cloudmap-core-1.0.1.105.jar!/:?] at com.huawei.nuwa.map.support.servicecomb.client.MapServiceRegistryClient.registerSchema(MapServiceRegistryClient.java:208) [nuwa-cloudmap-registry-servicecomb-1.0.1.105.jar!/:?] at com.huawei.nuwa.map.support.servicecomb.client.DelegatedServiceRegistryClient.registerSchema(DelegatedServiceRegistryClient.java:202) [nuwa-cloudmap-registry-servicecomb-1.0.1.105.jar!/:?] at org.apache.servicecomb.serviceregistry.task.MicroserviceRegisterTask.registerSingleSchema(MicroserviceRegisterTask.java:368) [service-registry-1.3.2.jar!/:1.3.2] at org.apache.servicecomb.serviceregistry.task.MicroserviceRegisterTask.registerNewSchema(MicroserviceRegisterTask.java:222) [service-registry-1.3.2.jar!/:1.3.2] at org.apache.servicecomb.serviceregistry.task.MicroserviceRegisterTask.registerSchema(MicroserviceRegisterTask.java:200) [service-registry-1.3.2.jar!/:1.3.2] at org.apache.servicecomb.serviceregistry.task.MicroserviceRegisterTask.registerSchemas(MicroserviceRegisterTask.java:170) [service-registry-1.3.2.jar!/:1.3.2] at org.apache.servicecomb.serviceregistry.task.MicroserviceRegisterTask.doRegister(MicroserviceRegisterTask.java:122) [service-registry-1.3.2.jar!/:1.3.2] at org.apache.servicecomb.serviceregistry.task.AbstractRegisterTask.doRun(AbstractRegisterTask.java:41) [service-registry-1.3.2.jar!/:1.3.2] at org.apache.servicecomb.serviceregistry.task.AbstractTask.run(AbstractTask.java:53) [service-registry-1.3.2.jar!/:1.3.2] at org.apache.servicecomb.serviceregistry.task.CompositeTask.run(CompositeTask.java:35) [service-registry-1.3.2.jar!/:1.3.2] at org.apache.servicecomb.serviceregistry.task.ServiceCenterTask.run(ServiceCenterTask.java:115) [service-registry-1.3.2.jar!/:1.3.2] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_191] at java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308) [?:1.8.0_191] at java.util.concurrent.FutureTask.runAndReset(FutureTask.java) [?:1.8.0_191] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_191] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_191] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_191] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_191] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_191] at org.apache.servicecomb.serviceregistry.registry.RemoteServiceRegistry$1.run(RemoteServiceRegistry.java:62) [service-registry-1.3.2.jar!/:1.3.2]Caused by: com.huawei.nuwa.map.http.HttpException: {"code":400,"error":"schemaId is not belong to the service"} at com.huawei.nuwa.map.http.AsyncHttpClientImpl.restApi(AsyncHttpClientImpl.java:69) ~[nuwa-cloudmap-core-1.0.1.105.jar!/:?] at com.huawei.nuwa.map.client.RestApiClient.signAndSendRequest(RestApiClient.java:119) ~[nuwa-cloudmap-core-1.0.1.105.jar!/:?] at com.huawei.nuwa.map.client.RestApiClient.restApi(RestApiClient.java:70) ~[nuwa-cloudmap-core-1.0.1.105.jar!/:?]
-
错误日志:2021-05-08 17:35:49.527 INFO 99648 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9002 (http) with context path ''2021-05-08 17:35:49.533 ERROR 99648 --- [icloud.registry] c.h.s.d.r.ServiceCombServiceRegistry : Unexpected exception in register. java.lang.NullPointerException: null at com.huaweicloud.swagger.ServiceCombDocumentationSwaggerMapper.documentationToSwaggers(ServiceCombDocumentationSwaggerMapper.java:84) ~[spring-cloud-huawei-swagger-1.5.1-Hoxton.jar:1.5.1-Hoxton] at com.huaweicloud.swagger.ServiceCombSwaggerHandlerImpl.init(ServiceCombSwaggerHandlerImpl.java:75) ~[spring-cloud-huawei-swagger-1.5.1-Hoxton.jar:1.5.1-Hoxton] at com.huaweicloud.servicecomb.discovery.registry.ServiceCombServiceRegistry.getMicroservice(ServiceCombServiceRegistry.java:133) ~[spring-cloud-huawei-servicecomb-discovery-1.5.1-Hoxton.jar:1.5.1-Hoxton] at com.huaweicloud.servicecomb.discovery.registry.ServiceCombServiceRegistry.lambda$asyncRegister$1(ServiceCombServiceRegistry.java:97) ~[spring-cloud-huawei-servicecomb-discovery-1.5.1-Hoxton.jar:1.5.1-Hoxton] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_92] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_92] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_92] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[na:1.8.0_92] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_92] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_92] at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_92]2021-05-08 17:35:49.626 INFO 99648 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Context refreshed2021-05-08 17:35:49.643 INFO 99648 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Found 1 custom documentation plugin(s)2021-05-08 17:35:49.667 INFO 99648 --- [ main] s.d.s.w.s.ApiListingReferenceScanner : Scanning for api listing references2021-05-08 17:35:49.816 INFO 99648 --- [ main] c.y.j.t.m.c.consumer.CseServiceConsumer : Started CseServiceConsumer in 3.906 seconds (JVM running for 4.413)使用版本 <spring-cloud-huawei.version>1.5.1-Hoxton</spring-cloud-huawei.version><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.huaweicloud</groupId> <artifactId>spring-cloud-starter-huawei-service-engine</artifactId> <version>${spring-cloud-huawei.version}</version> </dependency>求助电话 18511898726
-
cse: request: timeout :120000不生效,还是会报io.vertx.core.http.impl.HttpClientRequestBase$1: The timeout period of 30000ms has been exceeded while executing POST /xx/xxxx不知道是哪里没有设置 这个默认30000ms
-
场景描述应用基于ServiceComb微服务框架,在进行容器化改造的过程中,某应用组件基于CCE容器引擎进行部署构建,在向华为云CSE Cloud Service Engine 进行服务注册时,注册失败。常见配置问题与调整CCE集群的网络模式选择为:VPC网络。参考:CCE集群创建时网络模型选择及各模型区别:https://support.huaweicloud.com/intl/zh-cn/bestpractice-cce/cce_bestpractice_00162.html若CCE集群使用容器隧道网络,CCE集群内外是不互通的,此时需要将工作负载的访问类型设置为NodePort支持集群外可访问到工作负载。注:节点访问 ( NodePort )是指在容器宿主节点的IP上开放一个静态端口,通过静态端口对外暴露服务。外部服务可以通过请求 <NodeIP>:<NodePort>,访问容器服务。参考:https://support.huaweicloud.com/usermanual-cce/cce_01_0249.html完成NodePort访问类型设置之后,工作负载启动,会向CSE引擎进行注册。此时工作负载注册到注册中心的地址为 <NodeIP>:<Port> 。注册完成之后,其他微服务对该工作负载进行访问 curl <NodeIP>:<Port>,出现报错:原因分析:微服务注册到 CSE 的endpoint 为<NodeIP>,访问请求从CSE 定向到<NodeIP>, CCE集群将负责完成<NodeIP>到 <PodIP>的地址映射,请求到达容器时,并被微服务组件拦截,经过微服务组件eg.'Sidecar'处理之后,微服务组件将会把该请求转发给注册地址<NodeIP>,而此时,微服务组件所运行的容器视角没有<NodeIP>,只有<PodIP>,故报错404。使用VPC网络模式,CCE集群内部的容器可直接被外部访问。故微服务可以直接使用podIP向CSE进行注册,endpoint 为<PodIP>。配置容器/pod的网络模式为主机网络hostnetwork编辑工作负载的yaml文件,在工作负载中配置主机网络:hostnetwork,容器网络与宿主机网络一致,则<PodIP> 与 <NodeIP>一致。参考:https://support.huaweicloud.com/cce_faq/cce_faq_00192.html则微服务向CSE进行服务注册时,成功注册的endpoint将是 <NodeIP>:<Port>,可解决上述故报错404的问题。创建CCE集群时,【企业项目】与 CSE Cloud Service Engine 实例保持一致默认的CSE实例专业版不支持跨VPC调用在向CSE 进行服务注册时, 注册的实例地址生效规则,推荐监听地址默认为 0.0.0.0:<PodIP>由CSE选取某个IP为发布地址,无特殊情况,一般会选择注册服务的源IP地址。参考:https://support.huaweicloud.com/devg-servicestage/ss-devg-0017.html
-
cse集成springboot web功能,rest.address端口号和server.port保持一致。配置TLS通信,rest.address改成0.0.0.0:8080?sslEnabled=true。这时候打开页面,不管是访问静态资源还是访问后台接口还是走的http才能请求通过,而不是通过https,有没有大神指导下是什么原因
上滑加载中
推荐直播
-
全面解析华为云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。
去报名
热门标签