kubeedge mappers

前言

之前把kubeedge 云边环境搭建好了,现在开始做mappers开发。包括以下几个步骤
1、基于标准sdk 开发mappers(边端、云端都行,因为测试的时候需要mqtt环境,我用的边端)
2、将mappers 打包镜像,上传docker hub
3、云端使用deployment,将pod下发到边端
系统:ubuntu20

需要用到golangci-lint
我直接用命令snap install golangci-lint

1、开发mappers

下载mappers-go-main

根目录下运行 make template Testtcpserver
可以看到
mappers-go-main/mappers 多了个项目 Testtcpserver
Testtcpserver/driver/client.go 里面有个Get方法,定时调用这个get方法,做设备采集,然后基于mqtt topic 做定时发布

采集项目一般分server、client,如果你写的是server端,那么你要重新写server方法,被动接收client数据,并缓存数据,mapper定时调用get方法的时候,就把缓存的数据,发布到mqtt

这个项目用klog做调试,运行的命令跟klog 等级相关,比如 
klog.V(4).Info("Set result:", err, results) 对应的命令就是
go run main.go --v 4

goland 的对应的参数可以设置
在这里插入图片描述

mappers 有个configmap
对应到testtcpserver/configmap 路径下的 configmap_test.json,这个文件的路径需要配置到testtcpserver下的 config.xml 的configmap

2、打包并上传镜像

我的本地docker hub 地址、端口是192.168.21.12:5000
注:docker 添加本地仓库,还要配置参数

Testtcpserver目录下运行以下命令
maker mapper Testtcpserver // 打包二进制文件
 docker build -t testtcpserver /usr/local/software/edgex/mappers-go-main/mappers/testtcpserver/
 docker tag testtcpserver:latest 192.168.21.12:5000/testtcpserver:v1.0
 docker push 192.168.21.12:5000/testtcpserver:v1.0 //打包镜像并上传到本地docker hub

3、云端下发镜像到边端pod

云端新建deploymentTesttcpserver.yaml 文件如下

apiVersion: apps/v1
kind: Deployment
metadata:
  name: testtcpserver
  labels:
    app: testtcpserver
spec:
  replicas: 1
  selector:
    matchLabels:
      app: testtcpserver
  template:
    metadata:
      labels:
        app: testtcpserver
    spec:
      hostNetwork: true
      containers:
        - name: testtcpserver
          image: 192.168.21.12:5000/testtcpserver :v1.0 (本地docker hub镜像地址)
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80
      # 指定节点运行
      nodeName: k8s-node2 (边端hostname)

···
kubectl create -f deploymentTesttcpserver.yaml
···

注意

打包镜像的时候,会有个k8s 授权的问题,需要把master 的 $HOME/.kube/config 文件拷贝到 镜像里面,不然的话,镜像无法获取授权,就连不到master

1、把 master的$HOME/.kube/config文件拷贝到边端
2、在testtcpserver/config 文件夹下
3、修改Dockerfile
4、包括configmap_negtest.json 文件,也要拷贝到镜像中

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在MyBatis中,mappers文件通常存放在resources目录下的mapper文件夹中。如果使用Spring Boot框架,则可以将mappers文件夹放在src/main/resources下,或者在application.properties中配置mapper的路径。 例如,在Spring Boot中,可以在application.properties中添加以下配置: ``` mybatis.mapper-locations=classpath:mapper/*.xml ``` 这将告诉MyBatis在classpath下的mapper文件夹中查找XML映射文件。如果你的mapper文件夹名称不是mapper,需要相应地修改路径。 ### 回答2: mappers文件路径是指在MyBatis框架中存放映射文件的位置。在MyBatis中,将SQL语句与Java类或接口进行映射是通过使用映射文件来实现的。映射文件通常以.xml作为文件后缀,其中定义了SQL语句的具体内容和与Java类或接口之间的映射关系。 在一个标准的Maven项目中,通常将映射文件放在resources文件夹下的mapper子文件夹中。这是因为resources文件夹是用于存放项目资源文件的目录,而mapper子文件夹则用于存放MyBatis映射文件。因此,mappers文件路径通常是"src/main/resources/mapper"。 在这个路径下,可以按照包结构的方式组织映射文件。例如,如果有一个包结构为com.example.mapper的映射文件,可以将该映射文件放在"src/main/resources/mapper/com/example/mapper"路径下。 在MyBatis的配置文件中,需要通过配置来告诉框架映射文件的路径。可以使用相对路径或绝对路径来指定。如果将映射文件放在了上述所述的默认路径下,可以使用相对路径"mapper/com/example/mapper/file.xml"来指定具体的映射文件。 总之,mappers文件路径是指MyBatis框架中存放映射文件的位置,通常放置在resources文件夹下的mapper子文件夹中,可以按照包结构的方式进行组织。配置文件中需要配置映射文件的路径,可以使用相对路径或绝对路径来指定。 ### 回答3: mappers文件是用来存放MyBatis映射文件的路径。在MyBatis框架中,mappers文件夹通常被用来存放数据表与实体类的映射关系。在这些映射文件中,我们可以定义SQL语句以及对应的参数和返回值类型。 在一个基本的mappers文件夹中,可能会包含多个映射文件,每个文件对应一个数据库表或一组相关的操作。 通常情况下,mappers文件夹位于resources目录下的一个子目录中,例如src/main/resources/mappers,这是一个常见的mappers文件夹路径,不过具体路径可以根据项目的实际情况进行设置。 在MyBatis的配置文件(通常是mybatis-config.xml)中,我们需要指定mappers文件夹的路径。一种常见的做法是使用相对路径,即相对于配置文件所在的目录来指定mappers文件夹的路径。例如,假设mybatis-config.xml位于src/main/resources目录下,那么可以使用相对路径../mappers来指定mappers文件夹的路径。 另外,还可以使用绝对路径来指定mappers文件夹的路径。绝对路径是具体的文件系统路径,它不依赖于配置文件的位置。例如,可以使用D:/project/src/main/resources/mappers来指定mappers文件夹的路径。 总之,mappers文件夹路径的设置是根据项目的实际情况和个人喜好来决定的,可以使用相对路径或绝对路径来指定mappers文件夹的位置。做好路径的设置可以确保MyBatis能够正确找到映射文件,并实现数据表与实体类之间的映射。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值