servicecomb-mesher

A high performance service mesh implementation written in go

Github星跟蹤圖

Mesher

Build Status
Coverage Status
Go Report Card
GoDoc

A service mesh implementation based on go chassis.

Why use mesher

  • any infrastructure: if you use ServiceComb as control plane, you can run on any infrastructure(docker, kubernetes,VM, bare metal).
  • service mesh and frameworks:
    you can develop micro services with java chassis or go chassis frameworks
    and use mesher to make other service join to the same system.
  • flexible: you can develop and customize your own service mesh
  • OS: support both linux and windows OS, which means you can govern your services writen in .net with java, go etc.
  • API gateway: mesher is able to run as a independent edge service and manage ingress traffic.

Features

  • Build on top of go micro service framework: so that mesher has all of features of
    go chassis,a high flexible go micro service framework.
    you can custom your own service mesh and API gateway by extending lots of components.
  • Admin API:Listen on an isolated port, expose useful runtime information and metrics.
  • support protocols: http and grpc
  • No IP tables forwarding: Mesher leverage
    http_proxy
    and grpc proxy dialer,
    that makes better performance than using ip tables
  • local health check: as a sidecar, mesher is able to check local service health by policy
    and dynamically remove it from service registry if service is unavailable.

Get started

Refer to mesher-examples

How to build

Build from scratch

  1. Install ServiceComb service-center

  2. build and run, use go mod

export GOPROXY=https://goproxy.io #if you are facing network issue
cd mesher
GO111MODULE=on go mod download
#optional
GO111MODULE=on go mod vendor
cd cmd/mesher
go build mesher.go

Build by script

cd build
export GOPATH=/path/to/gopath
export GOPROXY=https://goproxy.io #if you are facing network issue
./build_proxy.sh

it will build binary and docker image

  • tar file: release/mesher-latest-linux-amd64.tar
  • docker image name: servicecomb/mesher-sidecar:latest

Build mesher edge service

sudo docker build -t servicecomb/mesher-edge -f docker/edge/Dockerfile .

How to run

edge service

sudo docker run -e PAAS_CSE_SC_ENDPOINT="" \
-e PAAS_CSE_CC_ENDPOINT="" \
-p 80:30101 \
--name mesher-edge servicecomb/mesher-edge

Documentations

You can see more documentations in here,
this online doc is for latest version of mesher, if you want to see your version's doc,
follow here to generate it in local

RoadMap

1.7.0

  • mesher ingress: mesher as a edge service to manage ingress traffic
  • integrate with servicecomb kie: user can change mesher-sidecar and mesher-ingress in same config server, don't need to change local files

in future

  • support skywalking

主要指標

概覽
名稱與所有者apache/servicecomb-mesher
主編程語言Go
編程語言Dockerfile (語言數: 5)
平台
許可證Apache License 2.0
所有者活动
創建於2018-08-29 09:24:08
推送於2024-09-19 03:49:11
最后一次提交2024-09-19 11:48:57
發布數7
最新版本名稱v1.8.0 (發布於 )
第一版名稱v1.5.1 (發布於 2018-09-25 16:31:50)
用户参与
星數687
關注者數32
派生數69
提交數146
已啟用問題?
問題數44
打開的問題數24
拉請求數90
打開的拉請求數6
關閉的拉請求數29
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?