转载

Apache ServiceComb 社区5月动态精选

Apache ServiceComb 社区5月动态精选

点击蓝字

关注我们

Apache ServiceComb 社区5月动态精选

或许我可用夏日把你来比方,

但你比夏日更可爱也更温良。

夏风狂作常摧落五月的娇蕊,

夏季的期限也未免还不太长。

......

只要人眼能看,人口能呼吸,

我诗必长存,使你万世留芳。

——莎士比亚 十四行诗 第18首

Apache ServiceComb 社区5月动态精选

五月,像是一个最温柔的笑

没有盛夏时的炎炎浮躁与慵懒

温和而不疏淡,热烈但不拘束

Apache ServiceComb 社区5月动态精选

Apache ServiceComb | 精选

文章的开头引用了莎士比亚的一首诗。

在这雨晴梅子肥的季节里,小蜜蜂给大家带来新一期的精选动态~

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

进展动态

Apache ServiceComb 社区5月动态精选

1. 开了 新项目 servicecomb-Kie

(分布式系统配置工具,实现云原生分布式系统配置中心)

https://github.com/apache/servicecomb-kie

2. 开了 新项目 servicecomb-fence

(微服务认证鉴权工具,实现OAuth和OpenID connect协议,兼容Spring security用户API)

https://github.com/apache/servicecomb-fence

3. ServiceComb的服务中心正在设计和开发一个 Syncer工具

Syncer 地址

https://github.com/apache/servicecomb-service-center/tree/master/syncer

Syncer 的更多介绍

https://github.com/apache/servicecomb-service-center/blob/master/syncer/README-ZH.md

Syncer 的未来要处理的事情 不断更新中 ):

https://github.com/apache/servicecomb-service-center/blob/master/syncer/TODO-ZH.md

FAQ| 精选问答

Q1

有个疑问,能否解答一下,当我使用spring boot集成servicecomb的时候,springboot的启动和servicecomb初始化完成有没有什么关系

A: servicecomb是spring boot启动的一部分,servicecomb也是一系列的applicationlistener

Q2

请问,在我的rpc接口里面,当消费者调用我的微服务时,我可以知道是哪个消费者调用的吗?并且获取对端微服务的微服务名?

A: 上游的consumer服务调用下游的provider服务时,会在InvocationContext 中设置一个 x-cse-src-microservice 表示请求是从哪个服务发出的。你可以通过这个来判断。

Q3

开发者,qps-flowcontrol-provider通过这个配置限流时,测试发现单独请求微服务时,限流时生效的,但通过edge网关请求微服务接口时,这个限流并不起作用,这个是什么原因呢?

A: 指定了服务级限流策略啊?浏览器直接访问后端服务的话请求算在default里面,通过edge调用后端服务的话,请求算在了edge服务的头上

Q4

Servicecomb能编写默认执行的handler吗?

A: 请参考:

https://docs.servicecomb.io/java-chassis/zh_CN/references-handlers/intruduction.html   

也可以试试HttpServerFilter:

https://docs.servicecomb.io/java-chassis/zh_CN/general-development/http-filter.html 

使用REST的情况下,这个一定是在handler之前执行的。

Q5

我看文档中说transport-highway模式,仅用于java之间互通。如果我客户端是使用C语言写的,想连接基于servicecomb开发的tcpserver是不是无法正常通信?

A: 理论上不限于java,但是protobuf based on protostuff不是个标准的protobuf,这个就局限性有点高了, 2.0种将改为标准protobuf 

REST(HTTP+json) 标准,简单,比较适合各种语言实现,一般都有对应的库。 

Q6

普通的微服务新增新的接口,重启服务,edge服务也要跟着再重启才能生效,我觉得这挺不好的,不能edge服务就不要重启吗?edge服务都重启了,那好像就不能算真正的弹性扩展了, 但重启了edge服务,对外服务不是都停止了?

A: 微服务版本号升级了的话,edge不用重启, 不做任何控制时,平等对待

例如:

v1,有op1/op2

v2,有op1/op2/op3

如果调op1/op2,则v1/v2的实例都使用

如果调op3,会只使用v2实例

另外,可以控制版本的使用规则,可以指定只调latest,或是a url走规则1,b url走规则2

op级的控制,是自动的,不需要干预

versionRule需要控制

可参考以下文档中的“设置兼容规则”:

https://docs.servicecomb.io/java-chassis/zh_CN/edge/by-servicecomb-sdk.html

Q7

使用0.0.0.0:8080注册到service-center,每个服务的地址都是虚拟网卡的地址,怎么才能分配服务所在的本机的IP地址?

A: 这个过程是随机选择的发布地址。 可以修改的。 

参考文档:

https://docs.servicecomb.io/java-chassis/zh_CN/build-provider/listen-address-and-publish-address.html

Q8

api first是不是用swagger editor编辑yml(符合openApi规范),导出之后,再加入业务层的接口包,然后实现controller?

A: 可以先写接口代码。写swagger也行,还需要工具将yaml生成代码项目。需要工具链支持。

Q9

请问一下:

1、使用RPC/RestTemplate 调用服务怎么指定服务版本?

2、使用其他网关(如zuul)如何转发到指定版本的服务?

