Apache ServiceComb 社区5月动态精选

640?wx_fmt=gif点击蓝字关注我们


Apache ServiceComb 社区5月动态精选_第1张图片


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

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

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

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

......

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

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


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


Apache ServiceComb 社区5月动态精选_第2张图片

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

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

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



Apache ServiceComb 社区5月动态精选_第3张图片


Apache ServiceComb | 精选

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

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

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



进展动态

Apache ServiceComb 社区5月动态精选_第4张图片


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

640?wx_fmt=png



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.请参考⤵️

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:这个过程是随机选择的发布地址。 可以修改的。 

参考⤵️

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



社区 | 总结

640?wx_fmt=png


Apache ServiceComb 社区5月动态精选_第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)


640?wx_fmt=gif

关于maven

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

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

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


后续计划


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

欢迎大家贡献代码


如何贡献代码

⬇️ ⬇️ ⬇️ 

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


如果想了解我们的最新动态,各种任务都在jira里跟踪,那个比较全
也可以订阅下
[email protected],大家有新的idea,都会通过mailing list进行讨论。有好的想法和建议也可以发起邮件讨论

640?wx_fmt=png



Apache ServiceComb 社区5月动态精选_第6张图片

 精彩回顾   


Apache ServiceComb 社区5月动态精选_第7张图片


2019.05.06 北京


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


活动预告


2019.6.25 QCon上海站

地点:上海世博中心


Apache ServiceComb 社区5月动态精选_第8张图片


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上

我们会及时为你解答~


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


Apache ServiceComb 社区5月动态精选_第9张图片

期待志同道合的你

用心做开源/不忘初衷



了解更多信息请访问:

官方网站↓

 http://servicecomb.apache.org/ 

Github代码仓库

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



640?wx_fmt=gif



640?wx_fmt=gif

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

640?wx_fmt=png

你可能感兴趣的:(Apache ServiceComb 社区5月动态精选)