Dubbo框架学习

  • PRC:远程过程调用,是一个计算机的通信协议,需要运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外的为整个交互过程编程。面向对象就是远程方法调用;例如http,tcp、socket都是RPC协议;

  • dubbo特性
    • 面向接口代理的高性能RPC调用:提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。
    • 服务自动注册与发现:支持多种注册中心服务,服务实例上下线实时感知。
    • 运行期流量调度:内置条件、脚本等路由策略,通过配置不同的路由规则,轻松实现灰度发布,同机房优先等功能。
    • 智能负载均衡:内置多种负载均衡策略,智能感知下游节点健康状况,显著减少调用延迟,提高系统吞吐量。
    • 高度可扩展能力:遵循微内核+插件的设计原则,所有核心能力如Protocol、Transport、Serialization被设计为扩展点,平等对待内置实现和第三方实现。
    • 可视化的服务治理与运维:提供丰富服务治理、运维工具:随时查询服务元数据、服务健康状态及调用统计,实时下发路由策略、调整配置参数。
    • 注:
      • 传统负载均衡:当使用nginx做负载均衡时,当大量的服务器加入集群当中时,nginx需要修改配置,加入新加入集群的服务器的ip地址,人工成本较大;
      • zookeeper:当作注册中心,将所有的服务的服务器自动注册在注册中心,客户端进行负载均衡(随机,hash,轮询);
      • Service mesh:不需要修改业务代码,将一些调用的功能单独出来;
      • dubbo协议,基于netty实现,不同的协议适应不同的适用场景
      • 服务路由:不同地区节点的流量切换;
  • duobbo
    • Provider模块:提高API,实现API,暴露(启动tomcat,nettyServer),服务本地注册,服务远程注册中心注册
      • api 抽象接口
      • impl 具体实现
      • Provider

        • 1、本地注册 {服务名:实现类}
          • LocalRegister类
            • 类的具体方法:

            • 使用:
        • 2、远程注册 {服务名:List<URL>}---------------对应Registry模块
        • 3、启动tomcat
    • Consumer模块:通过接口名从注册中心获取服务地址和调用服务;
      • 使用动态代理增强,使用接口,直接调用其实现类的具体方法

    • Registry模块:保存服务配置信息(服务名:List<URL>)
      • RemoteMapRegister类
    • RpcProtocol模块:基于Tomcat的HttpProtocol、基于Netty的DubboProtocol
      • http
        • HttpService:tomcat启动 +Servelet

          • 在Tomcat中加入Servlet
            • tomcat.addServlet(contextPath,"dispatcher",new DispatcherServlet())
            • context.addServletMappingDecoded("/*", "dispatcher") 所有的前端请求都以了被Servlet接收到,走DispatcherServlet中的service方法,然后被HttpServerHandler.handler进行处理
        • DispatcherServlet需要继承HttpServlet,重写service(HttpServletRequset req,HttpServiceletResponse resp)方法-----new HttpServerHandler().handler(req,resp)
        • HttpServerHandler------handler(HttpServletRequset req,HttpServiceletResponse resp)//处理请求和返回结果
        • HttpClient(通过http协议发送调用信息的客户端,并接受HttpServerHandler返回的数据)
    • FrameWork模块:框架整合
      • 代理工程类(对于接口,直接调用其实现的具体方法)
      • 定义URL类:(schema//hostname:port)
      • Invocation类(HttpClient需要发送的信息组合的对象)网络传输需要实现序列化接口
  • dubbo的协议扩展
    • 将所有协议的具体方法共同方法抽象出一个接口
    • 更改VM参数,使用工厂类进行自动选择创建相应的对象;
    • 若要加入新的协议类型,使用java spi机制:通过ServiceLoader 加载接口对应的实现类,需要在resources中建立文件夹META-INF,建立services文件,建立接口全路径名文件 (例如framework.Protocol)去指定具体实现类;

    • dubbo spi------引入的实现类需要其他接口的具体实现类(依赖注入和切面)<更加高效>-----------注册中心和协议的调用选择
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值