proxy


职责

  • 接收上游pchan中output管道中的消息
  • 将不同的消息种类发送到对应的消息队列对象实体
  • 管理消息队列实体的对象初始化

源码实现

源码实现请见mq.go

结构

  1. type ProxyManager struct {
  2. pchan *internal.PChan
  3. server *internal.Server
  4. input <-chan []byte
  5. fallback chan<- []byte
  6. mqMap map[string]MQ
  7. quits []chan struct{}
  8. }
  • pchan和server分别是pchan和server对象
  • input和fallback分别是pchan的OutPut和Input管道
  • mqMap是消息队列对象映射表
  • quits退出信号

如何实现一个新的消息队列类型?

  • 实现MQ接口
  1. type MQ interface {
  2. Input() chan<- []byte
  3. Close()
  4. }
  • 实现Register和Init方法