rpc

Pomelo术语解释

烈酒焚心 提交于 2020-02-16 03:55:03
gate服务器 一个应用的gate服务器,一般不参与rpc调用,也就是说其配置项里可以没有port字段,仅仅有clientPort字段,它的作用是做前端的负载均衡。客户端往往首先向gate服务器发出请求,gate会给客户端分配具体的connector服务器。具体的分配策略一般是根据客户端的某一个key做hash得到connector的id,这样就可以实现各个connector服务器的负载均衡。 connector服务器 connector服务器接收客户端的连接请求,创建与客户端的连接,维护客户端的session信息。同时,接收客户端对后端服务器的请求,按照用户配置的路由策略,将请求路由给具体的后端服务器。当后端服务器处理完请求或者需要给客户端推送消息的时候,connector服务器同样会扮演一个中间角色,完成对客户端的消息发送。connector服务器会同时拥有clientPort和port,其中clientPort用来监听客户端的连接,port端口用来给后端提供服务。 应用逻辑服务器 gate服务器和connector服务器又都被称作前端服务器,应用逻辑服务器是后端服务器,它完成实际的应用逻辑,提供服务给客户端,当然客户端的请求是通过前端服务器路由过来的。后端服务器之间也会通过rpc调用而有相互之间的交互。由于后端服务器不会跟客户端直接有连接

关于dubbo扩展点的一点分析

杀马特。学长 韩版系。学妹 提交于 2020-02-14 23:28:07
扩展点能力 能load class,这个class除了顶层接口class(在ExtensionLoader中对应type字段),还能load各实现类的class。 能创建instance。 能指定这个顶层接口的默认实现类的beanName。做法参见SPI注解部分。 能把创建出来的instance的字段注入。set开头的且有一个参数且是public的,注入。 能adaptive。根据url上对该接口配置的实现类,将该接口的事情交给这个实现类去做(我更多的理解成委托)。此能力采用代码生成再编译的方式。代码生成示例可以参见adaptive类代码示例。 adaptive只会生成一个adaptive实现类。生成代码的逻辑在com.alibaba.dubbo.common.extension.ExtensionLoader.createAdaptiveExtensionClassCode() 能wrapper。wrapper是指这个顶层接口的实现类的构造函数的入参是这个顶层接口类型。那么这个实现类称之为wrapper类,可以有多个,构建instance时不分多个之间的顺序。因为用来给构造函数传参的instance是这个顶层类的默认实现。比如com.alibaba.dubbo.rpc.Protocol接口,有实现类 com.alibaba.dubbo.rpc.protocol.injvm

RPC服务框架dubbo(五):dubbo-admin和dubbo-monitor的安装

混江龙づ霸主 提交于 2020-02-13 15:49:12
一、安装dubbo-admin 去这里 http://download.csdn.net/download/u013081610/10044744 下载dubbo-admin.war 部署dubbo-admin管理端,将dubbo-admin-2.5.6.war放置到准备好的tomcat目录 修改WEB-INF下dubbo.properties 主要是修改zookeeper的地址 dubbo.registry.address=zookeeper://127.0.0.1:2181 注意,这里还可以连接多个zookeeper,用逗号分隔例如: dubbo.registry.address=zookeeper://127.0.0.1:2181,192.168.0.4:2181 运行tomcat 输入地址:http://127.0.1:8080/dubbo-admin-2.5.6 默认登录账户和密码均为:root 服务页面 都这里,dubbox的后台管理端就配置成功了 二、安装dubbo-monitor 去这里 http://download.csdn.net/download/u013081610/10044756 下载dubbo-monitor 工具是zip压缩文档,解压后找到dubbo.properties文件,修改里面的参数符合自己的, 在去bin目录里start即可

Dubbo学习笔记

