跳到主要内容

6 篇博文 含有标签「release」

查看所有标签

· 阅读需 1 分钟
linux_china

最近两篇非常不错的文章,这里贴一下:

Istio, eBPF and RSocket Broker: A deep dive into service mesh

文章连接为: https://medium.com/geekculture/istio-ebpf-and-rsocket-broker-a-deep-dive-into-service-mesh-7ec4871d50bb 个人觉得介绍非常全面,将Istio, eBPF and RSocket Broker都进行了细致的分析,有做Service Mesh这方面工作的同学可以参考一下。 关于Service Mesh和RSocket Broker的整合,可以参考RSocket By Example的Service Mesh介绍: https://rsocketbyexample.info/service-mesh/

Sicecar vs RSocket

Beyond REST - An Overview about Modern API Technologies

是Spring IO 2022大会的一个Topic,演讲视频:https://www.youtube.com/watch?v=6mrLFcZhWjs
对应的PPT连接为 https://speakerdeck.com/larsduelfer/beyond-rest-an-overview-about-modern-api-technologies

将其中的对比截屏一下:

gRPC GraphQL RSocket

gRPC GraphQL RSocket

· 阅读需 1 分钟
linux_china

Spring Boot 2.7.0正式发布了,详细请参考 https://spring.io/blog/2022/05/19/spring-boot-2-7-0-available-now 其中包括了不少新特性,这里列举一下:

@RestController
public class UserController {

@GetMapping("/user")
public User user() {
return new User(1L, "jaciej", "my-secret-password");
}
}

record User(Long id, String username, String password) {}

@JsonMixin(User.class)
class UserMixin {
@JsonIgnore
private String password;
}

  • SSL配置支持PEM格式证书
server.ssl.enabled=true
server.http2.enabled=true
server.ssl.certificate-private-key=classpath:cert/key.pem
server.ssl.certificate=classpath:cert/cert.pem
server.ssl.key-store-password=changeit

SSL的PEM配置同样适用于RSocket TCP Server,对应的配置项如下:

spring.rsocket.server.ssl.certificate-private-key=classpath:cert/key.pem
spring.rsocket.server.ssl.certificate=classpath:cert/cert.pem
  • RSocket handler支持 @Authenticated Principal
@MessageMapping ("test") 
Mono<String> hello (@Authenticated Principal p){
return Mono.just ("Hello, " + p.getName()) ;
}

当然Alibaba RSocket Broker也是支持Spring Boot 2.7.0的,此外也不要忘记Java 17的支持,祝大家开发愉快!

· 阅读需 2 分钟
linux_china

距离1.1.2的发布已经过去有4个月啦,有大量的开发包在此阶段进行了更新,RSocket Java SDK发布了1.1.2版本,另外出于安全的考虑, 也需要对一下依赖进行更新。

依赖更新

特性调整

  • Java 11 for RSocket Broker: Vaadin 23已经不在支持Java 8,所以我们将RSocket Broker升级到Java 11,但是不用担心,alibaba-rsocket-broker对应的开发包基于Java 8的
  • RSocket Broker Server瘦身: 从1.1.2版本的108M降低到1.1.3版本的71M
  • RxJava 3.1.x兼容: RxJava 3.1.1版本 将fusion相关的接口调整到io.reactivex.rxjava3.operators package下,这导致Reactor RxJava 3适配出现了不兼容的问题,alibaba-rsocket-core对rxjava3之前接口进行inline操作,使用RxJava 3的任何版本都不会收到影响

其他

乐趣

在alibaba-rsocket-service-common的1.1.3版本,增加了 @RSocketServiceInterface, 你可以将RSocket Service interface添加上该annotation, 这样在代码中调用RSocket Service interface的函数接口,IntelliJ IDEA就会将其标识为网络调用,这样方便你更好地了解你的代码,效果如下:

RSocket Service Annotator

注意: 你需要安装 Microservices Annotator pluginRSocket plugin

· 阅读需 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 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支持更好

文档

样例