zoukankan      html  css  js  c++  java
  • go-micro selector 选择器

      selecor是一种基于registry的选择服务节点和标记它们状态的的机制,有Random、RoundRobin两种策略,代码如下:

    // Selector builds on the registry as a mechanism to pick nodes
    // and mark their status. This allows host pools and other things
    // to be built using various algorithms.
    type Selector interface {
    	Init(opts ...Option) error
    	Options() Options
    	// Select returns a function which should return the next node
    	Select(service string, opts ...SelectOption) (Next, error)
    	// Mark sets the success/error against a node
    	Mark(service string, node *registry.Node, err error)
    	// Reset returns state back to zero for a service
    	Reset(service string)
    	// Close renders the selector unusable
    	Close() error
    	// Name of the selector
    	String() string
    }
    
    // Next is a function that returns the next node
    // based on the selector's strategy
    type Next func() (*registry.Node, error)
    
    // Filter is used to filter a service during the selection process
    type Filter func([]*registry.Service) []*registry.Service
    
    // Strategy is a selection strategy e.g random, round robin
    type Strategy func([]*registry.Service) Next
    

      

      cacheSelector:

      1、以本地缓存作为服务节点信息的存储,可以快速提供节点信息

      2、字段 ttl 作为缓存时间,默认是1分钟;过期了则重新去registry获取

    you are the best!
  • 相关阅读:
    Python+Selenium学习笔记8
    Python+Selenium学习笔记7
    Python+Selenium学习笔记6
    Python+Selenium学习笔记5
    Python+Selenium学习笔记4
    java类为什么是单继承。类的继承,实现接口。
    类,对象之间的关系
    java 向上转型 向下转型
    jsp 中 request.getHeader() 相关详细
    MyEclipse使用经验总结
  • 原文地址:https://www.cnblogs.com/linguoguo/p/14677362.html
Copyright © 2011-2022 走看看