您的位置:  首页 > 技术杂谈 > 正文

干货分享 | HZERO系列组件之开发者模式组件(下),组件高级特性

2022-10-20 12:00 https://my.oschina.net/u/4580203/blog/5585460 汉得数字平台 次阅读 条评论

图片

行之力则知愈进,知之深则行愈达。上篇我们讲述了开发者模式组件的快速入门,相信大家在实践中也有了深刻的理解,接下来我们来进一步了解开发者模式组件的高级特性。

特性一:自定义路由

含义

开发者模式组件可以自定义服务的优先级,路由时会优先路由到优先级高的服务。

 

系统操作

新建XXXServicePriorityPolicy类,并实现开发者组件中的接口ServicePriorityPolicy ;假设以IP为172.11.11.11的服务为优先路由的服务,此时可实现接口,把该IP对应的服务优先级置为最高。

配置如下:

public class XxxServicePriorityPolicy implements ServicePriorityPolicy{// 策略是否匹配@Overridepublic boolean support(@NonNullServiceInstance serviceInstance){return "172.11.11.11".equals(serviceInstance.getHost());}// 服务的优先级 优先级越高,优先路由到该服务@Overridepublic int serverOrder(@NonNullServiceInstance serviceInstance){return Ordered.HIGHEST_PRECEDENCE;}// 策略优先级,定义多个策略时,优先应用优先级高的@Overridepublic int getOrder(){return Ordered.HIGHEST_PRECEDENCE;}}

 

特性二:平台自定义路由

含义

上篇文章中我们提到一种场景,在实施过程中出现之前测试通过的功能又报错了,原因是其他开发人员启了本地服务,导致线上流量负载到本地去了。

在不做开发者配置启动服务的前提下,平台采用上述特性一的方式更改服务的优先级,那么会优先路由到线上的服务,而不会路由到本地未配置开发者的服务。

优先级排序:开发者自己的服务 > 线上服务 > 默认(无线上和开发者标签) > 其他开发者的服务。

线上服务标识:只需要在服务上进行配置,打上线上服务的标签。

注:开发者路由组件只建议在开发环境使用

 

系统操作

配置如下:

在Bootstrap.yml中声明配置项

eureka:  instance:    metadata-map:      # 开发者路由标签      DEVELOPER_ROUTE_TAG: ${HZERO_DEVELOPER_ROUTE_TAG:}

在Values.yaml中声明配置项

# 开发者路由标签HZERO_DEVELOPER_ROUTE_TAG:

在线上环境配置线上服务标签​​​​​​​

# 开发者路由标签HZERO_DEVELOPER_ROUTE_TAG: ONLINE

 

特性三:服务间请求走网关

含义

在实际工作中,本地起的服务要被别的服务访问,必须保证网络的互通,但是很多情况本地和服务器网络是不互通的,这个时候通常是通过搭建VPN解决网络的问题;

其实还有一种解决办法,就是引入开发者模式组件,无需搭建VPN也能绕过网络问题。

注:网关引入开发者,不用做任何配置; 在其他服务中引入开发者需做以下配置

 

系统操作

配置如下:​​​​​​

hzero:developer:# 开启服务间调用走网关request-transform-to-gateway:true# 配置网关地址, ip+端口gateway-url: http://127.0.0.1:8080# 配置路由信息。在取服务路由信息时会优先取服务治理中的服务路由,对应Redis缓存为 `hadm:routes`。如果是自己的服务没有通过服务治理管理,可以通过一下配置来配置服务的路由信息service-route:srm-qam: sqam

服务间走网关的这些请求,会跳过网关中的鉴权逻辑、限流熔断逻辑。

注:对于自定义RestTemplate是无法生效的,但可通过以下配置实现本地调用:​​​​​​​

hzero:  admin:    auto-registry:      # 是否开启自动注册的功能,默认为true      enable: false    client:      # 如果不开启服务发现,则需要直接指定admin服务地址,可配置多个admin节点      server-list:        # 网关地址         - 172.20.16.46:8061

 

上述的开发者高级特性是版本1.8.1才有的功能,目前支持1.7及以上环境引入开发者, 1.7以下版本暂不支持。

通过以上描述,想必大家对开发者模式组件的高级特性都有了一定的了解;接下来,大家可以在线下实践,在实践中熟悉开发者模式组件高级特性。

 

往期推荐

1汉得企业级数字化PaaS平台 HZERO 1.9.0 版本正式发布!

2汉得aPaaS低代码平台-飞搭 2.3.0 RELEASE正式发布!

3重磅发布 | 汉得iPaaS全域集成平台 集星獭 1.5.0 版本正式发布

4免费试用 | 汉得企业级PaaS平台HZERO Lite安装版 1.9.0 正式发布!

5干货分享 | HZERO系列组件之消息管理组件,满足您的多种发送需求

6干货分享 | HZERO系列组件之开发者模式组件(上),快速入门实战

 

联系我们

产品试用请登录开放平台。请在 PC 端打开:

https://open.hand-china.com/market-home/trial-center/

产品详情请登录开放平台:

https://open.hand-china.com/document-center/

如有疑问登录开放平台提单反馈

https://open.hand-china.com/

图片

图片

▲ 更多精彩内容,扫码关注 “四海汉得” 公众号

展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接