mirror of
https://github.com/duanhf2012/origin.git
synced 2026-05-18 15:07:31 +08:00
精简事件通知
This commit is contained in:
@@ -54,7 +54,6 @@ type Cluster struct {
|
|||||||
|
|
||||||
discoveryInfo DiscoveryInfo //服务发现配置
|
discoveryInfo DiscoveryInfo //服务发现配置
|
||||||
rpcMode RpcMode
|
rpcMode RpcMode
|
||||||
//masterDiscoveryNodeList []NodeInfo //配置发现Master结点
|
|
||||||
globalCfg interface{} //全局配置
|
globalCfg interface{} //全局配置
|
||||||
|
|
||||||
localServiceCfg map[string]interface{} //map[serviceName]配置数据*
|
localServiceCfg map[string]interface{} //map[serviceName]配置数据*
|
||||||
@@ -70,7 +69,6 @@ type Cluster struct {
|
|||||||
|
|
||||||
rpcEventLocker sync.RWMutex //Rpc事件监听保护锁
|
rpcEventLocker sync.RWMutex //Rpc事件监听保护锁
|
||||||
mapServiceListenRpcEvent map[string]struct{} //ServiceName
|
mapServiceListenRpcEvent map[string]struct{} //ServiceName
|
||||||
mapServiceListenDiscoveryEvent map[string]struct{} //ServiceName
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetCluster() *Cluster {
|
func GetCluster() *Cluster {
|
||||||
@@ -228,8 +226,6 @@ func (cls *Cluster) Init(localNodeId string, setupServiceFun SetupServiceFun) er
|
|||||||
}
|
}
|
||||||
service.RegRpcEventFun = cls.RegRpcEvent
|
service.RegRpcEventFun = cls.RegRpcEvent
|
||||||
service.UnRegRpcEventFun = cls.UnRegRpcEvent
|
service.UnRegRpcEventFun = cls.UnRegRpcEvent
|
||||||
service.RegDiscoveryServiceEventFun = cls.RegDiscoveryEvent
|
|
||||||
service.UnRegDiscoveryServiceEventFun = cls.UnReDiscoveryEvent
|
|
||||||
|
|
||||||
err = cls.serviceDiscovery.InitDiscovery(localNodeId, cls.serviceDiscoveryDelNode, cls.serviceDiscoverySetNodeInfo)
|
err = cls.serviceDiscovery.InitDiscovery(localNodeId, cls.serviceDiscoveryDelNode, cls.serviceDiscoverySetNodeInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -322,23 +318,12 @@ func (cls *Cluster) NotifyAllService(event event.IEvent){
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (cls *Cluster) TriggerDiscoveryEvent(bDiscovery bool, nodeId string, serviceName []string) {
|
func (cls *Cluster) TriggerDiscoveryEvent(bDiscovery bool, nodeId string, serviceName []string) {
|
||||||
cls.rpcEventLocker.Lock()
|
var eventData service.DiscoveryServiceEvent
|
||||||
defer cls.rpcEventLocker.Unlock()
|
eventData.IsDiscovery = bDiscovery
|
||||||
|
eventData.NodeId = nodeId
|
||||||
for sName, _ := range cls.mapServiceListenDiscoveryEvent {
|
eventData.ServiceName = serviceName
|
||||||
ser := service.GetService(sName)
|
|
||||||
if ser == nil {
|
|
||||||
log.Error("cannot find service",log.Any("services",serviceName))
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
var eventData service.DiscoveryServiceEvent
|
|
||||||
eventData.IsDiscovery = bDiscovery
|
|
||||||
eventData.NodeId = nodeId
|
|
||||||
eventData.ServiceName = serviceName
|
|
||||||
ser.(service.IModule).NotifyEvent(&eventData)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
cls.NotifyAllService(&eventData)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cls *Cluster) GetLocalNodeInfo() *NodeInfo {
|
func (cls *Cluster) GetLocalNodeInfo() *NodeInfo {
|
||||||
@@ -361,25 +346,6 @@ func (cls *Cluster) UnRegRpcEvent(serviceName string) {
|
|||||||
cls.rpcEventLocker.Unlock()
|
cls.rpcEventLocker.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func (cls *Cluster) RegDiscoveryEvent(serviceName string) {
|
|
||||||
cls.rpcEventLocker.Lock()
|
|
||||||
if cls.mapServiceListenDiscoveryEvent == nil {
|
|
||||||
cls.mapServiceListenDiscoveryEvent = map[string]struct{}{}
|
|
||||||
}
|
|
||||||
|
|
||||||
cls.mapServiceListenDiscoveryEvent[serviceName] = struct{}{}
|
|
||||||
cls.rpcEventLocker.Unlock()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (cls *Cluster) UnReDiscoveryEvent(serviceName string) {
|
|
||||||
cls.rpcEventLocker.Lock()
|
|
||||||
delete(cls.mapServiceListenDiscoveryEvent, serviceName)
|
|
||||||
cls.rpcEventLocker.Unlock()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func HasService(nodeId string, serviceName string) bool {
|
func HasService(nodeId string, serviceName string) bool {
|
||||||
cluster.locker.RLock()
|
cluster.locker.RLock()
|
||||||
defer cluster.locker.RUnlock()
|
defer cluster.locker.RUnlock()
|
||||||
|
|||||||
@@ -236,7 +236,6 @@ func (processor *EventProcessor) castEvent(event IEvent){
|
|||||||
|
|
||||||
eventProcessor,ok := processor.mapListenerEvent[event.GetEventType()]
|
eventProcessor,ok := processor.mapListenerEvent[event.GetEventType()]
|
||||||
if ok == false || processor == nil{
|
if ok == false || processor == nil{
|
||||||
log.Debug("event is not listen",log.Int("event type",int(event.GetEventType())))
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -368,12 +368,12 @@ func (s *Service) UnRegNatsConnListener() {
|
|||||||
func (s *Service) RegDiscoverListener(discoveryServiceListener rpc.IDiscoveryServiceListener) {
|
func (s *Service) RegDiscoverListener(discoveryServiceListener rpc.IDiscoveryServiceListener) {
|
||||||
s.discoveryServiceLister = discoveryServiceListener
|
s.discoveryServiceLister = discoveryServiceListener
|
||||||
s.RegEventReceiverFunc(event.Sys_Event_DiscoverService,s.GetEventHandler(),s.OnDiscoverServiceEvent)
|
s.RegEventReceiverFunc(event.Sys_Event_DiscoverService,s.GetEventHandler(),s.OnDiscoverServiceEvent)
|
||||||
RegDiscoveryServiceEventFun(s.GetName())
|
RegRpcEventFun(s.GetName())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) UnRegDiscoverListener() {
|
func (s *Service) UnRegDiscoverListener() {
|
||||||
s.UnRegEventReceiverFunc(event.Sys_Event_DiscoverService,s.GetEventHandler())
|
s.UnRegEventReceiverFunc(event.Sys_Event_DiscoverService,s.GetEventHandler())
|
||||||
UnRegDiscoveryServiceEventFun(s.GetName())
|
UnRegRpcEventFun(s.GetName())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) PushRpcRequest(rpcRequest *rpc.RpcRequest) error{
|
func (s *Service) PushRpcRequest(rpcRequest *rpc.RpcRequest) error{
|
||||||
|
|||||||
@@ -14,9 +14,6 @@ type RegDiscoveryServiceEventFunType func(serviceName string)
|
|||||||
var RegRpcEventFun RegRpcEventFunType
|
var RegRpcEventFun RegRpcEventFunType
|
||||||
var UnRegRpcEventFun RegRpcEventFunType
|
var UnRegRpcEventFun RegRpcEventFunType
|
||||||
|
|
||||||
var RegDiscoveryServiceEventFun RegDiscoveryServiceEventFunType
|
|
||||||
var UnRegDiscoveryServiceEventFun RegDiscoveryServiceEventFunType
|
|
||||||
|
|
||||||
func init(){
|
func init(){
|
||||||
mapServiceName = map[string]IService{}
|
mapServiceName = map[string]IService{}
|
||||||
setupServiceList = []IService{}
|
setupServiceList = []IService{}
|
||||||
|
|||||||
Reference in New Issue
Block a user