杀马特。学长 韩版系。学妹 提交于 2020-02-12 15:49:05
目录 一、分布式基本知识 1.1) 架构演变 1.2)、分布式基本概念 二、RPC简介 2.1) RPC概念 2.2) RPC核心模块 三、Dubbo原理简介 3.1) Dubbo简介 3.2) 核心功能 3.3) 原理简介 四、Dubbo安装部署 4.1) Zookeeper安装 4.2) Dubbo监控平台部署 一、分布式基本知识 1.1) 架构演变 先给出dubbo官方的图,图片表示了架构的演变。然后我说一下自己的理解。 应用最开始是单体应用,即一个应用包括了所有应用模块。 随后就是垂直应用架构,也就是将系统拆分为多个应用模块。 随后就是RPC架构,之前的垂直应用架构其实可以说是在一个进程内的通讯,而RPC就是一种进步,RPC是进程之间的通讯,远程过程调用就是这么来的。 有了RPC之后,虽然可以实现进程之间的通讯,但是服务器集群后的服务器资源利用有些时候容易造成浪费,比如有个系统,一般情况都是不能很好地预估需要分配多少机器的,很容易造成一种情况就是业务访问很频繁的模块分配了不足的机器,而访问不是很频繁的模块分配了太多的机器,这种情况就不能实现资源的很好利用,所以针对这种情况就有了SOA(Service Oriented Architecture)的出现,SOA其实就是一个服务注册中心,可以实现资源调度,合理地分配资源,提高资源调度,是一个治理中心。 1.2)、分布式基本概念

RPC简单设计方案

蓝咒 提交于 2020-02-12 12:14:49
服务端: 启动后,等待客户端发来信息,收到信息后进行处理,返回结果。 客户端: 主线程中发起一次RPC,那么就将信息封装成一个任务,提交到线程池,阻塞等待结果。 线程池中工作线程执行任务,发送信息,等待netty线程收到结果、唤醒自己。 工作线程完成任务,返回结果 所以,一条消息应该包括要调用的类,方法,参数。而一个完善的方案还应该包括:调用者信息,超时参数等诸多信息,而服务端也应该新建线程池来处理这些信息,去调用实现的方法。 这里只是想熟悉大致原理和流程。 下一篇将来实现这个简单模型,同时用上自己写的线程池试验一下。 来源: https://www.cnblogs.com/AllenDuke/p/12298334.html

java十年技术栈[总结复习用]

让人想犯罪 __ 提交于 2020-02-12 05:09:23
以下摘自http://www.tvtv223.com/so/8/default/8.html#36-数据库的分库分表mycat java技术栈 参考了众多资料,这里就不再详细列举了,可以自行去搜索 1 java基础: 1.1 算法 1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序 1.2 二叉查找树、红黑树、B树、B+树、LSM树(分别有对应的应用,数据库、HBase) 1.3 BitSet解决数据重复和是否存在等问题 1.2 基本 2.1 字符串常量池的迁移 2.2 字符串KMP算法 2.3 equals和hashcode 2.4 泛型、异常、反射 2.5 string的hash算法 2.6 hash冲突的解决办法:拉链法 2.7 foreach循环的原理 2.8 static、final、transient等关键字的作用 2.9 volatile关键字的底层实现原理 2.10 Collections.sort方法使用的是哪种排序方法 2.11 Future接口,常见的线程池中的FutureTask实现等 2.12 string的intern方法的内部细节,jdk1.6和jdk1.7的变化以及内部cpp代码StringTable的实现 1.3 设计模式 单例模式 工厂模式 装饰者模式 观察者设计模式

java技术栈

為{幸葍}努か 提交于 2020-02-12 04:52:07
java技术栈 参考了众多资料,这里就不再详细列举了,可以自行去搜索 1 java基础: 1.1 算法 1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序 1.2 二叉查找树、红黑树、B树、B+树、LSM树(分别有对应的应用,数据库、HBase) 1.3 BitSet解决数据重复和是否存在等问题 1.2 基本 2.1 字符串常量池的迁移 2.2 字符串KMP算法 2.3 equals和hashcode 2.4 泛型、异常、反射 2.5 string的hash算法 2.6 hash冲突的解决办法:拉链法 2.7 foreach循环的原理 2.8 static、final、transient等关键字的作用 2.9 volatile关键字的底层实现原理 2.10 Collections.sort方法使用的是哪种排序方法 2.11 Future接口,常见的线程池中的FutureTask实现等 2.12 string的intern方法的内部细节,jdk1.6和jdk1.7的变化以及内部cpp代码StringTable的实现 1.3 设计模式 单例模式 工厂模式 装饰者模式 观察者设计模式 ThreadLocal设计模式 。 1.4 正则表达式 4.1 捕获组和非捕获组 4.2 贪婪,勉强,独占模式 1.5 java内存模型以及垃圾回收算法

