Nacos版的背景

部分用户在深入使用Fox-Edge这款产品之后,比较认可Fox-Edge的价值,希望这款产品从 边缘端 部署场景,进一步拓展到他们的 云端 部署场景。

设备的硬件平台专属专用,设备中的软件独占整个设备的资源。这一块的软件架构设计,通常是有状态的。

它通常采用的是 服务化架构 ,里面的每一个服务都是系统中的功能模块,它的一个服务只能部署一个独立的服务进程。

它的管理和扩展,是按一个个的设备盒子进行管理的。每个设备盒子,里面安装了完整的独立软件系统。

服务器的硬件资源庞大,属于公共平台,通常将服务器的按容器化的方式进行管理。这一块的软件架构设备,通常是无状态的。

它通常的是 微服化架构 ,里面的每一个服务也都是系统中的功能模块,但是它的一个服务,可以被部署有很多的独立服务进程。 这些服务进程,往往还运行在不同的服务器之上,只是在不同服务器上的各服务进程之间通过网络构成了集群。

它的管理和扩展,是按一个个容器进行管理的。每个容器通常包含一个服务,大量的容器共同组织成一个完整的软件系统。

通过上面的简单说明,你会发现边缘端和云端的架构、部署、管理,完全是不一样。

但是,灵狐跟这些用户的交流后,认为Fox-Edge同时支持边缘端和云端的部署场景,还是非常有价值的,而且技术要为用户的业务服务, 所以决定让Fox-Edge支持边缘端和云端的双架构。

在这边,暂且将部署在单机设备上的Fox-Edge称为 local版 ,将部署在云端服务上的Fox-Edge称为 nacos版

nacos版主要为那些 想将Fox-Edge作为他们物联网云平台的一个技术底座使用的用户 而开发的。 这边存在的一个假设:这些用户已经比较熟悉Fox-Edge的 local版 ,并有自己的开发和运维人员,深度掌握了Fox-Edge的特性。

架构的调整,不是一蹴而就的故事,而是逐步调整的过程,下面的关键版本特性

	1.1.6版:
		1.将服务之间的通讯,由订阅/发布模式,调整为生产者/消费者模式
		
	1.1.7版:
		1.将服务的结构,调整为local版和nacos版
		2.网关的路由,调整为local版自动注册和nacos版的人工注册

JAVA程序给很多用户会有臃肿,内存占用率高的印象,主要是因为很多JAVA开发人员开发的JAR组件,是按服务器内存巨大的环境下开发出来的。 很多服务端JAVA的开发人员对内存的使用,本着可以随意使用心态而开发的,这就导致内存的占用率比较大。

但是,实际上JAVA这种开发语言,一开始就是面向嵌入式设备而设计的。

所以,内存占用率,是JAVA开发人员在开发JAR包的问题。

local版的fox-edge,灵狐主要是为了在4G内存下的小型化设备上运行,除了少数Spring框架,基本上JAR组件都是灵狐开发的。 灵狐在开发的过程中,对内存的使用,都是针对小型设备下的小内存场景下,精打细算开发的,所以内存占用率比传统的JAVA开发人员,都要低非常多。

nacos是阿里巴巴的开发人员,面向云端服务而开发的,阿里巴巴nacos团队开发的nacos组件,具有java服务器程序内存占用率高的通病。

fox-edge的nacos版本程序引入nacos的相关组件后,nacos的这部分组件对内存的需求都增长的比较大,相比local版将近翻了一倍, 所以,你在使用nacos版本的时候,请按服务器的内存规格(至少8G内存)去使用nacos版的fox-edge。

Nacos版的部署

请到灵狐云端的页面下载Fox-Edge最新的初始安装包,默认的账号/密码:Fox-Edge-Public/12345678

Nacos版的启动

组件下载安装

1、初始状态

从 仓库管理>服务模块配置,可以看到,新安装的Fox-Edge只有gateway-service和manager-service两个内核服务
image

2、下载服务

从 仓库管理>服务模块仓库,可以看到在灵狐技术网站的中央仓库提供的服务列表。

  #先下载下列服务
  1、channel-simulator
  这是一个通道服务,在测试环境下,为开发者提供一个模式设备的问答响应能力,方便开发者进行设备报文级别的测试
  在此,可以也可以充当设备模拟器的作用
  
  2、device-service
  这是设备数据解码的核心服务,它为上层应用提供面向设备的会话操作。它会将面向设备的会话操作,编码成为通信报文
  然后发送给下层的通道服务,再由通道服务转发给远端的物理设备。当远端设备通过通道服务返回数据的时候,对报文进
  行解码操作,使之成为上层应用可以理解的业务对象。
  
  3、controller-service
  这是控制器服务,会根据用户的监控认为编排,周期性的将设备操作任务,发送给device-service服务。当远端的设备响
  应后,device-service在完成报文解码后,将设备的业务数据返回给控制器服务。
  控制器服务在获得远端设备的业务数据后,会将业务数据发送给persist-service服务,进行持久化保存。
  
  4、persist-service
  这是持久化服务,控制器服务从设备收集完成数据之后,会把需要持久化保存的数据,发送给persist-service服务。此时
  persist-service会将设备的数据,保存到Redis和MySQL当中,供其他服务消费使用。
  

image

3、安装服务

image

4、检查安装

image

简单测试验证

1、通道的测试

从 任务管理>通道操作任务,给模拟设备发送一下测试报文,可以看到模拟设备返回了响应报文,此时说明Fox-Edge跟模拟设备通信上了
image

2、设备的测试

从 任务管理>设备操作任务,给模拟设备发送一下操作请求,可以看到模拟设备返回了响应数据,此时说明Fox-Edge跟模拟设备能够正常会话上了
image

3、添加监控任务

从 任务管理>设备监控任务,给控制器服务添加一个监控任务,让其周期性的去访问远端设备
image

4、检查监控数据

从 设备管理>设备数值,可以看到添加监控任务后,不断从远端设备获得并持续更新数据,这些设备数据保存在redis和mysql当中
image

Nacos版的约束