2022-04-03 dubbogo 调用部署在不同zk的同一服务

Python019

2022-04-03 dubbogo 调用部署在不同zk的同一服务,第1张

在 2021-10-17 dubbogo 基础使用 中,介绍了如何用 go 写一个部署到 zookeeper 的 dubbo 服务,这次编写一个 go 语言的 dubbo 调用端。并且支持同时连接到多个 zookeeper ,根据需要调用不同 zk 上的同一个服务

这里我们部署两个 zookeeper ,端口号分别是 2181 和 2182

这里我们配置了两个 UserService 的引用,并且设置了不同的别名。指定了每个引用连接各自的 zk .

注意,这里 service.UserService 为服务提供方的接口,我们直接继承他

服务1 的日志如下:

服务2 的日志如下:

github-dubbogodemo

近几年诞生了很多微服务框架,比如JAVA的Spring Cloud、DubboGolang的GoKit和GoMicro以及NodeJs的Seneca。几乎每种主流语言都有其对应的微服务框架。

Go在微服务框架中有其独特的优势,至于优势在哪,自行google。

1、GoKit框架

这是一个工具包的集合,可以帮助攻城狮构建强大、可靠和可维护的微服务。提供了用于实现系统监控和弹性模式组件的库,例如日志、跟踪、限流、熔断等。

基于这个框架的应用程序架构由三个主要的部分组成:

传输层:用于网络通信,服务通常使用HTTP或者gRPC等网络传输协议,或者使用NATS等发布订阅系统相互通信。

接口层:是服务器和客户端的基本构建块。每个对外提供的接口方法都会定义为一个Endpoint,一遍在服务器和客户端之间进行网络通信,每个端点使用传输层通过HTTP或gRPC等具体通信模式对外提供服务

服务成:具体的业务逻辑实现

2、GoMicro框架

这是一个基于Go语言实现的插件化RPC微服务框架。提供了服务发现、负载均衡、同步传输、异步通信以及事件驱动等机制,尝试简化分布式系统之间的通信,让开发者更专注于自身业务逻辑的开发。

GoMicro的设计哲学是可插拔的架构理念,提供了可快速构建系统的组件,并且可以根据自身的需求对GoMicro提供的默认实现进行定制。所有插件都可在仓库github.com/micro/go-plugins 中找到。