Giter VIP home page Giter VIP logo

servicecomb-service-center's Introduction

Apache-ServiceComb-Service-Center

Build Status Coverage Status Go Report Card GoDoc HitCount Gitter

Apache ServiceComb Service-Center is a Restful based service-registry that provides micro-services discovery and micro-service management. It is based on Open API format and provides features like service-discovery, fault-tolerance, dynamic routing, notify subscription and scalable by design. It has high performance cache design and separate entity management for micro-services and their instances. It provides out of box support for metrics and tracing. It has a web portal to manage the micro-services.

Components

  • server: a http server which provide restful API
  • scctl: CLI of server
  • syncer: alpha feature. multiple cluster synchronization tool, designed for large microservice architectures

Features

  • Open API: API doc(Open API format) management for microservice
  • Metadata: Metadata management for both microservice and microservice instance
  • Separated: Separated microservice and microservice instance entity management
  • Domains: Logical multiple domains management
  • Security: Role base access control for service discovery
  • Discovery: Support query instance by criteria
  • Subscribe: Use web socket to notify client about instance change events
  • Portal: Awesome web portal
  • Fault tolerance: Multiple fault tolerance mechanism and design in the architecture
  • Performance: Performance/Caching design
  • Metrics: Able to expose Prometheus metric API automatically, see
  • Tracing: Able to report tracing data to Zipkin server
  • Pluginable: Able to load custom authentication, tls and other dynamic libraries
  • CLI: Easy to control service center
  • Kubernetes: Embrace kubernetes ecosystem and support multi cluster service discovery
  • Datacenters: Additional layer of abstraction to clusters deployed in multiple datacenters
  • Aggregation: Able to aggregate microservices from multiple registry platforms and support platform registry and client side registry at the same time
  • FastRegister: Fast register instance to service center

Documentation

Project documentation is available on the ServiceComb website. You can also find full document here.

Quick Start

Getting Service Center

The easiest way to get Service Center is to use one of the pre-built release binaries which are available for Linux, Windows and Docker.

Build docker image

sudo bash scripts/docker/build-image/build.sh

it builds an image servicecomb/service-center

Get The Latest Release

Download Service Center

Client

Ecosystem

Contact

Bugs: issues

Contributing

See Contribution guide for details on submitting patches and the contribution workflow.

Reporting Issues

See reporting bugs for details about reporting any issues.

License

Licensed under an Apache 2.0 license.

Export Notice

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The Apache Software Foundation has classified this software as Export Commodity Control Number (ECCN) 5D002, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the "publicly available" Section 742.15(b) exemption (see the BIS Export Administration Regulations, Section 742.15(b)) for both object code and source code.

The following provides more details on the included cryptographic software:

servicecomb-service-center's People

Contributors

aseto2016 avatar asifdxtreme avatar chinx avatar dependabot[bot] avatar fuziye01 avatar guoyl123 avatar hityc2019 avatar humingcheng avatar kkf1 avatar lilai23 avatar little-cui avatar mabingo avatar popozy avatar robotljw avatar ryaninvoker avatar seanyinx avatar shwethakumbla avatar sjh0027 avatar sphairis avatar tanktian avatar tianxiaoliang avatar vibakar avatar willemjiang avatar xiaoluoluo avatar xiaoyimei avatar xuezechao1 avatar yangbor avatar yangtuantuan avatar yeyiwei avatar zenlint avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

servicecomb-service-center's Issues

runtime: goroutine stack exceeds 1000000000-byte limit

runtime: goroutine stack exceeds 1000000000-byte limit
fatal error: stack overflow

runtime stack:
runtime.throw(0x10297d6, 0xe)
C:/Go/src/runtime/panic.go:605 +0x9c
runtime.newstack(0x0)
C:/Go/src/runtime/stack.go:1050 +0x6ef
runtime.morestack()
C:/Go/src/runtime/asm_amd64.s:415 +0x8e

