Apache ServiceComb 社区3月动态精选

春风十里,不如你~

点击蓝字,关注我们~






640?wx_fmt=jpeg

tánɡ

jiān

xuě


青鲤来时遥闻春溪声声碎

嗅得手植棠梨初发轻黄蕊

待小暑悄过 新梨渐垂

来邀东邻女伴撷果缓缓归

旧岁采得枝头细雪

今朝飘落胭脂梨叶

轻挼草色二三入卷

细呷春酒淡始觉甜



640?wx_fmt=png 640?wx_fmt=gif Apache ServiceComb | 精选

文章的开头引用了一首歌词,恰到好处地形容了美丽的春天。在这个充满浪漫气息的时节,小蜜蜂大家带来新一期的精选动态~

Apache ServiceComb 致力于帮助企业、用户和开发者将企业应用轻松微服务化上云,并实现对微服务应用的高效运维管理。

640?wx_fmt=jpeg




进展动态


1. 《Apache ServiceComb微服务开发课程》在传智播客官网上线


2. Apache ServiceComb&传智汇meetup3月23日在北京举办

--------------------------------------

社区小伙伴分享参与社区经验、使用微服务的实践及现场微服务开发演练


640?wx_fmt=gif 640?wx_fmt=png




640?wx_fmt=png 640?wx_fmt=gif FAQ精选问答


Q1

cse和servicecomb有什么区别?升级版?

A1


从开发SDK的角度,可以认为servicecomb是cse的子集。 但是cse只是包含了一些涉及到安全相关的没开源的模块,供华为云接入使用的。 所以开发上是没有差异的。 当然CSE是华为的一个产品,除了开发SDK,还有很多配套的工具和平台,这些在云上才能使用。

640?wx_fmt=gif


Q2

有关于微服务之间调用的Demo吗?

A2

你可以浏览下java-chassis官网,Demo和samples目录有很多例子

也可以参考以下网站↓↓↓

https://github.com/huaweicse/cse-java-chassis-samples/tree/master/porter 

640?wx_fmt=gif


Q3

实现saga的是servicecomb的一个子项目吗?

A3

是的。servicecomb-pack 项目实现了saga 协议。 pack由两部分组成,其中alpha是独立部署的协调服务,omega是集成到自己应用中的包负责和alpha通信↓↓

https://github.com/apache/servicecomb-pack/blob/master/README_ZH.md这里有个关于servicecomb-pack项目的介绍。

640?wx_fmt=gif


Q4

edgeservice的最大连接数的参数是?

A4

参考:https://docs.servicecomb.io/java-chassis/zh_CN/transports/rest-over-vertx.html 当中的“的表1-1 -REST over Vertx配置项说明”-“极限连接数计算”

配置项:servicecomb.rest.server.connection-limit

默认值:Integer.MAX_VALUE

640?wx_fmt=gif


Q5

config-server如何集成?

A5

 
 

不过配置中心当前没有开放出来,有两个选择:

1.下载华为云上的“本地轻量化微服务引擎”↓

https://console.huaweicloud.com/cse/?region=cn-south-1#/cse/tools,里面有ConfigCenter

2.使用apollo

<groupId>org.apache.servicecomb</groupId>	
<artifactId>config-apollo</artifactId>

参考

https://docs.servicecomb.io/java-chassis/zh_CN/config/general-config.html

“配置中心(动态配置)”

640?wx_fmt=gif



Q6

请问ServiceCenter集群内数据同步,集群之间数据同步的,后面有新的规划么?

A6

service-center 有 Aggregate 做了同步的支持,具体可以查看官方的介绍

https://github.com/apache/servicecomb-service-center/blob/master/docs/multidcs.md

由于Aggregate的功能还不够完善,目前正在筹划更加全面和完善的同步方案,将在最近推送到github上,如果有兴趣的话可以关注service-center的github仓库。

640?wx_fmt=gif


Q7

请问java-chassis的snapshot仓库地址是?

A7

https://repository.apache.org/content/repositories/snapshots/


这里有个maven配置的例子

https://github.com/apache/servicecomb-java-chassis/blob/master/README.md#get-the-latest-snapshot

