很久没有发过blog了, 感觉自己的状态没有刚入行时候那么有劲头, 面临的问题很多, 最大的可能还是没有让人振奋的东西可以做,
做了几年的开发人员, 说真的, 高并发云云的, 几乎和我没有半毛钱的关系, 很简单的用一点redis缓存就算是在我自己参与的项目中的突破了,最多也就是用了微服务的,但是有时候觉得用了还不如不用
微服务里面的很多问题直接被忽略掉, 分布式事物?扩容(因为根本不需要,单服务就够了)?数据库热备冷备?这都只是停留在认知阶段。
不知道会不会也有很多同行和我一样,有大环境的原因也有自身的原因吧, 半路出家, 速成班(不是说速成的没有成长成高手的)
说一说写这个blog的原因吧
今年公司要做关于边缘网关相关的一些项目, 经过讨论最终决定使用EdgeX Foundry这套边缘网关框架
使用它的原因 不外乎 出自大厂(应该最初是戴尔发起的一个项目),文档相对全, 提交更新及时, 在2019年使用GO语言重构了整个项目(我感觉这是一个伟大的决定也是一个无比艰难的决定)
使得整个项目的系统资源占用下降了近十倍
但是在初期研究的过程中, 也遇到了很多的问题, 物联网方面国内虽然有许多大厂都在做了, 像阿里,华为,百度,小米等都有自己的生态, 但是开放度都不高,更有的要结合他们自己的云(虽然好像不是强硬的)
国内社区有, 但是非常不活跃, 能看到的都是2018年, 还是java的时候的一些社区blog,博客资源也非常稀少, 大多数的作者, 仅仅停留在demo的层面上做了详细或者不够详细的 讲解
其中写的比较好的 目前来看是在2020年1月19号发布的链接地址如下 https://www.hangge.com/blog/cache/detail_2341.html 此文的作者把最基础的部分非常详尽的讲述清楚,在此也非常感谢此文的作者带领我进入
了Edgex的大门,但是仍然对代码开发的部分没有说, 在网上也几乎没有找到相对应的资料。
虽然官网的资料非常齐全, 但是一点一点的扣, 也是非常麻烦的也需要慢慢的去理解,所以有了写这个系列bolg的想法, 在文中我不会把官方的一些架构图放出来
甚至我也没有强调EdgeX架构层次的内容,架构图这中东西,在我这个层次来看, 没理解的时候看了和没看一样, 之后开发了再看那个架构图才觉得思路是清晰的
本系列注重的是开发而不是概念,当然有些时候一些必要的概念也会呈现出来
先说名, 我不是高手, 在云云的平庸的程序员中的一个,混口饭吃而已, 偶然写点东西, 也算是对自己稍微有点交代吧 ,文中的所有理解都出自个人,大多数是官方网站获得的,如有错误请指正,
好了言归正传开始体验一下这个算是新生的边缘网关框架
先列出官方文档地址:https://docs.edgexfoundry.org/2.0
访问稍微有点慢,建议大家可以克隆下 https://github.com/edgexfoundry/edgex-docs 官方代码库中的文档项目,自己启动个nginx服务器,在本地运行会快很多
还有对github访问慢的同学, 可以在 gitee.com 里面导入github的项目,这样快很多,我自己就这样弄的的, 放出我自己的地址
git clone https://gitee.com/azhw/edgex-docs.git
之后我都用github的 地址出现, 大多数用到的我都转到我自己的gitee仓库中了,可以找找
既然是初体验, 就先跑起来看看吧,本系列中所有的分支都是使用的fuji的发布,clone到master的同学自己checkout到fuji分支上
建议win平台的同学装个Ubuntu的虚拟机,至于原因, 好像工控系统的都用Ubuntu, 官方文档里面的许多命令也都用Ubuntu为例,在之后编译的make命令, win系统里面好像挺麻烦的
我在写文章的时候也新建了一个UbuntuServer版的虚拟机,
docke换源之类的别忘了, 要不比蜗牛还慢,
git clone https://github.com/edgexfoundry/developer-scripts cd developer-scripts/releases/fuji/compose-files #path是你自己指定的一个目录,可以检查一下device-virtual的部分是否打开了 cp docker-compose-fuji-no-secty.yml path/docker-compose.yml cd path sudo docker-compose up -d
然后就是各种下,启动完成之后,
我们有直观感受的就是 consul控制台 ip:8500 ip:4000
先访问 ip:8500
如下显示
最后会有几个不成功的
原因我也不清楚, 但是目前还用不到,看服务名, 应该是和安全有关的一些服务
接下来是ip:4000 的一个ui界面
登录用户名和密码都是admin
首先是要创建一个 Gateway, 要不什么都干不了
有三个参数 Name Description Address 前两个随便写,就是对边缘网关的一个标记, 最后的地址一定要写启动docker容器的服务器的ip(至少是内网可访问)
创建成功后, 别忘记选定最前面的单选按钮,之后就可以随便点点了
如果正常的话, 在DeviceService中会看到一下内容前提是启动时device-virtual服务在docker-compose.yml文件中不是被注释掉的