我的dubbo笔记

DUBBO基本理念

dubbo的设计理念与rmi(Remote Method Invocation)相似,将方法注册到远程服务器,客户端却能够像调用本地方法一样调用服务。

rmi亦为dubbo的一个协议,项目的协议为dubbo

一个典型的 RMI 调用如下图所示:

  1. 服务端向 RMI 注册服务绑定自己的地址(RPC通信协议);
  2. 客户端通过 RMI 注册服务获取目标地址;
  3. 客户端调用本地的 Stub 对象上的方法,和调用本地对象上的方法一致;
  4. 本地存根对象将调用信息打包,通过网络发送到服务端;
  5. 服务端的 Skeleton 对象收到网络请求之后,将调用信息解包;
  6. 然后找到真正的服务对象发起调用,并将返回结果打包通过网络发送回客户端。

 

DUBBO角色

服务提供者(provider):启动时在指定端口上暴露服务,并将服务地址和端口注册到注册中心上。

服务消费者(customer):启动时向注册中心订阅自己感兴趣的服务,以便获得服务提供方的地址列表。

注册中心 (register):负责服务的注册和发现,负责保存服务提供方上报的地址信息,并向服务消费方推送。

监控中心(monitor):负责收集服务提供方和消费方的运行状态,比如服务调用次数、延迟等,用于监控。

运行容器(container):负责服务提供方的初始化、加载以及运行的生命周期管理。

DUBBO原理

中介:zookeeper

Client

调用服务的机器,每个Client启动时,主动与ConfigServer建立Socket长连接,并将自己的IP等相应信息发送给ConfigServer。

Client在使用服务的时候根据服务名称去ConfigServer中获取服务提供者信息(这样ConfigServer就知道某个服务是当前哪几个Client在使用),Client拿到这些服务提供者信息后,与它们都建立连接,后面就可以直接调用服务了,当有多个服务提供者的时候,Client根据一定的规则来进行负载均衡,如轮询,随机,按权重等。

一旦Client使用的服务它对应的服务提供者有变化(服务提供者有新增,删除的情况),ConfigServer就会把最新的服务提供者列表推送给Client,Client就会依据最新的服务提供者列表重新建立连接,新增的提供者建立连接,删除的提供者丢弃连接

Server

真正提供服务的机器,每个Server启动时,主动与ConfigServer建立Scoket长连接,并将自己的IP,提供的服务名称,端口等信息直接发送给ConfigServer,ConfigServer就会收集到每个Server提供的服务的信息。

 

DUBBO的应用

 http://start.dubbo.io 快速生成dubbo应用

http://dubbo.apache.org/en-us/docs/user/quick-start.html dubbo文档

 

DUBBO注册文件

dubbo-provider.xml

dubbo-consumer.xml(controller引用)

 

添加service,需在dubbo-provider.xml将类名注入

<dubbo:service interface="com.pengji.linker.dubbox.services.modules.goodsmanager.service.IMasterCategoryService"

ref="masterCategoryService" protocol="dubbo" />

 

再创建接口及其实现,编写业务逻辑

 

引用service,在dubbo-consumer.xml引入

<dubbo:reference interface="com.pengji.linker.dubbox.services.modules.goodsmanager.service.IMasterCategoryService" id="masterCategoryService" check="false" />

 

这样就可以在controller中调用新建的service了

 

启动DubboProvider

 

再启动consumer

 

参考

https://blog.youkuaiyun.com/he90227/article/details/70157046/

https://blog.youkuaiyun.com/hasser1/article/details/80728623

https://github.com/apache/incubator-dubbo

内容概要:本文档提供了关于“微型车间生产线的设计与生产数据采集试验研究”的毕业设计复现代码,涵盖从论文结构生成、机械结构设计、PLC控制系统设计、生产数据采集与分析系统、有限元分析、进度管理、文献管理和论文排版系统的完整实现。通过Python代码和API调用,详细展示了各个模块的功能实现和相互协作。例如,利用SolidWorks API设计机械结构,通过PLC控制系统模拟生产流程,使用数据分析工具进行生产数据的采集和异常检测,以及利用进度管理系统规划项目时间表。 适合人群:具有机械工程、自动化控制或计算机编程基础的学生或研究人员,尤其是从事智能制造领域相关工作的人员。 使用场景及目标:①帮助学生或研究人员快速搭建和理解微型车间生产线的设计与实现;②提供完整的代码框架,便于修改和扩展以适应不同的应用场景;③作为教学或科研项目的参考资料,用于学习和研究智能制造技术。 阅读建议:此资源不仅包含详细的代码实现,还涉及多个学科领域的知识,如机械设计、电气控制、数据分析等。因此,在学习过程中,建议读者结合实际操作,逐步理解每个模块的功能和原理,并尝试调整参数以观察不同设置下的系统表现。同时,可以参考提供的文献资料,深入研究相关理论和技术背景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值