goroutine 169 [running]:
runtime.mapiternext(0xc062c253e8)
C:/Go/src/runtime/hashmap.go:771 +0x6ff fp=0xc062c25348 sp=0xc062c25340 pc=0x40a59f
runtime.mapiterinit(0xeacae0, 0xc042804240, 0xc062c253e8)
C:/Go/src/runtime/hashmap.go:768 +0x285 fp=0xc062c253b0 sp=0xc062c25348 pc=0x409c45
github.com/ServiceComb/service-center/server/core/backend/store.(*Indexer).deletePrefixKey(0xc04237c0c0, 0xc0420f64c0, 0x3d, 0xc0420f64c0, 0x3d)
C:/Users/m00307339/go/src/github.com/ServiceComb/service-center/server/core/backend/store/indexer.go:270 +0x10c fp=0xc062c25458 sp=0xc062c253b0 pc=0xd0dcdc
github.com/ServiceComb/service-center/server/core/backend/store.(*Indexer).deletePrefixKey(0xc04237c0c0, 0xc0420f64c0, 0x3d, 0xc0420f64c0, 0x3d)
C:/Users/m00307339/go/src/github.com/ServiceComb/service-center/server/core/backend/store/indexer.go:271 +0x14a fp=0xc062c25500 sp=0xc062c25458 pc=0xd0dd1a

no certificates while ssl_mode is on

The default value of ssl_mode in configuration file app.conf is on, however, by default there has no certificates under the etc folder which makes the service-center refuse to start.

inconsistent configuration folders

The certificates stores under etc/ssl folder, while the application configuration files stores under conf folder, which looks inconsistent. Is it a better idea to merge both of it under etc folder?

Decouping health status and instances info

When I come to localhost:30100/health I Can see words like below:

{
  "instances": [
    {
      "instanceId": "d837ce4f950a11e78877a602b9b0d088",
      "serviceId": "d8159fcf950a11e78877a602b9b0d088",
      "endpoints": [
        "rest://127.0.0.1:30100"
      ],
      "hostName": "service_center_169_254_71_121",
      "status": "UP",
      "healthCheck": {
        "mode": "push",
        "interval": 30,
        "times": 3
      },
      "timestamp": "1504925946",
      "stage": "prod"
    }
  ]
}

I think that Maybe /health endpoint shows health info like below to make it compatible with spring boot actuator :

{
  "status": "UP"// the cluster status
}

And the current /health Maybe call /metadata .

What's more over, Is there any other status of service-center ? like :

UP
DOWN
OUT_OF_SERVICE
UNKNOWN

did service center do some basic install test when developer commit code to master?

i found i can not build the service-center binary from source code, first i encounter the flollowing errors:

github.com/coreos/etcd/clientv3

