zoukankan      html  css  js  c++  java
  • 简历的分布式

    1,介绍一下项目,前端

      我个人的技术栈是比较偏向后端,对前端不是太精通,当时的前端是根据之前他们写好的页面大概搬过来再去修改其他细节,或者是请教下当时的同事,

      在讲到node,node在项目中是充当mvc的c层,也就是controller层,负责处理get请求和调用基于dubbox开放出来的restful的api接口

      dubbo一款,开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

      一个应用可以解耦拆分为几个应用,比如一个商城应用可以拆分为订单,商品,会员这些模块,每个模块独立部署,运行在不同的机器上,有着不同的内存

      通过dubbo上的dubbo协议上,服务消费方把方法、参数编码通过网络传输,在zookeeper注册中心找到对应的服务提供方,解码找到服务,完成运算,再把结果编码通过网络传输回来

      (题外:注册中心:服务消费者需要提供服务提供者的IP以及端口。服务一台机器不够,要再添加一台,这个时候就要告诉调用者我现在有两个ip了,你们要轮询调用来实现负载均衡结果某天一台机器挂了,调用者发现服务有一半不可用,他又只能手动修改代码来删除       挂掉那台机器的ip。zookeeper作为服务中心自动化地替我们实现服务自动注册与发现功能!zookeeper提供了“心跳检测”功能,它会定时向各个服务提供者发送一个请求(实际上建立的是一个 Socket 长连接),如果长期没有响应,服务中心就认为该服务提供者已经“挂         了”,并将其剔除)

      不过dubbo只能完成同语言之间的rpc调用,对于要开放出去的接口,就要用dubbo改造的dubbox,可以序列化为json串数据格式,开发api供node来调用。

    2,dubbo相关的netty方面

      dubbo就是基于netty的框架,netty他首先封装了Java原生的nio,是一个异步和数据驱动的网络编程框架

      dubbo 刚刚使用的消费者,服务提供者都是基于netty开发,消费者使用 NettyClient,提供者使用 NettyServer,消费者和服务提供者启动的时候,会解析spring相关的xml,spring容器启动的时候,会帮我们启动一个netty应用,完成绑定端口的工作。当调用远程方法的时候,将数据通过 dubbo 协议编码发送到 NettyServer,然后 NettyServer 收到数据后解码,在一条责任链上相关的channelhandle处理,并调用本地方法,并返回数据,完成一次完美的 RPC 调用。在传统的绑定ip和端口的方式上,加上了zookeeper作为注册中心解耦(然后说说zk

      

  • 相关阅读:
    javascript前端如何使用google-protobuf
    【Linux】Linux中常用操作命令
    MyEclipse 安装svn 插件步骤详情
    MultipartFile(文件的上传)--CommonsMultipartResolver
    oracle sql 获取本季度所有月份,上季度所有月份
    git与github安装、配置
    Java使用JaxWsDynamicClientFactory和HttpURLConnection两种方式调取webservice的接口
    三级联动
    Excel的两种导出入门方法(JAVA与JS)
    页面设置遮罩层
  • 原文地址:https://www.cnblogs.com/vhyc/p/9788721.html
Copyright © 2011-2022 走看看