
# 托管Kitex应用
本文介绍如何将Kitex应用接入ServiceComb引擎。
#### 概述
Kitex，作为Golang微服务RPC框架，具有高性能、强可扩展的特点。更多Kitex框架的详细信息，请参见[Kitex官方文档](https://www.cloudwego.io/zh/docs/kitex/overview/)。
 #### 前提条件
创建ServiceComb引擎，请参考[创建ServiceComb引擎](https://support.huaweicloud.com/usermanual-cse/cse_usermanual_0005.html)。
#### 代码接入
- Provider端：
  ```
  import (
  "context"
  "log"
  "net"
  "github.com/cloudwego/kitex-examples/hello/kitex_gen/api"
  "github.com/cloudwego/kitex-examples/hello/kitex_gen/api/hello"
  "github.com/cloudwego/kitex/pkg/rpcinfo"
  "github.com/cloudwego/kitex/server"
  "github.com/kitex-contrib/registry-servicecomb/registry"
  )
  type HelloImpl struct{}
  func (h *HelloImpl) Echo(_ context.Context, req *api.Request) (resp *api.Response, err error) {
  resp = &api.Response{
  Message: req.Message,
  }
  return
  }
  func main() {
  // **初始化ServiceComb注册中心，默认从环境变量读取配置**
  r, err := registry.NewDefaultSCRegistry()
  if err != nil {
  panic(err)
  }
  svr := hello.NewServer(
  new(HelloImpl),
  server.WithRegistry(r),
  server.WithServerBasicInfo(&rpcinfo.EndpointBasicInfo{ServiceName: "Hello"}),
  server.WithServiceAddr(&net.TCPAddr{IP: net.IPv4(0, 0, 0, 0), Port: 8080}),
  )
  if err := svr.Run(); err != nil {
  log.Println("server stopped with error:", err)
  } else {
  log.Println("server stopped")
  }
  }
  ```
  
- Consumer端：
  ```
  import (
  "context"
  "log"
  "time"
  "github.com/cloudwego/kitex-examples/hello/kitex_gen/api"
  "github.com/cloudwego/kitex-examples/hello/kitex_gen/api/hello"
  "github.com/cloudwego/kitex/client"
  "github.com/kitex-contrib/registry-servicecomb/resolver"
  )
  func main() {
  // **初始化ServiceComb注册中心，默认从环境变量读取配置**
  r, err := resolver.NewDefaultSCResolver()
  if err != nil {
  panic(err)
  }
  newClient := hello.MustNewClient(
  "Hello",
  client.WithResolver(r),
  client.WithRPCTimeout(time.Second*3),
  )
  for {
  resp, err := newClient.Echo(context.Background(), &api.Request{Message: "Hello"})
  if err != nil {
  log.Fatal(err)
  }
  log.Println(resp)
  time.Sleep(time.Second)
  }
  }
  ```
  
 
#### 应用部署
参考[快速体验ServiceStage](https://support.huaweicloud.com/qs-servicestage/servicestage_02_0001.html)选择合适的部署方式。
#### 验证
部署成功后，登录微服务引擎控制台，在左侧导航栏选择"ServiceComb引擎专享版"，单击[前提条件]创建的ServiceComb引擎，选择"微服务目录"，单击微服务名称，在"实例列表"页签查看服务实例是否已经成功注册。
您也可以验证Consumer调用Provider能够正常调用。
1. 设置环境变量serverAddr和serverPort为ServiceComb引擎服务注册发现地址的ip和port。 ![](https://support.huaweicloud.com/bestpractice-cse/zh-cn_image_0000001465077266.png "点击放大")
   
2. 运行consumer。说明成功从ServiceComb引擎的服务中心获取了provider的ip和port，并调用了provider。 ![](https://support.huaweicloud.com/bestpractice-cse/zh-cn_image_0000001464917582.png "点击放大")
   