Google10年Java技术栈

旧时模样 提交于 2020-02-12 04:27:43
java技术栈 参考了众多资料,这里就不再详细列举了,可以自行去搜索 1 java基础: 1.1 算法 1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序 1.2 二叉查找树、红黑树、B树、B+树、LSM树(分别有对应的应用,数据库、HBase) 1.3 BitSet解决数据重复和是否存在等问题 1.2 基本 2.1 字符串常量池的迁移 2.2 字符串KMP算法 2.3 equals和hashcode 2.4 泛型、异常、反射 2.5 string的hash算法 2.6 hash冲突的解决办法:拉链法 2.7 foreach循环的原理 2.8 static、final、transient等关键字的作用 2.9 volatile关键字的底层实现原理 2.10 Collections.sort方法使用的是哪种排序方法 2.11 Future接口,常见的线程池中的FutureTask实现等 2.12 string的intern方法的内部细节,jdk1.6和jdk1.7的变化以及内部cpp代码StringTable的实现 1.3 设计模式 单例模式 工厂模式 装饰者模式 观察者设计模式 ThreadLocal设计模式 。。。 1.4 正则表达式 4.1 捕获组和非捕获组 4.2 贪婪,勉强,独占模式 1.5

java技术栈

99封情书 提交于 2020-02-12 04:22:24
1 java基础: 1 算法 1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序 1.2 二叉查找树、红黑树、B树、B+树 1.3 BitSet解决数据重复和是否存在等问题 2 基本 2.1 字符串常量池的迁移 jdk1.6,string in PermGen永久代,方法区,在运行时大小不可扩展, jdk1.7,string in heap,-XX:StringTableSize=1009(default),WeakHashMap<String, WeakReference<String>> jdk1.8,string in heap,default table size 25-50K 2.2 字符串KMP算法 2.3 equals和hashcode 2.4 泛型、异常、反射 2.5 string的hash算法 2.6 hash冲突的解决办法:开放定址法和拉链法 2.7 foreach循环的原理 2.8 static、final、transient等关键字的作用 2.9 volatile关键字的底层实现原理 2.10 Collections.sort方法使用的是哪种排序方法 2.11 Future接口,常见的线程池中的FutureTask实现等 2.12 string的intern方法的内部细节,jdk1.6和jdk1

Java 技术栈

荒凉一梦 提交于 2020-02-12 04:20:20
朋友圈看到的,转发一下。 1 java基础: 1.1 算法 1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序 1.2 二叉查找树、红黑树、B树、B+树、LSM树(分别有对应的应用,数据库、HBase) 1.3 BitSet解决数据重复和是否存在等问题 1.2 基本 2.1 字符串常量池的迁移 2.2 字符串KMP算法 2.3 equals和hashcode 2.4 泛型、异常、反射 2.5 string的hash算法 2.6 hash冲突的解决办法:拉链法 2.7 foreach循环的原理 2.8 static、final、transient等关键字的作用 2.9 volatile关键字的底层实现原理 2.10 Collections.sort方法使用的是哪种排序方法 2.11 Future接口,常见的线程池中的FutureTask实现等 2.12 string的intern方法的内部细节,jdk1.6和jdk1.7的变化以及内部cpp代码StringTable的实现 1.3 设计模式 单例模式 工厂模式 装饰者模式 观察者设计模式 ThreadLocal设计模式 。。。 1.4 正则表达式 4.1 捕获组和非捕获组 4.2 贪婪,勉强,独占模式 1.5 java内存模型以及垃圾回收算法 5.1 类加载机制,也就是双亲委派模型