640?wx_fmt=gif


Q8

 
 

上传文件@RequestParam("file") MultipartFile uploadfile 报错,格式不正确,大家有碰到过没?  

org.apache.servicecomb.swagger.invocation.exception.InvocationException: InvocationException: code=400;msg=CommonExceptionData [message=Parameter is not valid.]	
 at org.apache.servicecomb.common.rest.codec.RestCodec.restToArgs(RestCodec.java:72) ~[common-rest-1.1.0.B031.jar:1.1.0.B031]	
 at org.apache.servicecomb.common.rest.filter.inner.ServerRestArgsFilter.afterReceiveRequest(ServerRestArgsFilter.java:60) ~[common-rest-1.1.0.B031.jar:1.1.0.B031]	
 at org.apache.servicecomb.common.rest.AbstractRestInvocation.prepareInvoke(AbstractRestInvocation.java:226) [common-rest-1.1.0.B031.jar:1.1.0.B031]	
 at org.apache.servicecomb.common.rest.AbstractRestInvocation.invoke(AbstractRestInvocation.java:206) [common-rest-1.1.0.B031.jar:1.1.0.B031]	
 at org.apache.servicecomb.common.rest.AbstractRestInvocation.runOnExecutor(AbstractRestInvocation.java:196) [common-rest-1.1.0.B031.jar:1.1.0.B031]	
 at org.apache.servicecomb.common.rest.AbstractRestInvocation.lambda$scheduleInvocation$0(AbstractRestInvocation.java:159) [common-rest-1.1.0.B031.jar:1.1.0.B031]	
 ...	
	
2019-03-22 11:37:35.815 ERROR 177128 --- [pool-2-thread-5] o.a.s.common.rest.codec.RestCodec        : Parameter is not valid for operation fuxi-vehicle.com.fx.vehicle.web.SimResource.verifySims. Message is cause:InvocationException,message:InvocationException: code=400;msg=CommonExceptionData [message=Parameter is required.].	
2019-03-22 11:37:35.816 ERROR 177128 --- [pool-2-thread-5] o.a.s.c.rest.AbstractRestInvocation      : unknown rest exception.	
	