../../coreos/etcd/clientv3/client.go:346: cannot use c.tokenCred (type *authTokenCredential) as type credentials.PerRPCCredentials in argument to grpc.WithPerRPCCredentials:
*authTokenCredential does not implement credentials.PerRPCCredentials (wrong type for GetRequestMetadata method)
have GetRequestMetadata("context".Context, ...string) (map[string]string, error)
want GetRequestMetadata("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, ...string) (map[string]string, error)
../../coreos/etcd/clientv3/client.go:421: cannot use client.balancer (type *healthBalancer) as type grpc.Balancer in argument to grpc.WithBalancer:
*healthBalancer does not implement grpc.Balancer (wrong type for Get method)
have Get("context".Context, grpc.BalancerGetOptions) (grpc.Address, func(), error)
want Get("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, grpc.BalancerGetOptions) (grpc.Address, func(), error)
../../coreos/etcd/clientv3/retry.go:147: cannot use retryKVClient literal (type *retryKVClient) as type etcdserverpb.KVClient in return argument:
*retryKVClient does not implement etcdserverpb.KVClient (wrong type for Compact method)
have Compact("context".Context, *etcdserverpb.CompactionRequest, ...grpc.CallOption) (*etcdserverpb.CompactionResponse, error)
want Compact("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.CompactionRequest, ...grpc.CallOption) (*etcdserverpb.CompactionResponse, error)
../../coreos/etcd/clientv3/retry.go:200: cannot use retryLeaseClient literal (type *retryLeaseClient) as type etcdserverpb.LeaseClient in return argument:
*retryLeaseClient does not implement etcdserverpb.LeaseClient (wrong type for LeaseGrant method)
have LeaseGrant("context".Context, *etcdserverpb.LeaseGrantRequest, ...grpc.CallOption) (*etcdserverpb.LeaseGrantResponse, error)
want LeaseGrant("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.LeaseGrantRequest, ...grpc.CallOption) (*etcdserverpb.LeaseGrantResponse, error)
../../coreos/etcd/clientv3/retry.go:254: cannot use retryClusterClient literal (type *retryClusterClient) as type etcdserverpb.ClusterClient in return argument:
*retryClusterClient does not implement etcdserverpb.ClusterClient (wrong type for MemberAdd method)
have MemberAdd("context".Context, *etcdserverpb.MemberAddRequest, ...grpc.CallOption) (*etcdserverpb.MemberAddResponse, error)
want MemberAdd("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.MemberAddRequest, ...grpc.CallOption) (*etcdserverpb.MemberAddResponse, error)
../../coreos/etcd/clientv3/retry.go:299: cannot use retryMaintenanceClient literal (type *retryMaintenanceClient) as type etcdserverpb.MaintenanceClient in return argument:
*retryMaintenanceClient does not implement etcdserverpb.MaintenanceClient (wrong type for Alarm method)
have Alarm("context".Context, *etcdserverpb.AlarmRequest, ...grpc.CallOption) (*etcdserverpb.AlarmResponse, error)
want Alarm("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.AlarmRequest, ...grpc.CallOption) (*etcdserverpb.AlarmResponse, error)
../../coreos/etcd/clientv3/retry.go:368: cannot use retryAuthClient literal (type *retryAuthClient) as type etcdserverpb.AuthClient in return argument:
*retryAuthClient does not implement etcdserverpb.AuthClient (wrong type for AuthDisable method)
have AuthDisable("context".Context, *etcdserverpb.AuthDisableRequest, ...grpc.CallOption) (*etcdserverpb.AuthDisableResponse, error)
want AuthDisable("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.AuthDisableRequest, ...grpc.CallOption) (*etcdserverpb.AuthDisableResponse, error)

github.com/coreos/etcd/proxy/grpcproxy/adapter

../../coreos/etcd/proxy/grpcproxy/adapter/auth_client_adapter.go:28: cannot use as2ac literal (type *as2ac) as type etcdserverpb.AuthClient in return argument:
*as2ac does not implement etcdserverpb.AuthClient (wrong type for AuthDisable method)
have AuthDisable("context".Context, *etcdserverpb.AuthDisableRequest, ...grpc.CallOption) (*etcdserverpb.AuthDisableResponse, error)
want AuthDisable("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.AuthDisableRequest, ...grpc.CallOption) (*etcdserverpb.AuthDisableResponse, error)
../../coreos/etcd/proxy/grpcproxy/adapter/chan_stream.go:151: cannot use srv (type *chanStream) as type grpc.Stream in field value:
*chanStream does not implement grpc.Stream (wrong type for Context method)
have Context() "context".Context
want Context() "github.com/coreos/etcd/vendor/golang.org/x/net/context".Context
../../coreos/etcd/proxy/grpcproxy/adapter/cluster_client_adapter.go:28: cannot use cls2clc literal (type *cls2clc) as type etcdserverpb.ClusterClient in return argument:
*cls2clc does not implement etcdserverpb.ClusterClient (wrong type for MemberAdd method)
have MemberAdd("context".Context, *etcdserverpb.MemberAddRequest, ...grpc.CallOption) (*etcdserverpb.MemberAddResponse, error)
want MemberAdd("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.MemberAddRequest, ...grpc.CallOption) (*etcdserverpb.MemberAddResponse, error)
../../coreos/etcd/proxy/grpcproxy/adapter/election_client_adapter.go:28: cannot use es2ec literal (type *es2ec) as type v3electionpb.ElectionClient in return argument:
*es2ec does not implement v3electionpb.ElectionClient (wrong type for Campaign method)
have Campaign("context".Context, *v3electionpb.CampaignRequest, ...grpc.CallOption) (*v3electionpb.CampaignResponse, error)
want Campaign("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *v3electionpb.CampaignRequest, ...grpc.CallOption) (*v3electionpb.CampaignResponse, error)

then i replace all "golang.org/x/net/context" to "context" except code in vendor dir, then run go build -o service-center, but i still got many errors, such as:
server/core/proto/services.pb.go:3615: cannot use _ServiceCtrl_Exist_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3619: cannot use _ServiceCtrl_Create_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3623: cannot use _ServiceCtrl_Delete_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3627: cannot use _ServiceCtrl_GetOne_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3631: cannot use _ServiceCtrl_GetServices_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3635: cannot use _ServiceCtrl_UpdateProperties_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3639: cannot use _ServiceCtrl_AddRule_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3643: cannot use _ServiceCtrl_GetRule_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3647: cannot use _ServiceCtrl_UpdateRule_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3651: cannot use _ServiceCtrl_DeleteRule_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3651: too many errors

i wonder how to build the binary from service center source code? thanks!

建议新增mac版的release

我使用mac开发,发现没有对应的release,这给第一次使用的人带来很多不方便,可能很多人会因此放弃尝试

过程:
我发现没有mac的release后,使用docker版本启动了service-center,然后我打算启动frontend却发现没有docker版的frontend也没有mac的release, 无奈之下我自己编译service-center, 下载etc, 自己编译frontend, 拷贝配置,修改脚本,从打算实验service-center到跑起来整整浪费了1个小时的时间,如果mac版本完整,那应该就是几分钟的事情

在华为公有云上部署Frontend Servicecenter 虚机应用失败

前提:华为公有云(ServiceStage)上已经部署好 ServiceCenter的容器应用,外部访问地址:117.78.49.144:30100, 内部访问地址192.168.0.244:30100,并且可以正常使用。

然后在华为公有云上部署 Frontend Servicecenter,结果失败:

  1. 部署: frontend-service-center-0.4.0-linux-amd64.tar.gz
    作为虚机应用部署; 启动参数:sh start.sh 停止参数:sh stop.sh
  2. 失败信息
    create processes failed: failed to "StartProcess" for "process1" with ExecuteCommandFailed: "error info: exit status 127"

try to get the instances for a serviceId,but got value() does not match rule: error

[lkong@dev service-center-1.0]$ curl -XGET -H "Content-Type: application/json" -H 'x-domain-name: default' -d'{}' http://127.0.0.1:30100/registry/v3/instances
{"errorCode":"400001","errorMessage":"Invalid parameter(s)","detail":"The field 'FindInstancesRequest.ConsumerServiceId' value() does not match rule: {Min: 1,Length: 64,Regexp: ^.$}"}
[lkong@dev service-center-1.0]$ ^C
[lkong@dev service-center-1.0]$ curl -XGET -H "Content-Type: application/json" -H 'x-domain-name: default' -d'{}' http://127.0.0.1:30100/registry/v3/microservices/ea81c471487d11e889d714050a32e26e/instances
{"errorCode":"400001","errorMessage":"Invalid parameter(s)","detail":"The field 'GetInstancesRequest.ConsumerServiceId' value() does not match rule: {Min: 1,Length: 64,Regexp: ^.
$}"}
[lkong@dev service-center-1.0]$

Some questions about PACT broker in SC

  1. Is there any example to show how to use this feature with 3rd PACT library?
  2. SC is producer too, and can it publish PACT automatic?
  3. Does broker only support RESTful? how about the RPC like highway in java-chassis?

go build -o service-center get many errors

github.com/coreos/etcd/clientv3

../../coreos/etcd/clientv3/client.go:346: cannot use c.tokenCred (type *authTokenCredential) as type credentials.PerRPCCredentials in argument to grpc.WithPerRPCCredentials:
*authTokenCredential does not implement credentials.PerRPCCredentials (wrong type for GetRequestMetadata method)
have GetRequestMetadata("context".Context, ...string) (map[string]string, error)
want GetRequestMetadata("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, ...string) (map[string]string, error)
../../coreos/etcd/clientv3/client.go:421: cannot use client.balancer (type *healthBalancer) as type grpc.Balancer in argument to grpc.WithBalancer:
*healthBalancer does not implement grpc.Balancer (wrong type for Get method)
have Get("context".Context, grpc.BalancerGetOptions) (grpc.Address, func(), error)
want Get("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, grpc.BalancerGetOptions) (grpc.Address, func(), error)
../../coreos/etcd/clientv3/retry.go:147: cannot use retryKVClient literal (type *retryKVClient) as type etcdserverpb.KVClient in return argument:
*retryKVClient does not implement etcdserverpb.KVClient (wrong type for Compact method)
have Compact("context".Context, *etcdserverpb.CompactionRequest, ...grpc.CallOption) (*etcdserverpb.CompactionResponse, error)
want Compact("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.CompactionRequest, ...grpc.CallOption) (*etcdserverpb.CompactionResponse, error)
../../coreos/etcd/clientv3/retry.go:200: cannot use retryLeaseClient literal (type *retryLeaseClient) as type etcdserverpb.LeaseClient in return argument:
*retryLeaseClient does not implement etcdserverpb.LeaseClient (wrong type for LeaseGrant method)
have LeaseGrant("context".Context, *etcdserverpb.LeaseGrantRequest, ...grpc.CallOption) (*etcdserverpb.LeaseGrantResponse, error)
want LeaseGrant("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.LeaseGrantRequest, ...grpc.CallOption) (*etcdserverpb.LeaseGrantResponse, error)
../../coreos/etcd/clientv3/retry.go:254: cannot use retryClusterClient literal (type *retryClusterClient) as type etcdserverpb.ClusterClient in return argument:
*retryClusterClient does not implement etcdserverpb.ClusterClient (wrong type for MemberAdd method)
have MemberAdd("context".Context, *etcdserverpb.MemberAddRequest, ...grpc.CallOption) (*etcdserverpb.MemberAddResponse, error)
want MemberAdd("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.MemberAddRequest, ...grpc.CallOption) (*etcdserverpb.MemberAddResponse, error)
../../coreos/etcd/clientv3/retry.go:299: cannot use retryMaintenanceClient literal (type *retryMaintenanceClient) as type etcdserverpb.MaintenanceClient in return argument:
*retryMaintenanceClient does not implement etcdserverpb.MaintenanceClient (wrong type for Alarm method)
have Alarm("context".Context, *etcdserverpb.AlarmRequest, ...grpc.CallOption) (*etcdserverpb.AlarmResponse, error)
want Alarm("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.AlarmRequest, ...grpc.CallOption) (*etcdserverpb.AlarmResponse, error)
../../coreos/etcd/clientv3/retry.go:368: cannot use retryAuthClient literal (type *retryAuthClient) as type etcdserverpb.AuthClient in return argument:
*retryAuthClient does not implement etcdserverpb.AuthClient (wrong type for AuthDisable method)
have AuthDisable("context".Context, *etcdserverpb.AuthDisableRequest, ...grpc.CallOption) (*etcdserverpb.AuthDisableResponse, error)
want AuthDisable("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.AuthDisableRequest, ...grpc.CallOption) (*etcdserverpb.AuthDisableResponse, error)

github.com/coreos/etcd/proxy/grpcproxy/adapter

../../coreos/etcd/proxy/grpcproxy/adapter/auth_client_adapter.go:28: cannot use as2ac literal (type *as2ac) as type etcdserverpb.AuthClient in return argument:
*as2ac does not implement etcdserverpb.AuthClient (wrong type for AuthDisable method)
have AuthDisable("context".Context, *etcdserverpb.AuthDisableRequest, ...grpc.CallOption) (*etcdserverpb.AuthDisableResponse, error)
want AuthDisable("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.AuthDisableRequest, ...grpc.CallOption) (*etcdserverpb.AuthDisableResponse, error)
../../coreos/etcd/proxy/grpcproxy/adapter/chan_stream.go:151: cannot use srv (type *chanStream) as type grpc.Stream in field value:
*chanStream does not implement grpc.Stream (wrong type for Context method)
have Context() "context".Context
want Context() "github.com/coreos/etcd/vendor/golang.org/x/net/context".Context
../../coreos/etcd/proxy/grpcproxy/adapter/cluster_client_adapter.go:28: cannot use cls2clc literal (type *cls2clc) as type etcdserverpb.ClusterClient in return argument:
*cls2clc does not implement etcdserverpb.ClusterClient (wrong type for MemberAdd method)
have MemberAdd("context".Context, *etcdserverpb.MemberAddRequest, ...grpc.CallOption) (*etcdserverpb.MemberAddResponse, error)
want MemberAdd("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.MemberAddRequest, ...grpc.CallOption) (*etcdserverpb.MemberAddResponse, error)
../../coreos/etcd/proxy/grpcproxy/adapter/election_client_adapter.go:28: cannot use es2ec literal (type *es2ec) as type v3electionpb.ElectionClient in return argument:
*es2ec does not implement v3electionpb.ElectionClient (wrong type for Campaign method)
have Campaign("context".Context, *v3electionpb.CampaignRequest, ...grpc.CallOption) (*v3electionpb.CampaignResponse, error)
want Campaign("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *v3electionpb.CampaignRequest, ...grpc.CallOption) (*v3electionpb.CampaignResponse, error)
../../coreos/etcd/proxy/grpcproxy/adapter/election_client_adapter.go:51: cannot use es2ecClientStream literal (type *es2ecClientStream) as type v3electionpb.Election_ObserveClient in return argument:
*es2ecClientStream does not implement v3electionpb.Election_ObserveClient (wrong type for Context method)
have Context() "context".Context
want Context() "github.com/coreos/etcd/vendor/golang.org/x/net/context".Context
../../coreos/etcd/proxy/grpcproxy/adapter/kv_client_adapter.go:28: cannot use kvs2kvc literal (type *kvs2kvc) as type etcdserverpb.KVClient in return argument:
*kvs2kvc does not implement etcdserverpb.KVClient (wrong type for Compact method)
have Compact("context".Context, *etcdserverpb.CompactionRequest, ...grpc.CallOption) (*etcdserverpb.CompactionResponse, error)
want Compact("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.CompactionRequest, ...grpc.CallOption) (*etcdserverpb.CompactionResponse, error)
../../coreos/etcd/proxy/grpcproxy/adapter/lease_client_adapter.go:30: cannot use ls2lc literal (type *ls2lc) as type etcdserverpb.LeaseClient in return argument:
*ls2lc does not implement etcdserverpb.LeaseClient (wrong type for LeaseGrant method)
have LeaseGrant("context".Context, *etcdserverpb.LeaseGrantRequest, ...grpc.CallOption) (*etcdserverpb.LeaseGrantResponse, error)
want LeaseGrant("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.LeaseGrantRequest, ...grpc.CallOption) (*etcdserverpb.LeaseGrantResponse, error)
../../coreos/etcd/proxy/grpcproxy/adapter/lease_client_adapter.go:45: cannot use ls2lcClientStream literal (type *ls2lcClientStream) as type etcdserverpb.Lease_LeaseKeepAliveClient in return argument:
*ls2lcClientStream does not implement etcdserverpb.Lease_LeaseKeepAliveClient (wrong type for Context method)
have Context() "context".Context
want Context() "github.com/coreos/etcd/vendor/golang.org/x/net/context".Context
../../coreos/etcd/proxy/grpcproxy/adapter/lock_client_adapter.go:28: cannot use ls2lsc literal (type *ls2lsc) as type v3lockpb.LockClient in return argument:
*ls2lsc does not implement v3lockpb.LockClient (wrong type for Lock method)
have Lock("context".Context, *v3lockpb.LockRequest, ...grpc.CallOption) (*v3lockpb.LockResponse, error)
want Lock("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *v3lockpb.LockRequest, ...grpc.CallOption) (*v3lockpb.LockResponse, error)
../../coreos/etcd/proxy/grpcproxy/adapter/maintenance_client_adapter.go:28: cannot use mts2mtc literal (type *mts2mtc) as type etcdserverpb.MaintenanceClient in return argument:
*mts2mtc does not implement etcdserverpb.MaintenanceClient (wrong type for Alarm method)
have Alarm("context".Context, *etcdserverpb.AlarmRequest, ...grpc.CallOption) (*etcdserverpb.AlarmResponse, error)
want Alarm("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.AlarmRequest, ...grpc.CallOption) (*etcdserverpb.AlarmResponse, error)
../../coreos/etcd/proxy/grpcproxy/adapter/maintenance_client_adapter.go:28: too many errors

发现service centor中很多引用包的路径为:golang.org/x/net/context
但是service center中引用其他github的包中引用的路径是“context”这样会导致冲突,
这个当时你们是怎么考虑的呢,怎么解决的呢

typos need to fix

there are some typos such as recieve in design.md unkown in on.md.

mac docker run 报错 Invalid Request URI /

2017-10-30T09:31:26.462883807Z ERROR service_center 15 github.com/ServiceComb/service-center/server/helper/header.go GetTenantProjectFromHeader():40 - service_center."/favicon.ico does not contain domain."

cannot open database at data/member/snap/db (cannot allocate memory)

在openSUSE 11 上启动报错,错误日志如下

SIA1000005342:/opt/devops/programs/apache-servicecomb-incubating-service-center-1.0.0-m2-linux-amd64 # more start-sc.log
2018-06-26 16:08:30.886121 I | embed: listening for peers on http://127.0.0.1:2380
2018-06-26 16:08:30.908343 C | mvcc/backend: cannot open database at data/member/snap/db (cannot allocate memory)
panic: cannot open database at data/member/snap/db (cannot allocate memory)

goroutine 110 [running]:
github.com/apache/incubator-servicecomb-service-center/vendor/github.com/coreos/pkg/capnslog.(*PackageLogger).Panicf(0xc42043ac20, 0x15bdeb3, 0x1f, 0xc420074f28, 0x2, 0x2)
/home/root1/servicecomb/go/src/github.com/apache/incubator-servicecomb-service-center/vendor/github.com/coreos/pkg/capnslog/pkg_logger.go:83 +0x162
github.com/apache/incubator-servicecomb-service-center/vendor/github.com/coreos/etcd/mvcc/backend.newBackend(0xc420220da0, 0x13, 0x5f5e100, 0x2710, 0x0)
/home/root1/servicecomb/go/src/github.com/apache/incubator-servicecomb-service-center/vendor/github.com/coreos/etcd/mvcc/backend/backend.go:106 +0x144
github.com/apache/incubator-servicecomb-service-center/vendor/github.com/coreos/etcd/mvcc/backend.NewDefaultBackend(0xc420220da0, 0x13, 0xe76919, 0x999028)
/home/root1/servicecomb/go/src/github.com/apache/incubator-servicecomb-service-center/vendor/github.com/coreos/etcd/mvcc/backend/backend.go:100 +0x4d
github.com/apache/incubator-servicecomb-service-center/vendor/github.com/coreos/etcd/etcdserver.NewServer.func1(0xc420220da0, 0x13, 0xc420431f70, 0xc420255200)
/home/root1/servicecomb/go/src/github.com/apache/incubator-servicecomb-service-center/vendor/github.com/coreos/etcd/etcdserver/server.go:273 +0x35
created by github.com/apache/incubator-servicecomb-service-center/vendor/github.com/coreos/etcd/etcdserver.NewServer
/home/root1/servicecomb/go/src/github.com/apache/incubator-servicecomb-service-center/vendor/github.com/coreos/etcd/etcdserver/server.go:272 +0x439

os version如下:
cat /proc/version
Linux version 3.0.76-0.11-default (geeko@buildhost) (gcc version 4.3.4 [gcc-4_3-branch revision 152973] (SUSE Linux) ) #1 SMP Fri Jun 14 08:21:43 UTC 2013 (ccab990)

Routing the service-url's through api-gateway

Issue raised by @lexkong
my problem is, we have a api gateway, and now we want to find service from service center, which is from service center our api gateway can find host:port for the specified path such as: /calculator/bmi

is there any way or docs used to connect our api gateway and service center?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.