摘要:文件学习配置文件这个文件中需要改动的地方执行下面的命令时,必须切换到你的项目的根目录可参考七其他备注截图执行。
Docker 安装
通过 Homebrew 来安装 Docker
brew install docker
这个安装可能比较慢,可以通过阿里云镜像服务来下载 Docker.dmg
http://mirrors.aliyun.com/doc...
https://github.com/docker/kit...
golang 语言环境配置brew install go
go 环境变量配置参考:https://www.jianshu.com/p/358...
protobuf 安装brew install protobuf
如果安装不成功的话,可手动安装
protobuf 下载:https://github.com/protocolbu...
下载完成后解压安装
tar -zxf protobuf-all-3.7.1.tar.gz cd protobuf-3.7.1 ./autogen.sh ./configure make make check sudo make install
如果在执行 ./autogen.sh 出现如下错误:
+ mkdir -p third_party/googletest/m4 + autoreconf -f -i -Wall,no-obsolete ./autogen.sh: line 37: autoreconf: command not found
解决方法:
brew install autoconf brew install automake brew install libtool
然后再执行 ./ autogen.sh 就不报错了
万里长城第一步,终于把docker和两个语言环境搭好了,接下来继续。
go get -u -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway go get -u -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger go get -u -v github.com/golang/protobuf/protoc-gen-go
如果你在自己的电脑执行上述命令可能会出现问题,go get 被墙,就算有vpn,网速不好会超时:
此时怎么办呢?先安装 gopm 命令
go get -u -v github.com/gpmgo/gopm gopm get -u -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway gopm get -u -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger gopm get -u -v github.com/golang/protobuf/protoc-gen-goDocker 中安装 Envoy 镜像
docker pull envoyproxy/envoy:latest
1.在你的机器上创建 docker 数据卷目录,例如,我的目录是:
/Users/shifeifei/Software/docker-mount
可将 envoy 的数据卷目录设置成如下形式:/Users/shifeifei/Software/docker-mount/envoyproxy
(1) 创建 envoy.yml 文件存目录,存放在 config 目录下
(2) 创建 protobuf 代理文件目录,存放在 proto 目录
(3) 创建 docker-compose.yml 文件
目录结构如下:
2.配置 docker-compose.yml 文件。docker-compose.yml 文件学习
envoy-proxy: image: envoyproxy/envoy:latest ports: - "51051:51051" volumes: - /Users/shifeifei/Software/docker-mount/envoyproxy/config:/envoy - /Users/shifeifei/Software/docker-mount/envoyproxy/proto:/protos command: sh -c "/usr/local/bin/envoy --config-path /envoy/envoy.yaml"
3.配置 envoy.yml 文件
admin: access_log_path: /tmp/admin_access.log address: socket_address: { address: 0.0.0.0, port_value: 9901 } static_resources: listeners: - name: listener1 address: socket_address: { address: 0.0.0.0, port_value: 51051 } filter_chains: - filters: - name: envoy.http_connection_manager config: stat_prefix: grpc_json codec_type: AUTO route_config: name: local_route virtual_hosts: - name: local_service domains: ["*"] routes: - match: { prefix: "/" } route: { cluster: grpc, timeout: { seconds: 60 } } cors: allow_origin: - static.stage-5.yinxiang.com allow_methods: GET, POST, PUT, HEAD, OPTIONS allow_headers: Authorization,Content-Type http_filters: - name: envoy.grpc_json_transcoder config: proto_descriptor: "/protos/payment-service.pb" services: ["payment.PaymentService"] print_options: add_whitespace: true always_print_primitive_fields: true always_print_enums_as_ints: false preserve_proto_field_names: false - name: envoy.router - name: envoy.cors clusters: - name: grpc type: STRICT_DNS connect_timeout: 0.25s lb_policy: LEAST_REQUEST http2_protocol_options: {} hosts: - socket_address: protocol: TCP address: host.docker.internal port_value: 6789
这个文件中需要改动的地方:proto_descriptor 、port_value
4.执行下面的命令时,必须切换到你的项目的根目录;可参考(七、其他备注截图)执行。或者按照下图的路径执行
protoc -I/usr/local/include -I. -I$GOPATH/src -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis --include_imports --include_source_info --descriptor_set_out=payment-service.pb proto/payment.proto
把生成的 payment-service.pb 文件拷贝到目录 :/Users/shifeifei/Software/docker-mount/envoyproxy/proto 中
--descriptor_set_out=payment-service.pb proto/payment.proto 前面是生成的代理文件名称,后面是你的源文件名称
5.启动 docker ,在 docker-compose.yml 同级目录下执行该命令
docker-compose -f docker-compose.yaml up -d envoy-proxy
6.envoy 系列文章:https://www.lijiaocn.com/%E9%...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/27860.html
摘要:社区团队高级软件工程师补充说这产生了大量浪费的资源。和大会日期会议日程通告日期年月日会议活动举办日期年月至日和赞助方案和多元化奖学金现正接受申请和即将首次合体落地中国 VSCO:移动应用如何通过云原生节省70%的EC2账单 showImg(https://segmentfault.com/img/bVboP4E?w=721&h=440); 公司:VSCO地点:加州奥克兰行业:照片移动应...
摘要:社区团队高级软件工程师补充说这产生了大量浪费的资源。和大会日期会议日程通告日期年月日会议活动举办日期年月至日和赞助方案和多元化奖学金现正接受申请和即将首次合体落地中国 VSCO:移动应用如何通过云原生节省70%的EC2账单 showImg(https://segmentfault.com/img/bVboP4E?w=721&h=440); 公司:VSCO地点:加州奥克兰行业:照片移动应...
摘要:在第二部分中,我们将详细介绍如何启用其他弹性功能,如超时和重试。在此部署模型中,被部署为服务的在本例中为客户端。这些示例的上游服务是。它们可以帮助传播故障或对可能正在挣扎的内部服务造成类型攻击。此延迟应足以触发超时。 本博客是深入研究Envoy Proxy和Istio.io 以及它如何实现更优雅的方式来连接和管理微服务系列文章的一部分。 这是接下来几个部分的想法(将在发布时更新链接):...
摘要:,托管于腾讯云容器平台容器编排工具。适配我们目前的服务部署在腾讯云托管,节点使用核的网络增强型机器,所有的后端服务都以部署,集群外部署高可用支持集群内服务发现,数据库以为主,消息队列采用。 距离2017年的见闻技术架构调整接近2年,随着业务线的发展,见闻技术部的项目数量、项目架构类型、基础设施规模、服务变更频率都在不断地增长,带给SRE的挑战是如何能更快地助力于开发人员更快更稳定地部署...
摘要:从实验到生产,简单快速部署机器学习模型一直是一个挑战。总结上面我们快速实践了使用和部署机器学习服务的过程,可以看到,提供了非常方便和高效的模型管理,配合,可以快速搭建起机器学习服务。 从实验到生产,简单快速部署机器学习模型一直是一个挑战。这个过程要做的就是将训练好的模型对外提供预测服务。在生产中,这个过程需要可重现,隔离和安全。这里,我们使用基于Docker的TensorFlow Se...
阅读 1830·2021-11-22 15:24
阅读 1291·2021-11-12 10:36
阅读 3125·2021-09-28 09:36
阅读 1793·2021-09-02 15:15
阅读 2648·2019-08-30 15:54
阅读 2375·2019-08-30 11:02
阅读 2364·2019-08-29 13:52
阅读 3506·2019-08-26 11:53