Neden değişmek istiyorsun ve diğer şirketleri mi düşünüyorsun?
Golang
// best() fonksiyonu için kod parçası // backend yoksa hata yönetimi ile
Neden 2GIS ile iletişime geçmeye karar verdin? Şirket veya belirli bir pozisyon seni neden cezbetti?
Bir veritabanında eşzamanlı veri erişimiyle hiç çalıştınız mı? Hangi mekanizmaları kullandınız, örneğin işlemler ve kilitler? Bu sorunu veritabanını kullanmadan çözmenin yolları var mı?
// best() fonksiyonu için kod parçası // backend yoksa hata yönetimi ile
Bunun kodda nasıl ele alındığını anlatın?
type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr belirli bir örneğin ip:port adresini içerir func NewBackend(addr string) *BackendImpl type backentry struct { backend Backend inflight int64 } type Balancer struct { backends []*backentry mu *sync.Mutex } var _ Backend = &Balancer{} // addrs, tüm dengeleme yapılabilir örneklerin adreslerini içerir func NewBalancer(addrs []string) *Balancer { data := make([]*backentry,len(addrs)) for i,addr := range addrs{ data[i] = &backentry{ backend: NewBackend(addr), inflight: 0, } } return &Balancer{backends:data} } func(b *Balancer)Invoke(ctx context.Context, req Request) (Response, error){ b.mu.Lock() entry := b.best() atomic.AddInt64(&entry.inflight,1) b.mu.Unlock() defer atomic.AddInt64(&entry.inflight,-1) return entry.backend.Invoke(ctx,req) } func(b *Balancer) best() *backentry{ var best *backentry for _,entry := b.backends{ if best == nil || atomic.LoadInt64(&entry.inflight) < atomic.LoadInt64(&best.inflight){ best = entry } } return best }
// best() fonksiyonu için kod parçası // backend yoksa hata yönetimi ile
Go'da nesne yönelimli programlama var mı? Evetse, nasıl uygulanıyor; değilse, neden?
İşte en önemli olan nedir sizin için?
Kapalı bir kanaldan okuma yapıldığında ne döner?
Ölçeklendirmeyi nasıl organize ettiniz ve hangi mikroservis mimarileriyle çalıştınız?
Goroutine sızıntısı ne zaman olur?
ID ile görevin durumunu almak için Status metodunu nasıl uygulayabilirsiniz?
Bir ayrı goroutine'de panic olursa program ne olur?
sync.Mutex ile sync.RWMutex nasıl farklıdır?
Yeni bir hizmetin geliştirme ve dağıtım sürecinizi anlatın: gereksinimlerin toplanmasından geliştirme ve test ortamlarına dağıtıma kadar.
Servislerin dağıtımı nasıl gerçekleştirildi?
Queue metodunu uygulayın
Bu verilerin yüklenmesi veya oluşturulması süreci tam olarak nasıl yapılandırıldı?