当前位置: 首页 > news >正文

优维低代码:第三方接口接入

 优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。


连载第四十四期

《现场定制:定制第三方接口接入》

# 第三方接口接入

通过定制 provider 来对接第三方接口,有 2 种调用方案:

1.直接调用第三方接口 url,但这里会有跨域的问题,需要第三方接口开放跨域访问

2.将第三方接口注册到优维的 api_gateway,这样不会有跨域的问题,同时还提供了:

  • 后端 api 不需要直接暴露给浏览器,避免安全问题
  • 名字服务路由能力,避免单点和 hardcode ip
  • 当前登录用户传递

# api_gateway 配置

首先,这要说明下部署架构,如下图所示:

 

api_gateway 提供了统一的转发请求服务(如果是集群部署,则在对外服务的逻辑机器上,一般有 2 台或 3 台)

cd /usr/local/easyops/api_gateway/
vim conf/conf.default.yaml

你将能看到如下配置:

gateway:services:- name: cmdb.* # 匹配 uri 的前缀addr_type: ens # ens|direct, direct 表示不走 ens 解析,直接配置目标地址,不填时默认为 ensservice_name: logic.cmdb.resourcehostname: cmdb_resource.easyops-only.comdefault_policy: allow # allow|deny

conf.default.yaml 为默认配置,如果需要现场修改,请在 conf.yaml(如果没有,则新建)做个性化修改,实际配置将会合并两者

vim conf/conf.yaml

将如下内容添加到 conf.yaml 里面

gateway:services:# 添加如下配置,将匹配浏览器调用的 uri:/api/gateway/your-api-prefix.xxx/aa/bb/- name: your-api-prefix.* # 匹配 uri 的前缀addr_type: ensservice_name: logic.your-api-service-namehostname: your-api-host-namedefault_policy: allow # allow|deny

随后注册 service_name:
/usr/local/easyops/ens_client/tools/register_service.py logic.your-api-service-name api-port api-ip

可注册多个实例,注册多个则在调用时候为轮询策略

[root@monitor_10_0_5_10 api_gateway]# /usr/local/easyops/ens_client/tools/register_service.py logic.your-api-service-name 8000 192.168.100.89
try register service(logic.your-api-service-name, 8000) at (127.0.0.1:9100)
register service(logic.your-api-service-name, 8000) success!
[root@monitor_10_0_5_10 api_gateway]# /usr/local/easyops/ens_client/tools/get_all_service.py logic.your-api-service-name
23377279359414395 192.168.100.89 8000

如果想查看当前注册的所有名字服务,请在浏览器手动输入
http://your-easyops-console-host/admin/ens 查看列表

http://www.lryc.cn/news/58748.html

相关文章:

  • SQL 177. 第N高的薪水
  • 14天手撸交互式问答数字人直播教程-课程计划
  • spring boot3.0新特性Http客户端远程调用
  • 查询联系:多表查询 - 1
  • 「Bug」OpenCV读取图像为 None 分析
  • EVO——视觉里程计/SLAM轨迹评估工具
  • TCP为什么要三次握手,而不是两次或四次?
  • git 命令:工作日常使用
  • Http和Https
  • 【计算机网络复习】第三章 传输层 2
  • 你真的会自动化测试?自动化测试技术选型抉择
  • 【id:31】【20分】A. Point(类与构造)
  • ASM字节码处理工具原理及实践(二)
  • Golang每日一练(leetDay0030)
  • QT5.15.2 在线安装下载速度慢的解决办法
  • Cadence Allegro 导出Waived Design Rules Check Report报告详解
  • Java阶段一Day19
  • radmin远程控制软件怎么样,有没有替代品
  • Java反射面试总结(一)
  • 【论文阅读】3D-LaneNet
  • Kafka的概念|架构|搭建|查看命令
  • 大数据项目实战之数据仓库:电商数据仓库系统——第5章 数据仓库设计
  • OpenHarmony社区运营报告(2023年3月)
  • 杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
  • 在three.js中废置对象
  • Java中的String类真的不可变吗?
  • 电脑重装了系统开不了机怎么办?
  • SPOJ-NSUBSTR - Substrings(SAM求所有长度子串的最大出现次数)
  • Mariadb10.5基于同服务器多实例主从配置
  • linux 修改主机名称