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

一、概述

有人奇怪为啥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错误。如下图:

四、热部署模块

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

上传业务模块:

上传消息协议模块:

五、链路跟踪

六、总结

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

相关推荐
fanly119 小时前
帮客户解决基于surging的物流速运网关内存泄漏问题
surging microservice
fanly1112 天前
针对于基于surging的dotnetty组件内存泄漏问题
surging microservice
fanly1122 天前
线上测试木舟物联网平台之如何通过HTTP网络组件接入设备
surging microservice
fanly1122 天前
线上测试木舟平台发布
surging microservice
fanly114 个月前
基于surging的木舟平台如何分布式接入设备
surging microservice
fanly114 个月前
基于木舟平台浅谈surging 的热点KEY的解决方法
surging microservice
fanly115 个月前
基于surging的木舟平台如何构建起微服务
surging microservice
fanly115 个月前
基于surging 的木舟平台如何通过Tcp或者UDP网络组件接入设备
surging microservice
fanly115 个月前
基于surging 的木舟平台如何通过HTTP网络组件接入设备
surging microservice