A: 1.请参考:arrow_heading_down:

https://docs.servicecomb.io/java-chassis/zh_CN/build-consumer/with-contract.html  

2.zuul的话得自己改路由规则

Q10

使用0.0.0.0:8080注册到service-center,每个服务的地址都是虚拟网卡的地址,怎么才能分配服务所在的本机的IP地址呢?

A: 这个过程是随机选择的发布地址。 可以修改的。 

参考:arrow_heading_down:

https://docs.servicecomb.io/java-chassis/zh_CN/build-provider/listen-address-and-publish-address.html

Q11

rpc风格的方法重载有考虑做支持吗?

有考虑彻底支持下rpc的重载吗?

servicecomb版本:1.2.0,rpc方式下方法重载的两个bug

1  提供方重载方法,在按参数对象生成契约时,生成的swagger中ref值,取方法名+ body会冲突

2 不支持使用提供方接口调用

A: 考虑到openapi每个接口都有唯一的operation id, 还是不太建议这么使用。 内部实现使用重载是可以理解的,外部发布接口的时候,需要避免,可以将内部的设计包装起来就可以了。 没必要强制得使用重载。 

getUserByX, getUserByY, 这样的接口感觉比getUser(X) getUser(Y)语义上更加直观一些。

Q12

最大并发数, sprint boot自带tomcat里有设置。 ServiceComb 里会有最大并发的设置吗?

A: servicecomb稍微复杂点,如果运行时是tomcat或者springboot带的tomcat,直接配置tomcat即可。如果是vertx容器,可以看下开发指南的配置项。

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

社区 | 总结

Apache ServiceComb 社区5月动态精选

很多开发者都反馈ServiceComb没提供认证鉴权服务的支持,自行开发代码量很大,或者必须使用spring security提供的原生能力

参考:

https://github.com/huaweicse/cse-java-chassis-samples/tree/master/springboot-oauth2-sample

但是原生能力少了很多ServiceComb自身的特性, 集成非常不友好。

开发人员做了一个适用于微服务的JWT/OAuth2认证项目原型,专为ServiceComb打造。目前已经完成了最基础的过程验证和开发,以及项目的自动化测试。 

参考:

https://github.com/apache/servicecomb-samples/tree/master/authentication

感兴趣的点个赞,支持把原型项目做成一个正式的ServiceComb项目。(熟悉这个项目,需要先了解spring security和oauth2)

Apache ServiceComb 社区5月动态精选

关于maven

maven提供的dependency mangement机制,依赖关系可能由于某一个新组建的加入或者移除发生大量变化。 

有些pom依赖示例,可以参考下: 

https://github.com/apache/servicecomb-samples 

后续计划

好消息,我们的新项目已经开始了

欢迎大家贡献代码

如何贡献代码

:arrow_down:  :arrow_down: :arrow_down: 

https://servicecomb.apache.org/cn/developers/contributing

如果想了解我们的最新动态,各种任务都在jira里跟踪,那个比较全

也可以订阅下

dev@servicecomb.apache.org ,大家有新的idea,都会通过mailing list进行讨论。有好的想法和建议也可以发起邮件讨论

Apache ServiceComb 社区5月动态精选

精彩回顾    

Apache ServiceComb 社区5月动态精选

2019.05.06 北京

恰逢QCon十周年,QCon(全球软件开发大会)2019北京站在北京国际会议中心拉开帷幕。来自华为云的五位专家在“AI与云原生实践”华为云专场论坛中发表精彩演讲。这也是华为云首次以专场形式亮相全球软件开发大会。

活动预告

2019.6.25 QCon上海站

地点:上海世博中心

Apache ServiceComb 社区5月动态精选

KubeCon + CloudNativeCon论坛将所有CNCF项目汇聚在一个屋檐下。与开源云原生社区的技术领袖们一起加入此论坛,以进一步推动云原生计算的发展。

开源峰会,前身为LinuxCon + CloudOpen + ContainerCon China(LC3),汇集了技术专家和开源行业领导者,使其共同合作,分享信息,了解最新、最有趣的开源技术,包括Linux、IoT、区块链、AI,网络和更多。

6月24日是会前同场活动 + 快闪演讲

6月25-26日是论坛

报名链接:

https://events.linuxfoundation.cn/events/kubecon-cloudnativecon-china-2019/register/

END

我们专注于开源

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

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

为我们贡献代码,成为commiter

欢迎扫码加入进微信群

有什么疑问可以提issue到github上

我们会及时为你解答~

小蜜蜂提前祝大伙儿端午节快乐!:tada:

Apache ServiceComb 社区5月动态精选

期待志同道合的你

用心做开源/不忘初衷

了解更多信息请访问:

官方网站↓

http://servicecomb.apache.org/ 

Github代码仓库

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

Apache ServiceComb 社区5月动态精选

Apache ServiceComb 社区5月动态精选

点击“ 阅读全文 ”给ServiceComb点star!

原文  http://mp.weixin.qq.com/s?__biz=MzUxNTEwNTg5Mg==&mid=2247487815&idx=1&sn=4af4de57c17a44a1b788d24b56606ee4
正文到此结束
Loading...