go-micro
etcd
Our great sponsors
go-micro | etcd | |
---|---|---|
23 | 61 | |
21,393 | 46,345 | |
0.8% | 1.1% | |
6.4 | 9.9 | |
7 days ago | 1 day ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
go-micro
-
Ask HN: What are some examples of cloud lock-in?
Had similar goals. Started by writing Go interfaces for it with Go Micro - https://go-micro.dev then opted for the platform service model as you mentioned with Micro - https://micro.dev
I think whether it's Dapr, Micro or something else, the platform service model with well defined interfaces is the way to go. I don't think a lot of people get this yet so it's still going to be a few years before it takes off.
- Go Micro: a standard library for distributed systems development
- Real World Micro Services
-
Most Popular GoLang Frameworks
Website: https://github.com/go-micro/go-micro
-
Connect: A Better gRPC
Good luck Buf! I spent many years building an RPC framework around gRPC called Go Micro (https://github.com/asim/go-micro). I think one of the biggest issues was just resources to see it through but also my own desire to move beyond it towards a platform and services. I hope you're able to bring some sense to the gRPC world. It's mostly a networking library. The ecosystem around it is too low level. If anything abstractions and more developer friendly tooling would be a massive improvement. No one needs to see or touch the guts of gRPC. I wish I didn't have to peak into the internals but unfortunately that's what it takes to integrate it elsewhere.
I hope you build something awesome for the community!
-
A Command-line tool to statistics the GitHub repositories
$ github-compare zeromicro/go-zero go-kratos/kratos asim/go-micro go-kit/kit ┌─────────────────────────┬─────────────────────┬───────────────────────┬──────────────────────┬──────────────────┐ │ METRICS │ ZEROMICRO/GO-ZERO │ GO-KRATOS/KRATOS │ ASIM/GO-MICRO │ GO-KIT/KIT │ ├─────────────────────────┼─────────────────────┼───────────────────────┼──────────────────────┼──────────────────┤ │ 🏠 homepage │ https://go-zero.dev │ https://go-kratos.dev │ https://go-micro.dev │ https://gokit.io │ │ 🌎 language │ Go │ Go │ Go │ Go │ │ 📌 license │ MIT License │ MIT License │ Apache License 2.0 │ MIT License │ │ ⏰ age │ 655 days │ 1231 days │ 2688 days │ 2668 days │ │ 🌟 stars │ 17778(27/d) │ 17856(14/d) │ 18233(6/d) │ 23084(8/d) │ │ 📊 latestDayStarCount │ 33 (up) │ 7 (down) │ 2 (down) │ 10 (up) │ │ 📉 latestWeekStarCount │ 227 (up) │ 64 (down) │ 31 (down) │ 44 (down) │ │ 📈 latestMonthStarCount │ 916 │ 531 │ 176 │ 235 │ │ 👏 forks │ 2520(3/d) │ 3446(2/d) │ 2087(0/d) │ 2315(0/d) │ │ 👀 watchers │ 266 │ 424 │ 510 │ 690 │ │ 💪 issues │ 50/741 │ 51/793 │ 76/914 │ 35/548 │ │ 💯 pull requests │ 13/1155 │ 10/1221 │ 0/1513 │ 9/627 │ │ 👥 contributors │ 132 │ 198 │ 166 │ 221 │ │ 🚀 releases │ 63 │ 49 │ 206 │ 12 │ │ 🔭 release circle(avg) │ 10 days │ 25 days │ 13 days │ 222 days │ │ 🎯 lastRelease │ 24 day(s) ago │ 1 day(s) ago │ 5 day(s) ago │ 8 month(s) ago │ │ 🕦 lastCommit │ 2 day(s) ago │ 2 hour(s) ago │ 5 day(s) ago │ 6 day(s) ago │ │ 📝 lastUpdate │ 47 minute(s) ago │ 16 minute(s) ago │ 1 hour(s) ago │ 1 hour(s) ago │ └─────────────────────────┴─────────────────────┴───────────────────────┴──────────────────────┴──────────────────┘
- Which microservice framework should I choose?
- Go Micro – A framework for distributed systems development
etcd
-
Oracle Linux 8.8'de PostgreSQL 13 Yedekli Yapı Nasıl Kurulur? - Patroni, ETCD, HAProxy
sudo dnf -y install curl wget vim ETCD_RELEASE=$(curl -s https://api.github.com/repos/etcd-io/etcd/releases/latest|grep tag_name | cut -d '"' -f 4) echo $ETCD_RELEASE wget https://github.com/etcd-io/etcd/releases/download/${ETCD_RELEASE}/etcd-${ETCD_RELEASE}-linux-amd64.tar.gz tar xvf etcd-${ETCD_RELEASE}-linux-amd64.tar.gz cd etcd-${ETCD_RELEASE}-linux-amd64 sudo mv etcd* /usr/local/bin ls /usr/local/bin /usr/local/bin/etcd --version
-
Transitioning from more traditional OOP like C# to Go, what are the biggest coding style differences.
Reading the standard library will give you ideas/insight about various Go idiomatic patterns/approaches, and you can see a full website/API implementation in the pkg.go.dev repository (https://github.com/golang/pkgsite). Projects like https://github.com/etcd-io/etcd may be interesting too.
-
Fault Tolerance in Distributed Systems: Strategies and Case Studies
Failure Detection and Recovery It’s not enough to have backup systems. It’s also crucial to detect failures quickly. Modern systems employ monitoring tools and rely on distributed coordination systems such as Zookeeper or etcd to identify faults in real-time: once detected, recovery mechanisms are triggered to restore the service.
-
The Complete Microservices Guide
Service Discovery: Microservices need to discover and communicate with each other dynamically. Service discovery tools like etcd, Consul, or Kubernetes built-in service discovery mechanisms help locate and connect to microservices running on different nodes within the infrastructure.
-
How is Apache APISIX Fast?
APISIX uses etcd to store and synchronize configurations.
-
Apache APISIX without etcd
etcd is an excellent key-value distributed database used internally by Kubernetes and managed by the CNCF. It's a great option, and that's the reason why Apache APISIX uses it too. Yet, it's not devoid of issues.
-
From /etc to database
Someone on HN (https://news.ycombinator.com/item?id=36682595) suggested etcd (https://etcd.io)
-
Evaluating Apache APISIX vs. Spring Cloud Gateway
In traditional mode, APISIX stores its configuration in etcd. APISIX offers a rich API to access and update the configuration, the Admin API. In standalone mode, the configuration is just plain YAML. It's the approach for GitOps practitioners: you'd store your configuration in a Git repo, watch it via your favorite tool (e.g., Argo CD or Tekton), and the latter would propagate the changes to APISIX nodes upon changes. APISIX reloads its configuration every second or so.
- Implementing a distributed key-value store on top of implementing Raft in Go
-
RedisRaft
I am not sure neither. But this might overcome the etcd's soft storage limit of 8GB? [1]
[1] https://github.com/etcd-io/etcd/issues/9771
What are some alternatives?
go-zero - go-zero is a web and rpc framework written in Go. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity. [Moved to: https://github.com/zeromicro/go-zero]
consul - Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
go-kit - A standard library for microservices.
minio - The Object Store for AI Data Infrastructure
micro - A Go service development platform
Vault - A tool for secrets management, encryption as a service, and privileged access management
grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC
Apache ZooKeeper - Apache ZooKeeper
go-zero - A cloud-native Go microservices framework with cli tool for productivity.
nsq - A realtime distributed messaging platform
dapr - Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.
traefik - The Cloud Native Application Proxy