5

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

 1 year ago
source link: https://studygolang.com/articles/36110
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

EASYOPS_youwei · 大约6小时之前 · 17 次点击 · 预计阅读时间 2 分钟 · 大约8小时之前 开始浏览    

2db130b3e27d4f489972536f29e6fc71~tplv-tt-shrink:640:0.image?traceid=202304111713020E760D9DD52B6EFD31FC&x-expires=2147483647&x-signature=xwN8dTVKvhgh6V0hdrgVs1aQqbU%3D

95f5df7a45eb4f35a1495c45fb9a3f03~tplv-tt-shrink:640:0.image?traceid=202304111713020E760D9DD52B6EFD31FC&x-expires=2147483647&x-signature=rG0t86qWhBuyYvhiz9fU29eb%2BFY%3D

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

连载第四十四期

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

# 第三方接口接入

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

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

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

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

# api_gateway 配置

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

1eeacee3b2b24b19aad5409dae50611c~tplv-tt-shrink:640:0.image?traceid=202304111713020E760D9DD52B6EFD31FC&x-expires=2147483647&x-signature=b634v7GZ%2BFNhP1yll4ZKMUFIBVU%3D

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 解析,直接配置目标地址,不填时默认为 ens
      service_name: logic.cmdb.resource
      hostname: cmdb_resource.easyops-only.com
      default_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: ens
      service_name: logic.your-api-service-name
      hostname: your-api-host-name
      default_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 查看列表


有疑问加站长微信联系(非本文作者)

280

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK