主要通过一个数据服务快速微服务化的案例来介绍Streamsets(3.20.0 汉化版)的使用。在当前下,微服务化异常盛行,肯能大家之前都用过spring boot实现微服务应用(当然不知道的可以搜下 RESTful API,这里涉及的比较多不重点讲),很多原来不是微服务的服务就需要快速地改成RESTful 接口对外提供服务,要是要用spring boot改写的话,想必一定要Coding了,哈哈,现在不需要了,本章通过一个案例介绍怎么通过streamsets快速实现服务的微服务化。
学习目的:学习使用构建微服务数据流、学习对原有的服务快构建RESTful API。
最终数据流的效果图:
这里我们讲两个微服务化的例子,一个对mysql数据库封装一下,让mysql对外提供RESTful API,另一个实现一个加解密的微服务,对外提供RESTful API。
访问一下效果:
访问一下结果:
前期准备:
(1)部署安装一个mysql数据库是必要的,建一个表插入一些数据。
构建步骤:
1.让mysql对外提供RESTful API
选择创建一个微服务数据流,当然若是选择成默认的普通数据流,进入数据流构建画布中也可以修改,具体怎么修改大家可以思考一下。
配置一下REST Service origin类组件的端口号和APP ID
选择destination类jdbc插件,配置jdbc连接串、用户名和密码、表名等,并将操作模式分别配置成INSERT、UPDATE、DELETE模式,实现数据增、改、删,这里展示了增加数据的插件,其他两个配置类似,只不过改一个操作模式。
对数据查询这里选用JDBC Lookup插件,配置jdbc连接串、用户名额和密码,查询语句sql由前面的插件或从用户端传送过来。
使用destination类response插件将结果返回到用户,返回状态码为200.
2.实现一个提供RESTful API的数据加解密服务
同样创建一个微服务数据流,配置RESTful service插件的端口号和APP ID
使用http路由插件实现数据的连接路由,这里设置请求方法都是post方法,一个加密路由和一个解密路由。
这里使用数据分流插件检测用户传来的数据字段中是否包含field字段,若是不包含没法对该字段进行加解密,所以在加解密之前对字段的存在性进行检测是必要的,要是没有该字段立即返回用户。
使用加解密插件进行加密,将插件模式设置加密模式,并配置加密字段,并在Key Provider选项卡中配置加密的方法和秘钥,这里的秘钥要生成base64串后填入,注意秘钥的长度要个加密算法中选择的长度要一致。
在解密算法中,解密字段的类型要求是byte array类型,所以使用表达式插件将前端传来的base64的字符串转换成byte array 类型
使用加解密插件进行解密,将插件模式设置解密模式,并配置解密字段,并在Key Provider选项卡中配置解密的方法和秘钥,这里的秘钥要生成base64串后填入,注意秘钥的长度要个加密算法中选择的长度要一致,并注意要与加密中选择的算法和秘钥一致。
注意一个问题:数据在加密后其实是生成了一个byte array类型的数据,但是用户收到是一个base64 串,这是streamset在数据传输过程字段编码的。
Streamsets实战之路正在更新中,尽情期待!!!
此文章为博主原创,转载请标明出处和原始链接,谢谢。