势如破竹的雷霆两招,微服务进阶Serverless
在应用开发中,服务器的开发一直是最重要的部分之一。在服务器开发不断演进过程中,我们可以将它简单分为5个阶段:物理机阶段->虚拟机阶段->
在应用开发中,服务器的开发一直是最重要的部分之一。在服务器开发不断演进过程中,我们可以将它简单分为5个阶段:
物理机阶段->虚拟机阶段->云计算阶段->容器阶段->当前的Serverless阶段。
(资料图片仅供参考)
不难看出这是一个部署环境从本地到上云,开发环境从大到小的演进过程。
我们可以将这个演进过程比喻成不同类型的汽车。
传统的IT结构就像私家车,它完全属于你,但是你需要花费很大的成本购买,并且需要不断地投入金钱和精力去保养。此外,如果想要到达一个目的地,你需要自己去驾驶它,就像开发者想要实现一个逻辑,需要自己去设计架构并开发一样。云计算阶段就像共享汽车,你只需花费很少的一部分钱去租用即可。当然,你还是需要自己去驾驶。Serverless阶段就像网约车,你要做的就是需要的时候,将目的地设置好,动动手指网络约车,且不需要亲自驾驶。就像开发者,只需聚焦在业务逻辑上,其他的环境等问题都已经设置好了。了解了各个阶段的特点后,若我们想要将一个存量的项目从一个阶段迁移到另一个阶段该怎么做呢?今天就简单演示一下“如何将一个传统微服务转化成Serverless的云函数”,让你通过简单快速的改造就能享受Serverless降本提效的优势。
板斧1-改造微服务此次以一个Java的微服务举例,我们将介绍如何把它转换为一个Custom Runtime的云函数,打破开发语言的限制。Custom Runtime支持多种不同语言的微服务,目前Node.js,Java和Python三种语言都是完美支持的,而其他语言则需要安装第三方解释器来支持。
通常改造的微服务内部可能设计了很多的接口。但是对于云函数,每一个Custom Runtime的函数都只提供了一个入口,就是invoke。
所以改造的第一板斧就是在微服务中创建一个入口函数叫invoke。
@RequestMapping(path = "/invoke", method = RequestMethod.POST)public Object postSimple(HttpServletRequest req, @RequestBody JSONObject body)
代码示例中的入口函数拥有两个入参,第一个是HTTP的参数,第二个是调用方传入的参数。函数可以通过不同的触发器来触发,而这些参数就是通过触发器传入的,如何通过不同的触发器调用函数稍后再展示。
通过传入的参数,我们可以在方法中将指令分发到不同的逻辑。例如在调用函数的时候传入我们想要调用的方法名字和入参,在invoke方法中通过传入的方法名去调用对应的微服务接口。
添加完invoke接口后,我们就可将微服务正常打包成jar包,并创建一个命名为bootstrap的脚本文件,文件中放入如下指令。
#!/bin/bashjava -jar WiseFunctionCustomDemo.jar
然后我们将jar包与脚本文件打包成如下结构的zip包。
unction.zip |---bootstrap //可执行文件,启动Server |---xxxxx.jar |---其他相关代码和依赖等
至此微服务改造后的云函数就创建完成了。
板斧2-触发函数如何通过不同的触发器调用函数,此次主要介绍两种不同的触发方式。
方式一:通过不同的SDK来主动触发云函数提供了Android、IOS、JS、Harmony等多种平台的前端SDK。另外,还有Java和Node.js的Server SDK,极大地满足了开发者在不同端调用云函数的诉求。无论是端侧还是云侧SDK,都可以在管理台创建HTTP触发器来打通SDK与云函数的互联。
以web js sdk为例,开发者在集成了SDK后首先需要绑定创建触发器后的标识。
其次再调用SDK提供的call接口,接口中将需要传递到函数内部的参数作为入参传入即可。
let functionCallable = agconnect.function().wrap("test-yanshi-$latest");let functionResult= await functionCallable.call(reqBody);
其他的SDK都可以依葫芦画瓢来调用云函数。
方式二:通过HTTP直接访问通过HTTP直接访问是最近云函数刚刚推出的调用方式。想要通过HTTP直接访问方式调用函数,就需要在创建函数时选择触发方式为http请求。
选择后我们即可看到生成了一个请求URL,这个URL可用于后续的请求。
通过HTTP直接访问可分为两个步骤:
1.通过获取token接口,获取云函数对应项目的token用于后续的请求。
2.通过刚刚管理台生成的URL来进行函数的调用。
详细内容可以参见HTTP调用函数。
除了文档中描述的在header中添加token和各种id之外,如果开发者想在请求中带入函数的其他相关入参,仅需在请求的body中将入参设置为json格式,请求后即可直接作为invoke方法的入参。
哐哐雷霆两招,势如破竹,就可以将传统微服务转化成Serverless的云函数。简单快速改造后,Serverless开发提效大门就已经为开发者打开。
当然,还有另一种更为细致的微服务改造方式,即您可以将微服务内部的每个接口业务逻辑,再拆分使用云函数来实现。
悄咪咪说下,目前云函数还支持元服务的开发,感兴趣的可以尝试一番。
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh
关键词:
[ 相关文章 ]
在应用开发中,服务器的开发一直是最重要的部分之一。在服务器开发不断演进过程中,我们可以将它简单分为5个阶段:物理机阶段->虚拟机阶段->
必胜客作为披萨在中国的引路人,近些年来的发展不尽如人意。2018年-2022年,除2021年必胜客出现营收同比增长外,必胜客其余年份营收均为同比负
拉芳家化(603630)03月30日在投资者关系平台上答复了投资者关心的问题。
央视网消息:中央纪委国家监委网站通报,据宁夏回族自治区纪委监委消息:宁夏回族自治区工业和信息化厅原一级巡视员张宏年涉嫌严
2023年4月3日天虹股份002419发布公告称公司于2023年4月3日召开业绩说明会具体内容如下问如何看待天虹app上商品大面积销售为零的情况答您好公司
近年来,广东省清远市积极探索法治乡村建设新路径,把法治融入乡村治理各个环节,不断激活乡村治理“法治细胞”,持续推动乡村振兴高质量发展
截至4月3日,数据显示,医药生物行业内共有125家公司率先发布2022年业绩报告,其中有82家公司去年净利润实现同比增长,占比超六成。业内人士普
高中英语论文范文参考第1篇看图作文--高中英语议论文写作观察下面的`图画,根据图画的内容写一篇短文,说明你和你的爸爸对暑假的不同看法。1、
欢迎观看本篇文章,小勉来为大家解答以上问题。挂牌督办是什么意思,挂牌督办的意思是很多人还不知道,现在让我们一起来看看吧!
60岁的领导送的礼物,给80来的男士挑选礼物不光要紧,只能表达你的一片心意就好了,最主要的是让领导看到你的重要性格,一般
长城网·冀云客户端记者吴苗苗李元华筛选种子、联系基地、组织培训……最近,河北省芝麻创新研究团队的专家们十分忙碌,5
1、红糖,盐,发酵粉和温水,搅拌均匀。2、加入普通面粉,揉成面团。3、把红糖换成白糖,揉一份面团,用保鲜膜包好,醒发1小
市场监管总局发布2022年车辆相关产品质量国家监督抽查情况通报。本次抽查检验510家企业生产的510批次车辆相关产品,涉
中国网地产讯昨天苏州市推进长三角生态绿色一体化发展示范区建设领导小组召开会议会议强调要全力抓好项目建设示范区即将迎来建设4周年要重点抓
据四川省卫生健康委员会、四川省财政厅、四川省农业农村厅、四川省市场监督管理局、四川省药品监督管理局川卫规〔2023〕2号关于进一步做好从业
行情表现4月3日收盘价当日涨跌幅五日涨跌幅PTA6300 00元 吨0 83%4 24%日内消息 1、【资金流向】商品期货市场资金流入2 19亿,资金大幅流入
品牌型号:iPhone13ProMax系统:IOS15 4手机promax是加大升级版的意思。Pro是升级版、专业版的意思,也是市面上经常能看到的系列。ma
新京报讯(记者姜慧梓)在4月3日举行的国新办新闻发布会上,科技部高新技术司司长陈家昌表示,该部正在积极推动算力网的建设,
2023年3月23日,赣州市人大常委会主任、党组书记赵多仙率赣州龙南世界客属第32届恳亲大会筹委会到访北京客家海外联谊会,北京客联会会长王建都
今年3月14日起召稼楼古镇封闭施工,为应对清明游的超大人流量,确保秩序稳定,上海闵行警方提醒市民注意变化,错峰祭扫踏青。
[ 相关新闻 ]
Copyright 2015-2022 人人医院网 版权所有 备案号:粤ICP备18023326号-36 联系邮箱:8557298@qq.com