Pigeon发布流程
来源:互联网 发布:淘宝开零食店赚钱吗 编辑:程序博客网 时间:2024/05/23 02:03
一.发布入口
bean id="" class="com.dianping.dpsf.spring.ServiceRegistry" init-method="init" lazy-init="false"> <property name="port" value="4000"/> <property name="services"> <map> <entry key="" value-ref=""/> <entry key="" value-ref=""/> </map> </property>
如果需要发布pigeon服务,那么通过上面的配置文件你可以完成这样一件事情
这里简单介绍下配置参数
bean id 是服务发布之后,容器通过id调用服务class 是服务注册的主类map 则是暴露的服务列表
二.服务配置
ServiceRegistry 初始化方法
两个关键的对象ServerConfig , ProviderConfig
ServerConfig主要是配置服务,例如 端口号,工作线程数等与具体服务无关的信息
ProviderConfig则是提供具体的服务信息,一个ProviderConfig对象对应着上面的bean id ,并持有ServerConfig对象
注意点:ProviderConfig中会持有一个serviceInterface对象,也就是说服务暴露只允许单接口,如果你的服务实现了两个接口,那么最终暴露出去的也只能是一个接口。
配置完成后就到了服务发布的流程
三.服务发布
Pigeon的服务发布是通过PublishPolicy这一对象完成
发布主流程
3.1ServiceMethodFactory 本地方法缓存
通过ServiceMethodFactory完成服务方法和方法需要的参数列表的缓存
上面注意到ingoreMethods,因为Java中所有对象都是继承Object对象的,所以存在一些toString等无用方法,通过ignoreMethods方法过滤掉
3.2服务提供
ProviderBootStrap.startup()
通过启动一个Netty服务器,每一个服务通过对应一个Server ,每个Server对应一个ProviderConfig。
ProviderBootStrap 变量
因为pigeon是基于http的所以这里是httpServer ; serversMap则是name,server的缓存
3.3服务发布
主要通过curatorClient来实现服务的注册 (CuratorClient是zk的一个辅助库),通过zk集群中注册节点来完成服务的注册
- Pigeon发布流程
- pigeon服务
- 发布流程
- 发布流程
- 【p2】·python中嵌套列表list元素输出·模块封装·发布上传(pigeon详细说)
- Pigeon 线程池设计
- Pigeon 工具类ExtensionLoader
- Pigeon中的Netty应用
- Pigeon中的负载均衡
- Pigeon中的流量限制
- JBPM发布流程、查询流程、删除流程
- IIS 发布网站流程
- IIS 发布网站流程
- 关于JPDL流程发布
- 简述发布管理流程
- 软件发布的流程
- jbpm流程发布
- Symbian发布程序流程
- RecyclerView的使用、res下新建菜单menu-main.xml
- Slim使用详解
- 团体程序设计天梯赛L2-008 最长对称子串
- 第二章 线性表
- Spark RPC之Netty启动
- Pigeon发布流程
- JavaScript读取XML文件
- 【面试题】剑指offer 7
- shell脚本之-if流程控制语句和for循环语句的使用
- 鸟哥的linux私房菜学习笔记《一》操作系统基础
- DOM方式进行XML文件解析
- log4j使用小结
- Unity3D开发之Hashtable转Json
- Linux基本命令