# DistributedApplication **Repository Path**: gccai/distributed-application ## Basic Information - **Project Name**: DistributedApplication - **Description**: 说实话,我也不知道我写的算是啥。 我只是想把每个服务都分开,省着一个崩掉其余的也跟着崩掉。 跟之前看的微服务有点像,但是我没有用微服务框架,只用到了gin框架。 后续优化打算把redis和mysql用尽来。 框架的话可能要用到gorm, viper... 其余的用到再往上写。 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-10 - **Last Updated**: 2021-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 2021.11.11日任务: 把所有的register的方法写完,包括:心跳服务、主动理新服务、被动更新服务。 将今天剩下的TODO做完。 ---- 2021.11.11 完成 2021.11.11: 1.发送心跳服务写完--registry方面(主动能知,被动通知,而具体服务上更改自己的依赖信息还没有写) 2.主动更新服务写完--同上 3.被动更新服务写完--同上 4.昨天剩下的todo任务写完 2022.11.12日任务: 1.写图片检测服务的client 1.1.主动向registry发送注册信息 1.2.主动向registry发送关闭服务信息 2.写图片检测服务的server 2.1.心跳服务 2.2.检测服务 2.3.服务更改依赖信息服务 2021.11.12: 1. 心跳服务写完 2. 服务更新写完,更改了发送逻辑。 3. 安装paddle库,我用的是deepin系统,所以如何编译要看官方,paddle interface2.0版本的教程。 3.1 编译库花了很长时间,在linux下总体来讲除了下载库不能用github.com这个网址,就没啥了,要让自动化脚本不从github官网下载,可以更改Paddle文件夹下(也主是从官网git下的的文件夹)的CMakeLists.txt,里面ctrl+f 搜索github.com然后将这个改成hub.fastgit.org 或者 github.com.cnpmjs.org就可以了 3.2 除了这个,在编译的时候,会打开大量的文件,所以必须更改允许打开的最大文件数。命令是:ulimit -n 102400 就行了。 4. 通过git clone -b v2.0.0 hub.fastgit.org/xxxx/xxx 来将Paddle源码下载下来,里面有个go文件夹,这是go用来使用paddleInference的工具,只要里面的paddle文件夹下的就行。 5. 将编译源码的build文件夹下的paddle_inference_install_c_dir 改成paddle_c放到项目中。 2021.11.13: 1. 更改(3.4.5)这三个步骤是下跟据paddle inference v2.0.0 版本安装的,但是最后的使用的时候会报找不到模块,一晚上并没有弄懂。通过了解,go语言的版本其实就是c版本,用c/go去调用,这个更改,我直接用了c的预测库 2021.11.14: 调用paddle-goapi全部失败,正在排队问题中。 源码编译gcc8.2版本 #### 终于弄懂golang 使用paddle_inference的goapi了。 1. 到https://pkg.go.dev/github.com/paddlepaddle/paddle/paddle/fluid/inference/goapi#section-readme这里有官方文档,但是按照官方文档,我就是失败。 2. 我的步骤:1、 上paddlepaddle官网下载c语言最新版本的预测包。2、go get -d -v github.com/paddlepaddle/paddle/paddle/fluid/inference/goapi 下载的是最新版本的预测库(goapi)。3、做软链接,目的就是在运行的时候,自动进入这个预测包下。具体方法:进入~/go/pkg/mod/github.com/paddlepaddle/paddle/paddle/fluid/inference/goapixxxx 中,进行软链接操作:ln -s (下载下来的c语言预测库的位置,我的是~/goland/paddle_inference_c) paddle_inference_c . 这一步要注意的是,paddle_inference_c下面是paddle文件和third_party文件。 4、注意如何文件有权限问题,统一用 sudo chmod -R 777 文件夹名来更改文件权限。 5、这一步按照官网进行 sh test.sh 一般就会成功,但是当自己用模型使用的时候一般就会报错。而用Paddle-Inference-Demo这个测试的时候,文档上写的是要进行LD_LIBRARY_PATH的设置,设置这个没有错,但是文档上设置的东西出现问题。我们要按照test.sh中第二步的设置来设置。`export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/paddle_inference_c/third_party/install/mklml/lib/:$PWD/paddle_inference_c/third_party/install/mkldnn/lib/:$PWD/paddle_inference_c/paddle/lib/`然后再跑就没有事了,我们也可以直接写到.bashrc中。 2021.11.15: 1.完成发送注册信息。 2.完面发送关闭服务信息 3.完成peopleDetect模块逻辑 4.安装gocv库 2021.11.16: 1.完成检测服务。 2021.11.17-2021.11.21: 1.进行gocv安装,paddleInference安装 2.熟悉gocv, paddleInference fyne 等框架api 3.编写主要服务界面,并完成所有功能 2021.11.22之后是任务: 1.进行代码测试 2.布署到云服务器上