Broker 模式

Broker 模式
采用 broker 模式对分布式计算进行简单模拟。系统在一个进程内模拟分布式环境,因
此不涉及网络编程和进程间通信,Broker 通过本地函数调用的方式实现 request 和 response
的转发。
采用 broker 模式对分布式计算进行简单的模拟,要求如下:
设计四个 server,一个 server 接收两个整数,求和并返回结果,一个 server 接收两个
整数,求差并返回结果,一个 server 接收两个整数,求积并返回结果,一个 server 接收两
个整数,求商并返回结果。
客户端通过 ID 访问所需的服务,即:将服务 ID 和将两个整数发送给 Broker,由 broker
找到正确的服务器并将整数发送给相应的服务器,服务器计算结果,再将结果交给 broker
转发给客户,客户显示结果。
搭建 Broker 系统框架
按照 Broker 模式的要求,实现 Client,Broker,Server 三种组件(设计为三个 class),
不要求设计 Client-side Proxy 和 Server-side Proxy。必须实现如下功能:
• Server 可以注册到 Broker(使用 ID 号)
• Broker 为 Server 提供注册服务
• Broker 可将 client 的 request 转发到正确的 server
• Broker 可见 server 的 response 转发到 client
main 函数实现如下功能:
• 创建一个 broker 对象
• 创建两个 server 对象并注册到 broker
• 创建一个 client 对象
• 接收用户输入,由 Client 发起 request,并等待 response
• 输出 response

详细实现:
Broker.java

Server.java

Client.java

详细代码参见  http://files.cnblogs.com/Goergia/Broker.pdf

时间: 2024-10-20 08:47:12

Broker 模式的相关文章

分布式模式之Broker模式

问题来源: 创建一个游戏系统,其将运行在互联网的环境中.客户端通过WWW服务或特定的客户端软件连接到游戏服务器,随着流量的增加,系统不断的膨胀,最终后台数据.业务逻辑被分布式的部署.然而相比中心化的系统,复杂度被无可避免的增大了,该如何降低各个组件之间的耦合度. 挑战: 需要保证可伸缩性.可维护性.可更新性,需要将服务划分为各个相对独立的组件,组件被分布式的部署,它们之间通过进程间通信方式实现交互.服务的增加.删除.改变都应该被支持.理想情况,以开发者的角度看,集中化的系统和分布式的系统在中心逻

分布式模式之Broker模式(转)

问题来源: 创建一个游戏系统,其将运行在互联网的环境中.客户端通过WWW服务或特定的客户端软件连接到游戏服务器,随着流量的增加,系统不断的膨胀,最终后台数据.业务逻辑被分布式的部署.然而相比中心化的系统,复杂度被无可避免的增大了,该如何降低各个组件之间的耦合度. 挑战: 需要保证可伸缩性.可维护性.可更新性,需要将服务划分为各个相对独立的组件,组件被分布式的部署,它们之间通过进程间通信方式实现交互.服务的增加.删除.改变都应该被支持.理想情况,以开发者的角度看,集中化的系统和分布式的系统在中心逻

kafka 集群部署 多机多broker模式

环境IP : 172.16.1.35   zookeeper   kafka 172.16.1.36   zookeeper   kafka 172.16.1.37   zookeeper   kafka 开放端口  2181  2888  3888   9092 编辑  server.properties  文件  (以下为 172.16.1.35 的配置) #在默认的配置上,我只修改了4个地方.broker.id = 三个主机172.16.1.35,172.16.1.36,172.16.1.

第5章分布式系统模式 Broker(代理程序)

许多复杂的软件系统运行在多个处理器或分布式计算机上.将软件分布在多台计算机上的原因有多种,例如: 分布式系统可以利用多个 CPU 或一群低成本计算机的计算能力. 某个软件可能仅在特定计算机上可用. 出于安全考虑,软件的各部分可能必须运行在不同的网段上. 一些服务可能是由业务合作伙伴提供的,并且只能通过 Internet 进行访问. 但是,实现分布式系统是不容易的,因为您必须处理诸如并发性.跨平台连接和不可靠网络连接之类的问题. 影响因素 在构建分布式系统时,必须协调下列影响因素: 虽 然分布式系

高级系统架构师必知的经纪人Broker设计

什么是经纪人(Broker)解决方案 每个网络节点的本地Broker 代表系统中的领域对象进行协商并实现进程间通信的功能.远程领域对象的显式接口采用Client Proxy(客户端代理)的方式在其客户端的地址空间实现,并处理所有与Broker 之间的交互. 此外,无论是本地的对象还是远程的,Broker 都为领域对象提供注册其网络位置和所公开的显式接口的功能,并允许它们获取其它所有己注册的领域对象的显式接口. 因此,在分布式系统中,通过使用一系列的Broker,可以从应用的功能中,隔离并封装通信

kafka的三种部署模式

/************* *kafka 0.8.1.1的安装部署 *blog:www.r66r.net *qq:26571864 **************/ 相关部署视频地址:http://edu.51cto.com/course/course_id-2374.html kafka的部署模式为3种模式 1)单broker模式 2)单机多broker模式 (伪集群) 3)多机多broker模式 (真正的集群模式) 第一种模式安装 1.在hadoopdn2机器上面上传kafka文件,并解压到

Kafka单机、集群模式安装详解(二)

本文环境如下: 操作系统:CentOS 6 32位 JDK版本:1.8.0_77 32位 Kafka版本:0.9.0.1(Scala 2.11) 接上篇 Kafka单机.集群模式安装详解(一) 6. 单节点多Broker模式 Kafka使用可以有多种模式,包括单节点单Broker,单节点多Broker,多节点多Broker. 这里我们简单区分一下: 单节点单Broker:在单台机子上,启动了一个Kafka实例(上一篇就是这种模式). 单节点多Broker:在同一台机子上开启多个Kafka(类似H

SOA服务总线设计

背景 基于总线的设计,借鉴了计算机内部硬件组成的设计思想(通过总线传输数据).在分布式系统中,不同子系统之间需要实现相互通信和远程调用,比较直接的方式就是“点对点”的通信方式,但是这样会暴露出一些很明显的问题:系统之间紧密耦合.配置和引用混乱.服务调用关系错综复杂.难以统一管理.异构系统之间存在不兼容等.而基于总线的设计,正是为了解决上述问题.总线则作为中枢系统,提供统一的服务入口,并实现了服务统一管理.服务路由.协议转换.数据格式转换等功能.这样能够将不同系统有效地连接起来,并大大降低了连接数

SOA实践之基于服务总线的设计

在上文中,主要介绍了SOA的概念,什么叫做“服务”,“服务”应该具备哪些特性.本篇中,我将介绍SOA的一种很常见的设计实践--基于服务总线的设计. 基于服务总线的设计 基于总线的设计,借鉴了计算机内部硬件组成的设计思想(通过总线传输数据).在分布式系统中,不同子系统之间需要实现相互通信和远程调用,比较直接的方式就是“点对点”的通信方式,但是这样会暴露出一些很明显的问题:系统之间紧密耦合.配置和引用混乱.服务调用关系错综复杂.难以统一管理.异构系统之间存在不兼容等.而基于总线的设计,正是为了解决上