Apache ServiceComb 社区2月动态精选

ServiceComb致力于简化企业应用微服务化,本期精选问答涵盖微服务调用、配置中心集成、Swagger集成、请求处理及RPC文件传输等技术要点。
640?wx_fmt=png

Apache ServiceComb | 精选

640?wx_fmt=jpeg



二月,是连接冬与春的使者,是承接寒与暖的桥梁。

640?wx_fmt=gif640?wx_fmt=png

春季伊始,南方开始有了暖阳,北方的大雪慢慢融化。我们等待的,不仅是那一抹春色,更是那万物复苏、生机勃勃的景象所带来的希望。在这个春暖花开的日子里,小蜜蜂给大家带来新一期的精选动态播报~

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

640?wx_fmt=png


640?wx_fmt=png进展动态640?wx_fmt=gif


ServiceComb微服务学习还在继续

敬请关注


640?wx_fmt=png

  FAQ精选问答


1

Q:

发现使用rest over servlet的时候就报 all transport name rest refused to init

A:

是否在引导脚本上规避一下,用over vertx

由脚本探测空闲端口,然后作为命令行参数传进去。

2

Q:

Failed to find latest MicroserviceVersionMeta 

这个错误一般是什么情况导致的?

用edgeserver网关 502 日志打印Failed to find latest MicroserviceVersionMeta  

A:

看看版本,是否匹配。

3

Q:

如果服务A同时配置了 rest 与hightway  通过edge网关后调用服务A是选用rest还是hightway调用?

A:

当前highway使用的是protostuff的protobuf编解码,与标准的protobuf不完全兼容,我们正在准备改为完全兼容的方式,可以暂时不要部署highway,请参考以下网址↓

https://github.com/apache/servicecomb-java-chassis/tree/master/foundations/foundation-protobuf

4

Q:

关于两个微服务实例间的相互调用,serviceComb用的是什么?

A:

实例间调用,当前支持:

1.rest-transport-vertx,高性能,默认工作模式

2.rest-transport-servlet,基于传统servlet

3.私有协议highway(tcp+protoStuff实现的protobuf)

服务间如何调用,对业务逻辑是透明的

只需要引入相应依赖,配置相应的配置项

参考文档:https://docs.servicecomb.io/java-chassis/zh_CN/


5

Q:

已经把实例的状态修改成 down了,服务怎么还能访问呢?

A:

可能有bug,不应该保护这些实例,需要另行跟踪。

6

Q:

servicecomb集成swagger  你们可以集成吗?本地注册中心service center有没有图形化界面?

A:

功能集合是等同的。

但是,商业版增加了上云需要的用户认证等等模块,有治理console,依托云服务,提供了APM等等功能。

https://github.com/apache/servicecomb-service-center/releases,可以进这个链接下载


7

Q:

获取当前request 怎么不能通过@autowared?

报错:ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();

    HttpServletRequest request = servletRequestAttributes.getRequest();

A:

filter的入参就有request,业务方法声明request入参,会自动赋值。因为ServiceComb内核是纯异步的,并且默认不工作于传统的servlet模式,而是高性能的vertx模式。所以那些基于线程上下文的东西,默认都是不提供的。

另外,完全不建议通过request再去获取某某参数,而是应该通过annotation的方式,将相应的参数在方法原型上声明出来。

8

Q:

像登录的用户信息userid或者username,通过zipkin传递到其他服务吗?

A:

既提供了vertx rest,也提供了servlet rest,可以2选1,但是vertx性能会高不少

zipkin是用于调用链的,不用于传业务数据,这些数据可以放在cse context中,默认会自动在远程调用时传递过去,a调b,b调c,这样的嵌套调用,c也可以自动拿到cse  context中的数据。

9

Q:

Rpc接口传递文件有什么好的方式?是只能用byte数组吗?

A:

请参考文档-https://docs.servicecomb.io/java-chassis/zh_CN/general-development/file-upload.html

10

Q:

 网关目前可以结合配置中心吗?

A:

可以。网关具备java-chassis一样的能力。 配置下配置中心即可。 比如以下: https://github.com/huaweicse/cse-java-chassis-samples/tree/master/porter

11

Q:

ServiceComb1.0.0跟最新的主线版本1.2.0-SANPSHOT兼容吗?

A:

兼容的。建议构筑一下自动化测试体现和进行持续集成,这样的好处是可以及时修复老版本潜在的问题,也可以降低夸很长的版本集成带来的未知影响。你也可以参考下Release notes,提前识别下风险。 servicecomb的版本不是很频繁,所以release notes还没发出。 华为CSE目前已经集成了servicecomb的最新版本,它的release notes可以参考,两个代码是同源的:  https://support.huaweicloud.com/productdesc-cse/cse_productdesc_0008.html

12

Q:


改造原有的一个springboot项目,入参有个HttpServletResponse 类型参数,启动服务时报了错误generate operation swagger failed,是否有解决方案,或者生成swagger时忽略这个HttpServletResponse类型参数

A:

HttpServletResponse类型的参数不能定义在REST接口里,因为ServiceComb-Java-Chassis启动时要根据你的接口生成服务契约,但从这个类型里完全无法推出你要返回什么类型的应答。

关于REST接口参数问题可以参考一下这篇文档:https://docs.servicecomb.io/java-chassis/zh_CN/build-provider/interface-constraints.html


640?wx_fmt=gif


欢迎大家在ServiceComb讨论群

或者gitter聊天室与我们互动

https://gitter.im/ServiceCombUsers/Lobby

saga聊天室

↓↓↓

https://gitter.im/ServiceCombUsers/Saga


640?wx_fmt=png

文末小结

640?wx_fmt=png

我们专注于开源

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


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

为我们贡献代码,成为commiter


欢迎扫码加入进微信群

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

640?wx_fmt=jpeg




640?wx_fmt=png640?wx_fmt=jpeg

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

ServiceComb的大门为你们敞开~

用心做开源,不忘初衷



了解更多信息请访问: 

官方网站↓

 http://servicecomb.apache.org/ 

Github代码仓库

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


640

赶紧点击阅读原文阅读相关源码

并给ServiceComb点个“Star”吧

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值