美文网首页
阿里云企业级互联网架构实践系列-EDAS 开发(续)

阿里云企业级互联网架构实践系列-EDAS 开发(续)

作者: 技术与健康 | 来源:发表于2020-08-13 09:22 被阅读0次

    1. 如何注册到轻量级配置中心

    前提: 关闭windows 防火墙,可以ping 通 EDAS所在IP

    修改配置:假设EDAS 轻量级配置中心IP 是 10.10.10.10

    修改hosts 文件 添加配置如下:

    10.10.10.10 jmenv.tbsite.net

    添加jvm 参数:

    -Dvipserver.server.port=8080

    -Daddress.server.domain=10.10.10.10

    -Daddress.server.port=8080

    -Dvipserver.client.port=8080

    -Dpandora.location=D:/hsf.sar.jar

    如果本地有多个IP可以通过需要配置一下hosts 来指定注册的IP

    先打开 cmd 输入hostname 命令 获取本机名称,假设是 computer1

    假设需要使用的本地IP是 11.111.1.1(确保此IP和EDAS的网络之间是同的)

    在hosts 文件中添加如下配置:

    11.111.1.1 computer1

    -Dpandora.location=D:/hsf.sar.jar

    指定的是潘多拉地址

    2. 如何使用轻量级配置中心的配置功能

    a) 程序添加配置

    添加需要的配置项:

    1. 找到 ConfigCenter类,添加配置中心需要的groupID和DataID

    其中groupId:是项目的包名称,确保唯一,建议网上国网统一使用 com.sgcc.osg 作为groupID。dataID,用于标识单个配置项。

    2. 找到EDASConfigContextRefresher 在 registerDiamondListenersForApplications方法中添加 addListener第一参数是 ConfigCenter.DATA_ID,第二个参数是ConfigCenter.GROUP_ID。

    1. 找到EDASPropertySourceLocator 在locate方法中添加

    loadConfiguration(compositePropertySource, environment, ConfigCenter.DATA_ID, ConfigCenter.GROUP_ID);

    loadConfiguration方法前两个参数固定, 后面是 之前在ConfigCenter中添加的DATA_ID, 和GROUP_ID。

    b) 轻量级验证配置

    在本地开发的时候,应用启动前需要先在轻量级配置中心。添加配置项。

    点击添加:

    [图片上传失败...(image-8cefb1-1597155336559)]

    在弹出框中输入在本地ConfigCentre.java 中配置的 groupID, 和dataId输入进去。

    content 里面可以添加任意键值对。

    c) 程序中获取配置

    @RestController

    @RefreshScope //需要 动态刷新必加

    public class Demo{

    @Value(“${key1}”)

    private String key1;

    @Value(“${key2}”)

    private String key2;

    }

    d) 备注:

    配置项:如下图每一个groupid, dataId,和content 对应一个配置项

    3. 轻量级配置中心无法开启,开启时 一闪就自动关闭

    分发 轻量级配置中心的时候 通过 压缩文件分发,不要copy 解压后的文件夹

    4. 如何处理服务启动后分布式服务总线应用列表无法显示

    如果应用列表没有数据,不能说明应用无法注册到分布式服务总线,而是应用启动失败,或者EDAS鉴权配置有问题

    l 检查应用启动日志,查看是否正常启动。

    如果抛出其他异常导致无法启动需要联系业务同学确认。

    l 如果没有报错需要确认EDAS_SERVICE_ID 环境变量是否过程, 不能超过36

    5. 如何处理服务启动后分布式服务总线服务列表为空

    如果分布式服务总线的 服务列表是空的,就说明这个微服务没有注册到分布式服务总线

    l 应用正常启动后(通过启动日志判断,出现pandora started说明启动完成),

    l 查看 /etc/resolv.conf 确保EDAS的nameserver 放在首位。

    l 查看 /home/admin/logs/vipsrv-logs/vipclient.log 中

    l 如果有 403 access denied. 说明是容器所在宿主机的时间没有同步。需要联系云操系统的同事进行时间同步。时间同步后重启容器就可以注册成功。

    l 如果有 error code 500 需要检查dncs-server 服务是否正常。

    6. ** 如何检测dncs-server服务是否正常**

    l 登录edas 物理机

    l docker ps|grep dncs-server

    l docker exec -it docker_id bash

    l cd /home/admin/bin

    l 运行sh chekc_dncs.sh

    l 如果 check_dncs.sh 运行异常说明dncs-server出现问题。

    7. ** 如何处理dncs-server服务的异常**

    l 登录edas 物理机

    l docker ps|grep dncs-server

    l docker exec -it docker_id bash

    l cd /home/admin/bin

    l 运行sh chekc_dncs.sh

    l 如果 check_dncs.sh 运行异常说明dncs-server出现问题

    l 出现异常后可以进行 docker restart docker_id 重启dncs-server 容器,容器重启后大概需要3-7分钟启动dncs-server 的业务,可以使用/home/admin/bin/check_dncs.sh 检查是否启动完成

    8. ** 如何判断dncs-server服务的异常的原因**

    l 登录edas 物理机

    l docker ps|grep dncs-server

    l docker exec -it docker_id bash

    l cd /home/admin/bin

    l 运行sh chekc_dncs.sh

    l 如果 check_dncs.sh 运行异常说明dncs-server出现问题

    l dmesg |grep java

    l 如果出现Out of memory: Kill process xxxx(java) 说明 dncs-server 进程由于OOM被linux 系统kill

    9. 注册到edas中不集群之间的服务是否可以互相调用

    l edas 鉴权体系的隔离不同账户之间不可能互相访问

    l 不同集群使用不同的k8s集群做实现,不同k8s 集群的网络是不可以相通的

    10. edas 负载均衡的机制是如何做的

    l 如果使用HSF协议,HSF协议内部兼容了服务的负载均衡

    l 如果使用spring cloud 框架下的RESTful 协议,由spring cloud 的Ribbon组件提供负载均衡

    11. 服务调用失败的重试机制如何实现

    l 如果使用spring cloud 框架下的RESTful 协议,由spring cloud 的Ribbon组件重试,可以在application.properties 中配置ribbon 的重试策略

    12. edas环境下如何使用Junit单元测试

    由于edas应用的启动依赖于pandora 容器所有需要在Junit 测试类上面添加如下配置引入pandora 容器的启动:

    1. @RunWith(PandoraBootRunner.class)

    2. @DelegateTo(SpringJUnit4ClassRunner.class)

    3. // 加载测试需要的类,一定要加入 Spring Boot 的启动类,其次需要加入本类。

    4. @SpringBootTest(classes = {ProviderApplication.class, JUnitTest.class })

    5. @Component

    相关文章

      网友评论

          本文标题:阿里云企业级互联网架构实践系列-EDAS 开发(续)

          本文链接:https://www.haomeiwen.com/subject/pcdudktx.html