- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 聊聊storagetapper的server
序本文主要研究一下storagetapper的serverserverstoragetapper/server/server.govar server *http.Servervar mutex = sync.Mutex{}func init() { http.HandleFunc("/health", healthCheck) http.HandleFunc("/schema", schemaCmd) http.HandleFunc("/cluster", clusterInfoCmd
2021-02-28 23:49:42 116
原创 聊聊nacos-coredns-plugin的UDPServer
序本文主要研究一下nacos-coredns-plugin的UDPServerUDPServernacos-coredns-plugin/nacos/udp_server.gotype UDPServer struct { port int host string vipClient *NacosClient}UDPServer定义了port、host、vipClient属性StartServernacos-coredns-plugin/nacos/udp_server.gof
2021-02-27 22:02:11 275
原创 聊聊nacos-coredns-plugin的Domain
序本文主要研究一下nacos-coredns-plugin的DomainDomainnacos-coredns-plugin/nacos/nacos_domain.gotype Domain struct { Name string `json:"dom"` Clusters string CacheMillis int64 LastRefMillis int64 Instances []Instance `json:"hosts"` Env string TTL int}fu
2021-02-25 23:35:11 316
原创 聊聊gost的DeltaCompare
序本文主要研究一下gost的DeltaCompareDeltaComparegost/math/compare.go// equivalent to math.Abs(expected - actual) <= deltafunc DeltaCompareFloat64(expected float64, actual float64, delta float64) bool { if expected > actual { return expected-actual <
2021-02-24 23:48:35 74
原创 聊聊gost的HashSet
序本文主要研究一下gost的HashSetHashSetgost/container/set/hashset.govar itemExists = struct{}{}type HashSet struct { Items map[interface{}]struct{}}func NewSet(values ...interface{}) *HashSet { set := &HashSet{Items: make(map[interface{}]struct{})} if
2021-02-23 23:28:21 125
原创 聊聊gost的CountWatch
序本文主要研究一下gost的CountWatchCountWatchgost/time/count.gotype CountWatch struct { start time.Time}func (w *CountWatch) Start() { var t time.Time if t.Equal(w.start) { w.start = time.Now() }}func (w *CountWatch) Reset() { w.start = time.Now()}
2021-02-22 23:27:11 109
原创 聊聊gost的GenericTaskPool
序本文主要研究一下gost的GenericTaskPoolGenericTaskPoolgost/sync/task_pool.go// GenericTaskPool represents an generic task pool.type GenericTaskPool interface { // AddTask wait idle worker add task AddTask(t task) bool // AddTaskAlways add task to queues or d
2021-02-21 10:48:27 105
原创 聊聊gost的ObjectPool
序本文主要研究一下gost的ObjectPoolObjectPoolgost/bytes/bytes_buffer_pool.go// Pool is bytes.Buffer Pooltype ObjectPool struct { New New pool sync.Pool}func NewObjectPool(n New) *ObjectPool { return &ObjectPool{New: n}}// take returns *bytes.Buffer
2021-02-20 22:18:21 89
原创 聊聊gost的Pager
序本文主要研究一下gost的PagerPagergost/hash/page/pager.go// Pager is the abstraction for pagination usage.type Pager interface { // GetOffset will return the offset GetOffset() int // GetPageSize will return the page size GetPageSize() int // GetTotalPa
2021-02-19 23:20:51 125
原创 聊聊gost的GoUnterminated
序本文主要研究一下gost的GoUnterminatedGoUnterminatedgost/runtime/goroutine.go// GoUnterminated is used for which goroutine wanna long live as its process.// @period: sleep time duration after panic to defeat @handle panic so frequently. if it is not positive,/
2021-02-18 23:52:00 95 1
原创 聊聊gost的GoSafely
序本文主要研究一下gost的GoSafelyGoSafelygost/runtime/goroutine.gofunc GoSafely(wg *sync.WaitGroup, ignoreRecover bool, handler func(), catchFunc func(r interface{})) { if wg != nil { wg.Add(1) } go func() { defer func() { //...... }() handler() }(
2021-02-17 10:27:40 133
原创 聊聊dubbo-go-proxy的ZookeeperRegistryLoad
序本文主要研究一下dubbo-go-proxy的ZookeeperRegistryLoadLoaderdubbo-go-proxy/pkg/registry/load.go// Loader this interface defined for load services from different kinds registry, such as nacos,consul,zookeeper.type Loader interface { // LoadAllServices load all
2021-02-16 10:22:14 112
原创 聊聊dubbo-go-proxy的ConsulRegistryLoad
序本文主要研究一下dubbo-go-proxy的ConsulRegistryLoadLoaderdubbo-go-proxy/pkg/registry/load.go// Loader this interface defined for load services from different kinds registry, such as nacos,consul,zookeeper.type Loader interface { // LoadAllServices load all se
2021-02-15 11:12:37 134
原创 聊聊dubbo-go-proxy的Route
序本文主要研究一下dubbo-go-proxy的RouteRoutedubbo-go-proxy/pkg/router/route.go// Route defines the tree of router APIstype Route struct { lock sync.RWMutex tree *avltree.Tree wildcardTree *avltree.Tree}// NewRoute returns an empty router t
2021-02-14 21:18:16 119
原创 聊聊dubbo-go-proxy的DiscoveryService
序本文主要研究一下dubbo-go-proxy的DiscoveryServiceDiscoveryServicedubbo-go-proxy/pkg/service/discovery_service.go// APIDiscoveryService api discovery service interfacetype APIDiscoveryService interface { AddAPI(router.API) error GetAPI(string, config.HTTPVerb
2021-02-13 11:37:55 141
原创 聊聊dubbo-go-proxy的apiFilter
序本文主要研究一下dubbo-go-proxy的apiFilterapiFilterdubbo-go-proxy/pkg/filter/api/api.gofunc Init() { extension.SetFilterFunc(constant.HTTPApiFilter, apiFilterFunc())}Init方法往extension设置了名为dgp.filters.http.api的apiFilterFuncapiFilterFuncdubbo-go-proxy/pkg/
2021-02-12 20:09:28 59
原创 聊聊dubbo-go-proxy的jtypes
序本文主要研究一下dubbo-go-proxy的jtypesJTypeMapperdubbo-go-proxy/pkg/common/constant/jtypes.go// Object represents the java.lang.Object typetype Object interface{}// JTypeMapper maps the java basic types to golang typesvar JTypeMapper = map[string]reflect.T
2021-02-11 11:51:20 81
原创 聊聊dubbo-go-proxy的plugins
序本文主要研究一下dubbo-go-proxy的pluginsPluginsGroupdubbo-go-proxy-filter@v0.1.0-rc1.0.20210120132524-c63f4eb13725/pkg/api/config/api_config.go// PluginsGroup defines the plugins group infotype PluginsGroup struct { GroupName string `json:"groupName" yaml:"
2021-02-10 21:49:16 97
原创 聊聊dubbo-go-proxy的hostFilter
序本文主要研究一下dubbo-go-proxy的hostFilterhostFilterdubbo-go-proxy/pkg/filter/host/host.go// hostFilter is a filter for host.type hostFilter struct { host string}// New create host filter.func New(host string) filter.Filter { return &hostFilter{host
2021-02-10 00:00:33 175
原创 聊聊dubbo-go-proxy的replacePathFilter
序本文主要研究一下dubbo-go-proxy的replacePathFilterreplacePathFilterdubbo-go-proxy/pkg/filter/replacepath/replace_path.go// replacePathFilter is a filter for host.type replacePathFilter struct { path string}// New create replace path filter.func New(path s
2021-02-08 23:33:52 83
原创 聊聊dubbo-go-proxy的remoteFilter
序本文主要研究一下dubbo-go-proxy的remoteFilterremoteFilterdubbo-go-proxy/pkg/filter/remote/call.gofunc Init() { extension.SetFilterFunc(constant.RemoteCallFilter, remoteFilterFunc())}func remoteFilterFunc() fc.FilterFunc { return New(defaultNewParams()).Do(
2021-02-07 23:37:40 142
原创 聊聊dubbo-go-proxy的timeoutFilter
序本文主要研究一下dubbo-go-proxy的timeoutFiltetimeoutFiltedubbo-go-proxy/pkg/filter/timeout/timeout.gofunc Init() { extension.SetFilterFunc(constant.TimeoutFilter, timeoutFilterFunc(0))}func timeoutFilterFunc(duration time.Duration) fc.FilterFunc { re
2021-02-06 21:58:34 94
原创 聊聊dubbo-go-proxy的recoveryFilter
序本文主要研究一下dubbo-go-proxy的recoveryFilterrecoveryFilterdubbo-go-proxy/pkg/filter/recovery/recovery.gofunc Init() { extension.SetFilterFunc(constant.RecoveryFilter, recoveryFilterFunc())}func recoveryFilterFunc() context.FilterFunc { return New().Do()
2021-02-05 22:10:19 71
原创 聊聊dubbo-go-proxy的authorityFilter
序本文主要研究一下dubbo-go-proxy的authorityFilterauthorityFilterdubbo-go-proxy/pkg/filter/authority/authority.gofunc Init() { extension.SetFilterFunc(constant.HTTPAuthorityFilter, authorityFilterFunc())}func authorityFilterFunc() context.FilterFunc { return
2021-02-04 23:38:44 144
原创 聊聊dubbo-go-proxy的loggerFilter
序本文主要研究一下dubbo-go-proxy的loggerFilterloggerFilterdubbo-go-proxy/pkg/filter/logger/logger.go// nolintfunc Init() { extension.SetFilterFunc(constant.LoggerFilter, loggerFilterFunc())}func loggerFilterFunc() context.FilterFunc { return New().Do()}
2021-02-03 23:59:10 90
原创 聊聊dubbo-go-proxy的AccessLogFilter
序本文主要研究一下dubbo-go-proxy的AccessLogFilterAccessLogFilterdubbo-go-proxy/pkg/filter/accesslog/access_log.govar accessLogWriter = &model.AccessLogWriter{AccessLogDataChan: make(chan model.AccessLogData, constant.LogDataBuffer)}func init() { extension
2021-02-02 23:40:55 120
原创 聊聊dubbo-go-proxy的ParamMapper
序本文主要研究一下dubbo-go-proxy的ParamMapperParamMapperdubbo-go-proxy/pkg/client/mapper.go// ParamMapper defines the interface about how to map the params in the inbound request.type ParamMapper interface { // Map implements how the request parameters map to
2021-02-01 23:46:18 103
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人