上云无忧 > 文档中心 > 百度智能云云原生微服务应用平台service-mesh-应用接入
云原生微服务应用平台
百度智能云云原生微服务应用平台service-mesh-应用接入

文档简介:
准备工作: 服务网格(Service Mesh)是致力于解决服务间通讯的基础设施层,用于处理服务间通讯。Service Mesh 通常是通过一组轻量级网络代理(Sidecar proxy),与应用程序代码部署在一起来实现,而无需感知应用程序本身。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

准备工作

服务网格(Service Mesh)是致力于解决服务间通讯的基础设施层,用于处理服务间通讯。Service Mesh 通常是通过一组轻量级网络代理(Sidecar proxy),与应用程序代码部署在一起来实现,而无需感知应用程序本身。

我们提供了简单的demo样例可供您快速开始了解并体验我们的平台:服务样例下载。

创建服务提供者

这里以go语言为例,在本地创建服务提供者应用,并将自身服务注册到微服务平台的服务注册中心,以便服务消费者调用。

  1. 创建web应用,该应用监听在9091端口,供服务消费者调用
// 服务提供者健康检查接口
http.HandleFunc("/health", healthCheck) 
// 服务提供者功能接口
http.HandleFunc("/echo", echo)
if err := http.ListenAndServe(":9091", nil); err != nil {
       log.Fatalln("ListenAndServe: ", err)
}
  1. 代码编译
GOOS=linux GOARCH=amd64 go build

创建服务消费者

这里以go语言为例,在本地创建服务消费者应用,并将自身服务注册到微服务平台的服务注册中心,同时,该应用可以发现provider服务,并完成调用。

  1. 创建web应用,该应用监听在9090端口,供外部访问
// 消费者健康检查接口
http.HandleFunc("/health", healthCheck)
// 外部访问接口,该接口调用mesh-provider的echo接口并返回处理结果
http.HandleFunc("/echo", echo)
if err := http.ListenAndServe(":9090", nil); err != nil {
    log.Fatalln("ListeneAndServe error: ", err)
}
  1. 在代码中添加调用链相关的头
TRACE_HEADERS = []string{
    "X-B3-SpanId",
    "X-B3-TraceId",
    "X-B3-ParentSpanId",
    "X-B3-Sampled",
    "X-B3-Flags",
    "X-Ot-Span-Context",
    "X-Request-Id",
    "X-Method",
    "X-ParentMethod",
}

注意: Mesh 的调用链通过header传递实现。如果用户想要得到不同服务之间的调用关系,需要在访问其他服务时,带上父调用的相关调用链头,如果不使用调用链和拓扑功能,这里可以不进行添加。

  1. 代码编译
GOOS=linux GOARCH=amd64 go build

CNAP平台部署

  1. 制作镜像

以consumer为例,制作镜像所需的Dockerfile参考如下:

# 基础镜像,用户可选使用
FROM hub.baidubce.com/cnap-public/mesh-base:ubuntu
# 添加编译好的二进制文件
COPY mesh-consumer /usr/local/bin
# 添加启动命令
CMD ["/usr/local/bin/mesh-consumer", "-a", "http://mesh-provider:9091"]

使用以上Dockerfile完成镜像编译:

docker build -t hub.baidubce.com/[namespace]/[ImageName]:[镜像版本] .

注意: namespace为环境准备中创建的命名空间的名称;ImageName由用户指定所创建镜像的名称。

将编译完成的镜像推送到镜像仓库:

docker push hub.baidubce.com/[namespace]/[ImageName]:[镜像版本]
  1. 使用CNAP平台进行部署

请参考CNAP操作手册中的服务部署部分。
注意:针对mesh类型的应用,需要在控制台填写mesh服务的端口。同时,填写的应用名需要与服务名保持一致。

3.检查部署结果

成功部署后将在CNAP平台 – 服务列表页中看到注册上的服务信息

  1. 服务验证 可以通过调用以下接口,观察调用返回是否符合预期
curl xx.xx.xx.xx:9090/echo?value=helloworld
  1. 路由

Service Mesh应用支持路由功能,无需用户进行业务改造,使用手册参考微服务管理中的路由部分。

相似文档
  • 轻量级注册中心主要为开发者提供本地轻量级注册中心服务,为开发者提供在开发、联调、测试阶段的服务注册、发现等功能; 前提条件: 在使用轻量级注册中心前,请确保: 环境安装JDK1.8并完成环境配置; 确保端口8600、8500、8301、8302和8300端口未被占用;
  • 百度智能云容器引擎(Cloud Container Engine,即CCE)是高度可扩展的高性能容器管理服务,您可以在托管的云服务器实例集群上轻松运行应用程序。使用该服务,您将无需安装、运维、扩展您的集群管理基础设施,只需进行简单的API调用,便可启动和停止Docker应用程序,查询集群的完整状态,以及使用各种云服务。您可以根据您的资源需求和可用性要求在您的集群中部署容器,满足业务或应用程序的特定要求。
  • 2021-08:增加 Namespace 资源限制说明。集群管理员可以通过 Resource Quota 及 LimitRange 为每个租户设置资源限额。 2021-07:新增VPC-CNI模式下容器网段空间耗尽时的扩容方案。VPC-CNI 模式下,容器的 IP 来自 VPC 中的子网。随着集群规模扩大,ENI 子网中的 IP 可能耗尽,利用 CNI 提供的动态配置功能,可以给集群增加新的 ENI 子网。
  • 为优化控制台交互体验,控制台应用管理相关功能(工作负载、流量接入、存储配置、监控日志等)将以集群为中心进行菜单位置调整,原先菜单移至单集群管理页面(即集群详情内),让管理工作更加简单、流畅、聚焦。
  • 近期,百度智能云容器引擎 CCE 新版集群管理正式发布,进一步提升功能完备度和服务稳定性,帮助更多企业客户实现底层架构的容器化,以及大规模业务效能的再次提升。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部