zookeeper 网关_Dubbo RSocket网关简介

在优锐课的java学习分享中,了解有关在的应用

程序中实现Apache Dubbo RSocket网关的更多信息。我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。

Apache Dubbo 是著名的Java RPC框架,尤其是在中国。 有很多使用Dubbo的项目。 尽管通过调整响应流和服务网格将其现代化,但仍有许多遗留项目无法在一天之内进行大修。

RSocket是提供反应式语义的应用程序协议。 与传统RPC相比,它提供了增强的性能和可靠性。

1、什么是网关?

网关或代理是消费者和服务提供商之间的另一跳。 通常,该跃点将执行某些工作,而这在两端都很难完成,以证明额外的跃点是合理的。 例如,Spring Cloud最近发布了WebSocket / RSocket网关。 该网关的作用是在两种协议之间转换。 这样一来,REST客户端不必修改代码,仍然可以享受RSocket的好处。

2、为什么我们需要网关?

没有人喜欢更改代码。 更不用说大的代码更改了。 RSocket具有用于不同语言的SDK。 Java SDK基于Reactor项目。 函数式编程风格不仅为许多工程师提供了深入的学习曲线,而且还给调试和跟踪带来了挑战。

因此,有必要提供网关。 网关将最大限度地减少客户端上的代码更改。 适用于服务已经在RSocket中且客户端仍在传统RPC中的用例。 尽管它不如点对点RSocket连接有效,但这是一个很好的折衷方案。

3、网关如何工作?

有两件事要记住:

· ·Dubbo是传统的RPC框架。 转换为RSocket语言后,它仅具有Mono返回类型,而没有stream / Flux类型。

· ·服务器端必须提供RSocket服务。 否则,没有必要在两者之间添加网关。 如果两个人说相同的语言,为什么需要翻译?

4、Dubbo 如何运作?

要了解网关的工作方式,我们需要查看Dubbo的工作方式。

Dubbo使用服务注册表。 创建服务时,它需要在注册表中注册自己。 消费者将在注册表中查询该服务,然后访问该服务。

使用网关,提供程序现在无需注册到注册表。 相反,它将在网关上创建一个接口并将该接口注册到注册表。 当消费者请求服务时,它将在网关上获得接口。 然后,网关会将请求分派给服务提供商。

让我们看一些代码:

public interface DemoService {
 String findNickById(Integer id);
}
 

请注意,服务只是一个框架。 该服务保留在网关上,并将注册到注册表。

使用者现在以RPC样式发出请求:

   public ApplicationRunner runner() throws Exception {
        return args -> {
            DemoService demoService = (DemoService) Proxy.newProxyInstance(
                    DemoService.class.getClassLoader(),
                    new Class[]{DemoService.class},
                    new DubboServiceCallInvocationHandler(proxyService, DemoService.class, ""));
            System.out.println(demoService.findNickById(1));
        };
    }

这就是RSocket服务接口的外观。 请记住,它仅具有Mono类型。

public interface ReactiveUserService {
   Mono<User> findUserById(Long id);
}
 

而且我们不需要注册。

结论

在这个简单的示例中,我们演示了如何使用网关通过RSocket服务器处理Dubbo RPC样式的客户端。 RSocket具有广泛的用例,不一定需要我们在两端更改代码。 网关体系结构可以扩展为连接到其他协议和产品,例如数据库或消息队列。

文章写到这里,如有不足之处,欢迎补充评论。

抽丝剥茧,细说架构那些事!

还有就是这我总结出了一些架构视频资料和互联网公司java程序员面试涉及到的绝大部分面试题和答案做成了文档和架构视频资料还有完整高清的java进阶架构学习思维导图分享给大家(包括Dubbo、Redis、Netty、redis、mysql、zookeeper、Spring cloud、分布式、高并发等架构技术资料),也节省大家在网上搜索资料的时间来学习。

6aa5171295387b588d061e143465e3da.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值