《框架设计原则》
梁飞 (2012-03)
1
课程说明
• 内容:
– 主要讲在Dubbo设计过程中积累的一些经验,
– 以及一些设计理论在Dubbo中的应用,
– 并且只讲实践原则,不谈设计模式。
• 目的:
– 希望给其它产品的设计起一些借鉴作用。
2
大纲
模块分包原则
框架扩展原则
领域划分原则
接口分离原则
组件协作原则
功能演进原则
3
4
RPC
Remoting
Business
refer
received
request
connect
bind
connect bind
send
reply
invoke
invoke
encode
merge
write
read
getProxy
getInvoker
export refer
decode
serialize
select
list
register
getExecutor
notify
getRegistry
notify
list
invoke
invoke
Provider Consumer
Exporter
Interface
Proxy
Filter
Invoker
Invoker
Filter
Implement
Client
Server
Transporter
LoadBalance
Protocol
NotifyListener
Registry
Protocol
Registry
Exchange
Service
Serialization
Inherit
Init
Dubbo Framework
Depend
DubboInvoker DubboProtocol
DubboExporter
Interface Class
ProxyFactory Invoker
Proxy
ReferenceConfig ServiceConfig
Config
Call
Cluster
Codec
ObjectOutput ObjectInput
Exchanger
Transport
Serialize
Directory
Cluster
ThreadPool
RegistryProtocol
User API
Contributor SPI
RegistryFactory
RegistryDirectory
deserialize
export
invoke
invoke
invoke
export
ChannelHandler
ExchangeHandler
Router
RouterFactory
Monitor
Monitor MonitorFactory
route
MonitorFilter
ExchangeSerever ExchangeClient
count
refer
received
getMonitor
Start
get
export
invoke
invoke
new
subscribe
Dispatcher
getRouter
dispatch
DubboHandler
merge
getRouter
getRegistry
getMonitor
wrap
connect
connect
bind
bind
Dubbo的模块包
5