本文共 2359 字,大约阅读时间需要 7 分钟。
云享团干货第二期,本期分享专家:滨雨,有多年软件开发 + 项目管理经验,先后在华为、阿里基础架构部任职,在阿里云主要从事存储、cdn、视频、中间件等技术领域的支持,喜欢新技术,喜欢钻研,喜欢各种新的挑战。
本期分享“玩转Edas应用部署”,后续也会持续给大家带来干货分享,如果有什么问题欢迎在下边留言讨论。
Edas应用部署,能解决什么问题呢?能给我们带来哪些便利?看看以下三个场景你就懂啦。
应用发布与管理
还在担心在复杂云环境中的应用发布、部署、重启、扩容等操作?EDAS 提供了一个可视化的应用发布与管理平台。
构建一个分布式系统
还在考虑网络通信,序列化协议设计等技术细节?考虑各个应用之间的分布式服务发现、服务路由、服务调用以及服务安全等细节?EDAS 提供了一个高性能的 RPC 框架,能够构建高可用的分布式系统。
透过数字来剖析我们的系统运行状态
还在为实现服务进行精细化的监控和跟踪,寻找系统瓶颈所在而烦心?EDAS提供了一系列系统数据化运营组件。
作者针对EDAS的应用部署这一核心功能进行了详细的介绍,请保持认真的姿势看到底
1、前提条件:必须有还未被实例化的,且安装好Agent的ecs
2、其他详细步骤参考:
安装docker应用(目前在控制台上叫集群管理)需要单独申请开通公测,可以工单提交反馈
将选择的ecs服务器docker化
创建服务端docker应用,自定义指定端口,端口地址要大于1024,选择给应用配置的cpu和内存配置,需要注意的是,在同一个集群内,端口是不允许重复的。
服务端工程对外暴露一个接口,以hsf:provider标签对外暴露服务
配置文件如下:
代码工程如图:
将工程打成war包
将第四步工程打出的war包上传部署
而此时是还看不到消费的服务
同样的方式,创建消费端应用,部署消费端服务,部署成功后,可以在消费端看到消费的服务
消费端应用代码示例ssh登录到docker服务器,执行docker ps 可以查看到服务器上部署的容器信息:
执行docker exec -ti $container_id bash 进入到docker容器,可以查看容器内部署应用的情况
在使用edas过程,难免会中间遇到很多阻塞的问题,在遇到问题的时候保持淡定,定位问题的方式可以采取五步曲:
1、查看日志:
相信不管是测试还是开发人员,日志永远都是定位问题的最佳利器,edas问题的日志,可以通过两种方式,一种是在应用控制台-运行日志,可以直接看到应用部署的日志,另一种则是直接登录到服务器,到 /home/admin/taobao-tomcat****/目录下查看。
Agent的日志:
2、网络环境确认
网络环境问题,也是edas应用部署中很常见的,ecs服务器上如果路由发生过变更,则会导致无法ping通域名: edas-internal.console.aliyun.com
例如下面的截图就是一个正常的路由(只针对阿里云ecs):从路由可以看到,必须至少包含10.*网段以及100.*网络的路由信息,当发现路由策略有问题时需要根据情况添加路由信息
3、xml配置文件确认
主要针对hsf应用的配置,consumer端和provider端的xml配置文件,版本号保持统一、接口名保持统一
4ã 查询到异常信息后根据关键字到阿里云官网文档上搜索解决方案:
hsf异常编码问题:
5、倘若前四部依然没能解决问题,可以直接反馈工单
应用出现部署异常,按照“排查宝典”,第一步,先看日志,如图的启动日志:
从日志的异常信息可以很清楚的看到是由于端口冲突,这类问题,一种方法就是更改应用的端口,或者到服务器上去kill掉占用相同端口的进程。
例如下面的异常信息:
根据“宝典”第一步,先查看日志,这是一个hsf客户端的启动日志,从日志可以看出是客户端调用hsf失败,可以检查hsf应用服务端和消费端的配置日志。
Consumer端:
服务端:
检查后可以发现,两边对应的interface配置不一致,导致服务启动失败,修改interface后问题得到解决。
hsf有一套自定义的标准异常code,当在应用启动时出现类似“HSF-00**”的异常日志时,可以直接在hsf常见问题中搜索到解决方案
例如下图:可以看到应用启动时发现有异常:“HSF-0001”错误信息抛出,根据错误编码,找到对应文档,根据文档提示进行排查
4、 网络环境问题
应用启动后,发现配置中心上(线上环境是不需要单独创建配置中心的),无法查看到提供者列表和调用者列表,如下图配置中心:
hsf应用运行前提是:
1)消费端和服务端与配置中心网络是可达的
2)消费端可以远程telnet服务端的12200端口
在本地的运行环境下,我们先检查第一步,看下本地是否绑定jmenv.tbsite.net到配置中心ip地址,执行ping jmenv.tbsite.net
得到ip地址
再用得到的ip地址访问
因此可以很明确的知道是由于与配置中心网络不通,解决办法是需要将configserver搭建好后,在本地的hosts文件中绑定ip到jmenv.tbsite.net
转载地址:http://rntta.baihongyu.com/