org.apache.servicecomb.swagger.invocation.exception.InvocationException: InvocationException: code=400;msg=CommonExceptionData [message=Parameter is not valid.]	
 at org.apache.servicecomb.common.rest.codec.RestCodec.restToArgs(RestCodec.java:72) ~[common-rest-1.1.0.B031.jar:1.1.0.B0


A8

接口声明错误了

不应该用 @RequestParam 注解,应该用@requestpart 注解


请参考链接:

https://docs.servicecomb.io/java-chassis/zh_CN/general-development/file-upload.html

640?wx_fmt=gif


Q9

大神能告知servicecenter所有接口定义在哪可以看呢?

A9

https://github.com/apache/servicecomb-service-center/blob/master/server/core/swagger/v4.yaml

sc的开源代码库有yaml格式的


https://support.huaweicloud.com/api-cse/cse_02_0003.html

华为云官网的文档也有说明 

640?wx_fmt=gif


Q10

请问一下,edge service 有没有关于转发请求头的配置。现在的问题是, 在Head 里面的叫Authorization 的参数,到Edgeservice 的dispatch 里面就没了。

A10

是转发给三方服务还是基于servicecomb的服务?如果是dispatcher,是不会丢失的。如果是servicecomb的服务,是会丢失的,servicecomb只转发在“契约”(接口定义)里面显示声明的参数。 


如果期望edge传递一些控制消息,需要通过Context来传递,即edge把header读取出来,放到Context里面。


这里的例子演示了怎么传递权限信息给微服务:

https://github.com/huaweicse/cse-java-chassis-samples/tree/7de5dbbcfae46865966140eecdb3dad43c85f2b4/porter 

640?wx_fmt=gif


Q11

 
 

报错:

InvocationException: code=490;msg=CommonExceptionData [message=Cse Internal Bad Request]	
 at org.apache.servicecomb.swagger.invocation.exception.ExceptionFactory.doCreate(ExceptionFactory.java:79)	
 at org.

490是接口参数没有找到么?   

 
 
Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: default

现在是我在本地环境用本地注册中心没有问题,放到服务器,用云的注册中心, 就会报这个问题。

A11

没找到服务实例。可以通过find instance搜索下,是否查找到调用的微服务实例。 

如果为0的话,就看看被调用服务是否正常启动和注册。 调用者是否拼错了服务名称或者应用名称等。

640?wx_fmt=gif


Q12

麻烦问下,一个服务如果起了两个实例,但是版本号不一样,通过CSE去访问的时候是怎么个策略啊?

A12

请参考

https://docs.servicecomb.io/java-chassis/zh_CN/build-consumer/common-configuration.html 

“指定目标实例的版本规则”

640?wx_fmt=gif

Q13

rpc方式调用微服务的时候,碰到了个关于environment的问题,provider和consumer得都在同一种开发模式下,才调用成功;当consumer不指定environment的时候,就没法调用了,也不知道为啥?

A13

你可以通过以下网址

https://bbs.huaweicloud.com/forum/thread-11095-1-1.html

了解ServiceComb支持多环境隔离的概念。 


FAQ总结


感觉大家有些项目是把spring mvc的应用切换为cse, 这里有两个重要的差异信息文档说明: 

1. spring mvc的说明,参考末尾:

 https://docs.servicecomb.io/java-chassis/zh_CN/build-provider/springmvc.html

2. spring boot集成cse和自带mvc的原理介绍: https://bbs.huaweicloud.com/blogs/eca98a6f399a11e9bd5a7ca23e93a891  

可以了解下,少走些弯路。 因为spring mvc除了支持REST,还支持界面,CSE不支持, 在微服务架构上有个建议方案,关于界面程序如何部署的介绍: 

https://bbs.huaweicloud.com/blogs/8bb2c3b8366c11e9bd5a7ca23e93a891


640?wx_fmt=gif


对于ServiceComb java-chassis和CSE JAVA SDK的差异说明↓↓↓

https://bbs.huaweicloud.com/blogs/6d66caf643b211e9bd5a7ca23e93a891 可以参考。 

关于Saga↓↓↓

http://servicecomb.apache.org/cn/docs/distributed-transaction-of-services-1/

http://servicecomb.apache.org/cn/docs/distributed-transaction-of-services-2

这两篇文章有相关的原理和实现的介绍。


640?wx_fmt=gif


欢迎大家在ServiceComb讨论群

或者gitter聊天室与我们互动

https://gitter.im/ServiceCombUsers/Lobby

saga聊天室

↓↓↓

https://gitter.im/ServiceCombUsers/Saga

640?wx_fmt=gif精彩活动回顾


ServiceComb携传智揭秘微服务项目

640?wx_fmt=png 640?wx_fmt=png 640?wx_fmt=png架构师微服务讲解 640?wx_fmt=png 640?wx_fmt=png现场演示操作


【北京,2019年3月23日】

华为开源软件能力中心企业应用微服务化工程师马彬老师等技术专家现场揭秘ServiceComb的来龙去脉和设计思想;深入解读服务中心及微服务开发框架的架构和关键技术;分享应用案例、展望未来,从多维度带来干货满满的精彩技术与实践分享。


640?wx_fmt=gif

文/末/小/结

640?wx_fmt=png 640?wx_fmt=png

我们专注于开源

更希望有更多爱好者学习到微服务


同时也欢迎大家加入到我们的开发队伍

为我们贡献代码,成为commiter


欢迎扫码加入进微信群

有什么疑问可以私聊小助手哈

∇∇∇

640?wx_fmt=png 640?wx_fmt=png

期待志同道合的朋友们加入

ServiceComb的大门为你们敞开~

--------------------------------

用心做开源,不忘初衷


640?wx_fmt=png


了解更多信息请访问: 

官方网站↓

 http://servicecomb.apache.org/ 

Github代码仓库

 https://github.com/apache?q=ServiceComb 

点击完“在看“再走吧~

640?wx_fmt=gif 640?wx_fmt=png


“阅读原文”阅读相关源码

并给ServiceComb点个“Star”吧


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值