跳到主要内容

6 篇博文 含有标签「broker」

查看所有标签

· 阅读需 1 分钟
linux_china

考虑到方便Java开发人员更快启动Alibaba RSocket Broker进行本地测试,Alibaba RSocket Broker提供Jbang支持,现在你只需要执行以下命令就可以启动RSocket Broker。

jbang rsocket-broker@alibaba

JBang的安装请参考: https://www.jbang.dev/download/ ,如Mac下执行 brew install jbangdev/tap/jbang 即可。

如果你本机已经安装了Docker Compose,那么使用Docker Compose启动RSocket Broker也是没有问题的,如下:

version: "3"
services:
alibaba-rsocket-broker:
image: linuxchina/alibaba-rsocket-broker:1.1.2
ports:
- "9997:9997"
- "9998:9998"
- "9999:9999"

· 阅读需 1 分钟
linux_china

Java 17正式发布已经有一周多啦,Java 17作为LTS版本,而且从11到17版本增加了大量特性,收到非常多的开发者关注,大家也积极将自己的产品和Java 17进行兼容。

Alibaba RSocket Broker主要基于RSocket Java SDK和Spring Boot进行开发,伴随着Spring Boot 2.5.5的发布,Spring Boot已经全面兼容ava 17, 在此基础上,我们也对Alibaba RSocket Broker进行全面Java 17兼容测试。 结果向大家汇报一下: Alibaba RSocket Broker全面兼容JDK 17,你可以放心使用JDK + RSocket Broker SDK开发你的应用。

最后希望越来越多的Java开发者升级到Java 17,提升开发效率的同时,享受编程带来的喜悦。 :)

· 阅读需 2 分钟
linux_china

在当前的架构设计和开发中,HTTP REST API还是扮演着重要的角色,但是GraphQL和RSocket对比HTTP REST提供更丰富的特性和更高的性能。 如果能在当前的架构设计中能透明增加GraphQL和RSocket支持将是非常好的事情。

现在你只需为HTTP REST Controller添加几个Annotation,就可以同时支持HTTP REST, GraphQL和RSocket三者。 高效通讯的走RSocket,数据聚合的走GraphQL,传统的走HTTP REST。

REST, GraphQL, RSocket

当然你也可以选择GraphQL over RSocket,你只需要添加以下代码即可:

    @Autowired
private GraphQlService graphQlService;

@MessageMapping("graphql")
public Mono<Map<String, Object>> graphql(Map<String, Object> input) {
final RequestInput requestInput = new RequestInput((String) input.get("query"),
(String) input.get("operationName"),
(Map<String, Object>) input.get("variables"));
return graphQlService.execute(requestInput)
.map(ExecutionResult::toSpecification);
}

如果你对该方案有兴趣,可以参考Demo样例: https://github.com/linux-china/rest-graphql-rsocket-demo

参考

· 阅读需 2 分钟
linux_china

启动RSocket Broker非常简单,但是考虑开发的流畅性,我们推出了一个免费的Alibaba RSocket Broker提供给大家测试使用,请注意,是测试,不是产品环境。 :)

使用非常简单,首先我们将rsocket.brokers调整为线上服务列表,如下

src/main/resources/application.properties
rsocket.brokers=tcp://139.196.223.16:9999,tcp://139.196.223.138:9999

接下来我们执行一下 curl https://jwt.alibroker.info 获取对应的JWT token,然后设置为rsocket.jwt-token的属性值,如下:

src/main/resources/application.properties
rsocket.jwt-token=xxx

最后启动你的RSocket应用进行测试就可以。 详细的样例,你可以参考: https://github.com/alibaba-rsocket-broker/rsocket-broker-simple-example

Cloud RSocket Broker的优点

  • 快捷启动应用,不需要本地启动一个RSocket Broker才能测试
  • 租户级别的安全隔离:只有JWT token相同的应用之间才能通讯,后续还会加强安全建设
  • 混合云体验: 你的应用同时部署在阿里云、腾讯云,还有一些在私有机房,都没有问题,只要连接到Cloud RSocket Broker上就可以互通,无需任何设置

借助于RSocket Cloud Broker,下图架构完全没有问题,你可以马上使用免费的RSocket Broker测试起来。

Hybrid Cloud

· 阅读需 1 分钟
linux_china

Alibaba RSocket Broker 1.1.0版本增加了Kubernetes的支持, 部署也不是特别麻烦,就是大家都懂的kubectl apply -f deployment.yaml, 考虑到K8S社区还是基于Helm部署为主,所以我们添加了RSocket Broker Helm Chart,借助Helm更方便地管理RSocket Broker部署。 详细的信息请参考: https://artifacthub.io/packages/helm/alibaba-rsocket-broker/alibaba-rsocket-broker

RSocket Broker的Helm安装步骤如下:

helm repo add alibaba-rsocket-broker https://alibaba-rsocket-broker.github.io/helm/charts/
helm install rsocket-broker alibaba-rsocket-broker/alibaba-rsocket-broker

在使用Helm安装RSocket Broker完毕后,我们建议使用rsocket-box来验证RSocket Broker是否正常工作,命令行如下:

kubectl run -i --rm --tty rsocket-box --image=linuxchina/rsocket-box --restart=Never --image-pull-policy=Always

然后调用alirsc对rsocket broker的集群进行服务测试,如查看Broker集群的拓扑结构:

$ alirsc tcp://rsocket-broker.rsocket.svc.cluster.local:9999 --request --route com.alibaba.user.UserService.findById -d '[1]'

· 阅读需 2 分钟
linux_china

RSocket Broker 1.1基于RSocket Java 1.1.0和Spring Boot 2.4.x开发,紧跟当前最新的技术,但是alibaba-rsocket-spring-boot-starter还是兼容Spring Boot 2.3.x的,Broker Server则调整为基于Spring Boot 2.4.x版本开发,主要是性能等方面的要求。

特性调整

  • RSocket Java升级到1.1.0
  • Spring Boot 2.4.x升级支持
  • RSocket Broker Server支持Java 8,11和16
  • RSocket Broker Server添加Testcontainers支持: https://github.com/alibaba-rsocket-broker/testcontainers-rsocket-broker-module
  • Scalecube cluster升级至2.6.9:支持最新最新的Reactor Netty 1.0.x
  • Docker镜像的基础镜像调整为adoptopenjdk:8-jdk-hotspot
  • Kubernetes支持:快速部署RSocket Broker,同时应用接入Broker也更方便,已经比较稳定。
  • Graceful shutdown支持: Broker Server和应用均支持Graceful shutdown,在application.properties文件中添加server.shutdown=graceful即可
  • GraalVM native image兼容GraalVM 21.1.0
  • Config Server推送添加了Redis的适配
  • RSocket Broker集群变更推送添加幂等支持: 也就是应用接入端会每2分钟和Broker同步一次,拿取最新的Broker集群信息
  • RSocket Broker Server的Docker镜像编译调整到Buildpacks,Paketo Buildpacks对Spring Boot支持更好

文档

样例