从木舟平台来庖丁解牛微服务

一、概述

有人奇怪为啥surging 宣布不更新,后面又更新了,又开发出木舟平台呢?我只能说有些事是命里注定,有些事情注定放弃不了,当你放弃的时候,会有客户花钱让你扩展更新,会有客户购买你的微服务引擎框架,甚至碰上叫你定制功能,给了代码,没给钱的,最近一年surging 就卖出去了10万,那为啥又开发木舟平台,是因为前年有个客户找我25万开发物联网平台,因为费用授权的关系,后面回绝了他,而后发现这是不是老天给我的机会呢?然后着手利用闲暇时间进行开发木舟物联网平台。现在平台初具雏形,几个月之后会推出稳定高效的微服务物联网平台。

木舟 (Kayak) 是什么?

木舟(Kayak)是基于.NET6.0软件环境下的surging微服务引擎进行开发的, 平台包含了微服务和物联网平台。支持异步和响应式编程开发,功能包含了物模型,设备,产品,网络组件的统一管理和微服务平台下的注册中心,服务路由,模块,中间服务等管理。还有多协议适配(TCP,MQTT,UDP,CoAP,HTTP,Grpc,websocket,rtmp,httpflv,webservice,等),通过灵活多样的配置适配能够接入不同厂家不同协议等设备。并且通过设备告警,消息通知,数据可视化等功能。能够让你能快速建立起微服务物联网平台系统。

那么下面就为大家介绍如何从创建组件、协议、设备网关,设备到设备网关接入,再到设备数据上报,把整个流程通过此篇文章进行阐述。

木舟物联网平台:http://117.72.121.2:3100

链路跟踪Skywalking V8:http://117.72.121.2:8080/

surging 微服务引擎开源地址:https://github.com/fanliang11/surging(后面surging 会移动到microsurging进行维护)

二、什么是微服务

微服务(Microservices)是一种软件架构风格,它将单一的应用程序拆分为多个小型服务,每个服务独立运行和部署,专注于特定的业务功能。这些服务通常拥有自己的数据存储,并通过轻量级的通信机制(如HTTP或RESTful API或消息队列)与其他服务进行交互。

对于以上概念很多人都很清楚,都背的滚瓜烂熟,甚至都可以谈到,服务注册、服务发现、负载均衡、服务熔断、服务降级、服务限流,RPC等方面的问题, 那么我今天就谈点实在的,让你区分真正意义上的微服务思想去构建解决方案,首先看下图:

通过上图我们可以把微服务分为 四种服务,接口服务,业务服务,聚合服务,中间服务

**接口服务:**就是对外业务接口服务,通过接口服务就能生成swagger文档服务,生成代理进行远程调用

业务服务: 业务服务它主要用于处理领域对象业务逻辑,是指在领域服务当中,对于业务实体通过数据仓储转化成数据模型,再映射到数据库的持久化处理。

**聚合服务:**就是远程调用多个业务服务,整合处理返回给终端,这里不包含任何的业务处理,只做数据整合。

**中间服务:**中间服务是跟业务无关,是对于组件的功能扩展服务, 比如EchoService就是框架自带的分流定位服务,还有对于协议组件的扩展服务。

三、网关

网关可以分为API网关和设备网关,功能包含身份鉴权,黑白名单,数据聚合,多种协议终端对接,路由转发。

身份鉴权:就是通过Token 进行身份认证。比如通过MD文件生成的身份认证对接说明,如下图:

黑白名单:通过设置IP,IP段来阻止或允许用户访问,如下图

**数据聚合:**就是驱动加载聚合服务,通过网关身份鉴权后统一访问。

多种协议终端:通过在设备网关中配置网络组件,消息协议就能生成终端协议对接

网络组件:

消息协议:

设备网关:

多种协议终端:通过在设备网关中配置网络组件,消息协议就能生成终端协议对接

路由转发:API网关在处理收到的请求时,会按照规则引擎配置的路由规则的优先级逐一进行匹配。匹配过程是从高优先级规则向低优先级规则进行遍历。如果与某条规则匹配成功,则转发请求至规则中配置的目标服务;如果匹配失败,则会返回404错误。如下图:

四、热部署模块

微服务需要满足热部署的功能,以满足业务或者功能升级带来的简便部署

上传业务模块:

上传消息协议模块:

五、链路跟踪

六、总结

最近平台更新需要延期,这边有客户定制需求,需要先解决客户的问题后再继续完善木舟平台。

相关推荐
fanly118 天前
如何搭建基于surging的分布式直播流媒体
微服务·surging microservice
fanly1110 天前
凯亚利用直播推流技术请大家看电影
surging microservice·surging
fanly1115 天前
使用的架构是否满足微服务设计思想?
surging microservice·surging
fanly1116 天前
凯亚IOT平台在线测试MQTT接入设备
surging microservice·surging
fanly1119 天前
凯亚物联网平台如何通过MQTT网络组件接入设备
surging microservice·surging
fanly1125 天前
.net clr 8年才修复的BUG,你让我损失太多了
surging microservice
fanly111 个月前
surging 集成SuperSocket预发布版本2.0
surging microservice
fanly111 个月前
通过jmeter压测surging
surging microservice
fanly111 个月前
帮客户解决基于surging的物流速运网关内存泄漏问题
surging microservice