https://github.com/maojianwei/mao_service_discovery
Discover your services by using gRPC stream, ICMP or etcd. Come with WebGUI, Restful API and Config Persistence ability.
https://github.com/maojianwei/mao_service_discovery
etcd etcdv3 grpc grpc-go icmp icmp-ping icmpv6 microservices pi raspberry raspberry-pi raspberry-pi-3 service-discovery
Last synced: 3 months ago
JSON representation
Discover your services by using gRPC stream, ICMP or etcd. Come with WebGUI, Restful API and Config Persistence ability.
- Host: GitHub
- URL: https://github.com/maojianwei/mao_service_discovery
- Owner: MaoJianwei
- License: apache-2.0
- Created: 2021-08-07T00:31:00.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-10T01:24:24.000Z (7 months ago)
- Last Synced: 2024-10-11T17:20:59.754Z (7 months ago)
- Topics: etcd, etcdv3, grpc, grpc-go, icmp, icmp-ping, icmpv6, microservices, pi, raspberry, raspberry-pi, raspberry-pi-3, service-discovery
- Language: Go
- Homepage:
- Size: 1.7 MB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Mao Service Discovery
|Category|Job|
|---|---|
|Build|[](https://github.com/MaoJianwei/Mao_Service_Discovery/actions/workflows/go_all.yml) [](https://github.com/MaoJianwei/Mao_Service_Discovery/actions/workflows/go_all_static.yml) [](https://github.com/MaoJianwei/Mao_Service_Discovery/actions/workflows/vue3-nodejs.yml)|
|Test|[](https://github.com/MaoJianwei/Mao_Service_Discovery/actions/workflows/codeql-analysis.yml) [](https://github.com/MaoJianwei/Mao_Service_Discovery/actions/workflows/docker-image.yml) |
|Analyze|[](https://github.com/MaoJianwei/Mao_Service_Discovery/actions/workflows/analyze_dependency_map.yml)|
|Binary Release|[](https://github.com/MaoJianwei/Mao_Service_Discovery/actions/workflows/npm-publish-linux.yml) [](https://github.com/MaoJianwei/Mao_Service_Discovery/actions/workflows/npm-publish-linux-pi-2b.yml) [](https://github.com/MaoJianwei/Mao_Service_Discovery/actions/workflows/npm-publish-windows.yml) [](https://github.com/MaoJianwei/Mao_Service_Discovery/actions/workflows/docker-publish.yml)|
|Binary Link|[Github Docker Image](https://github.com/MaoJianwei/Mao_Service_Discovery/pkgs/container/mao_service_discovery) = [NPM official](https://www.npmjs.com/package/mao-service-discovery?activeTab=versions) = [Taobao & Alibaba Cloud mirror](https://npmmirror.com/package/mao-service-discovery)|## Quick Show - Digital Map

For this example, we utilizes the map UI and API provided by [ONOS_TopologyShow_ChineseMap](https://github.com/MaoJianwei/ONOS_TopologyShow_ChineseMap) project :)
## Build
**Method 1: Compile and link statically, and build WebUI 2.0**
```
./build_all.sh
```Method 2: Compile and link statically
```
./statically_linked_compilation.sh
```Method 3: Build WebUI 2.0
```
./build_webui.sh
```## Run
**Example 1: Run client**
```
./MaoServerDiscovery client --report_server_addr 2001:db8::1 --silent --log_level WARN
```**Example 2: Run server**
In order to open the ICMP listening socket, you need **CAP_NET_RAW capability from setcap / root account / sudo** to run this command.
```
$ sudo setcap CAP_NET_RAW+eip ./MaoServerDiscovery
$ getcap ./MaoServerDiscovery
[output] ./MaoServerDiscovery cap_net_raw=eip
```
```
./MaoServerDiscovery server --report_server_addr :: --silent --log_level WARN \
--influxdb_url https://xxxxxx.maojianwei.com:12345 --influxdb_org_bucket xxxxxx --influxdb_token xxxxxx==
```

## Web UI 2.0




## Software Architecture
Please refer to [MODULES.md](https://github.com/MaoJianwei/Mao_Service_Discovery/blob/master/MODULES.md) file.## Todo List
Please refer to the [agile board](https://github.com/users/MaoJianwei/projects/3).## Initial need
Discover your service by two methods:1. Client-Server mode, using gRPC stream.
2. Server-only mode, using ICMP.
3. Using etcd.### Product: Client-Server mode, using gRPC stream.
#### 1. REST API (JSON format)
#### 2. Web Monitor
#### 3. CLI Output
#### 4. CLI Parameters
### Demo 1: Client-Server mode, using gRPC stream.


### Demo 2: Using etcd.
## Architect
Jianwei Mao
https://www.MaoJianwei.com/
E-mail: [email protected]
.
 Supported by [JetBrains IDEA Open Source License](https://www.jetbrains.com/?from=Mao_Service_Framework) 2020-2023.