SOFA Weekly | Service Mesh 系列直播回顾、SOFARPC 剖析回顾

SOFA WEEKLY | 每周精选,筛选每周精华问答

同步开源进展,欢迎留言互动

SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁金服自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。

SOFAStack 官网: https://www.sofastack.tech

SOFAStack: https://github.com/sofastack

  每周读者问答提炼  

欢迎大家向公众号留言提问或在群里与我们互动

我们会筛选重点问题通过 

" SOFA WEEKLY " 的形式回复

1、@钱德鹏 提问:

官网的泛化调用 Demo 地址为 https://www.sofastack.tech/projects/sofa-rpc/generic-invoke,代码如下:

这段代码里 consumerConfig 没有指定 directUrl,那么是如何获取服务地址的?自己测试时,如果不指定 directUrl,那么会报找不到服务的错误;如果指定 directUrl,可以正常调用。所以想问一下到底需不需要指定?

ConsumerConfig consumerConfig = new ConsumerConfig().setInterfaceId("com.alipay.sofa.rpc.quickstart.HelloService").setGeneric(true);GenericService testService = consumerConfig.refer();String result = (String) testService.$invoke("sayHello", new String[] { "java.lang.String" },new Object[] { "1111" });

A:你这个跟是否跟泛化调用没关系。RPC 调用肯定是要拿到对方的服务端地址的,这里要么走注册中心去做服务发现,要么走指定直连地址。

明白,我的意思是官网的 Demo 里面没指定 URL,那么他是怎么调用成功的?既然官网没有指定,为什么我不指定就调用不到?另外附加一个问题,如果说一定要指定地址,那么我指定成 SLB 地址,由 SLB 去分发,是否可行?

A:你说官网的 Demo 是哪个?

https://www.sofastack.tech/projects/sofa-rpc/generic-invoke

A:这里应该是代码片段,不是完整 Demo。Example 可以参考

https://github.com/sofastack/sofa-rpc/blob/master/example/src/test/java/com/alipay/sofa/rpc/invoke/generic/GenericClientMain.java

指定成 SLB 地址是可以的,不过是 slb 跟服务端是长连接,建立了就不断了,服务端负载不一定会均衡。

好的,是否可以认为如果像 Demo 里这样调用,就必须指定 directUrl?

A:对,使用 ZK 为注册中心的例子就是:

https://github.com/sofastack/sofa-rpc/blob/master/example/src/test/java/com/alipay/sofa/rpc/zookeeper/start/ZookeeperBoltClientMain.java

SOFARPC:https://github.com/sofastack/sofa-rpc

2、@王振 提问:

请问在配置 Nacos 时,如果 Nacos 是集群部署的话,那 Seata 配置 Nacos 地址的时候是不是只需要填写 Nacos 集群地址就行了,不要三个都填的吧?

A:Nacos 集群不是填3个地址嘛?你自己做了前端负载?

用 Nginx 去做了,在 Nacos 之上加入了 Nginx 做了负载均衡,那在 Seata 配置上是不是只需要配置负载均衡的地址就可以了是吗?如果不做负载的话,那填三个地址是逗号隔开吗?

A:是的,跟直接使用 Nacos 集群写法一致,我们把这个属性透传给 Nacos。

是 ip:port,ip:port,ip:port 这种形式对吧?

A:是的。

另外,请问 Seata 对服务器有最低要求吗?

A:server 推荐 2C4G+ 吧,jvm 内存2G+。

Seata:https://github.com/seata/seata

  本周推荐阅读  

  • Apache SkyWalking 在 Service Mesh 中的可观察性应用 | 线上直播回顾

  • Service Mesh 高可用在企业级生产中的实践 | 线上直播回顾

  • 陌陌的 Service Mesh 探索与实践 | 线上直播回顾

  剖析 SOFARPC 框架系列  

  • 【剖析 | SOFARPC 框架】系列之SOFARPC 序列化比较

  • 【剖析 | SOFARPC 框架】系列之SOFARPC跨语言支持剖析

  • 【剖析 | SOFARPC 框架】系列之 SOFARPC 注解支持剖析

  • 【剖析 | SOFARPC 框架】系列之 SOFARPC 路由实现剖析

  • 【剖析 | SOFARPC 框架】系列之 SOFARPC 优雅关闭剖析

  • 【剖析 | SOFARPC 框架】系列之 SOFARPC 数据透传剖析

  • 【剖析 | SOFARPC 框架】系列之 SOFARPC 泛化调用实现剖析

  • 【剖析 | SOFARPC 框架】系列之 SOFARPC 单机故障剔除剖析

  • 【剖析 | SOFARPC 框架】系列之 SOFARPC 线程模型剖析

  • 【剖析 | SOFARPC 框架】系列之 SOFARPC 同步异步实现剖析

  • 【剖析 | SOFARPC 框架】系列之连接管理与心跳剖析

  • 【剖析 | SOFARPC 框架】系列之链路追踪剖析

  • 【剖析 | SOFARPC 框架】系列之总体设计与扩展机制

本文归档在 sofastack.tech。

???? 励支持 SOFAStack 的你~

* 点下右下角“在看

* 到公众号对话框发送“T 恤”,试试手气~

* 本期互动奖品SOFAStack T 恤

你可能感兴趣的:(SOFA Weekly | Service Mesh 系列直播回顾、SOFARPC 剖析回顾)