Flink standalone方式搭建及问题

通过Docker一键搭建,以下是模板。

version: '3.1'
services:
  jobmanager:
    image: flink:latest
    ports:
      - "8081:8081"
    command: jobmanager
    volumes:
      - ./jobs:/opt/flink/jobs:rw
    environment:
      - |
        FLINK_PROPERTIES=
        jobmanager.rpc.address: jobmanager
    deploy:
      resources:
         limits:
            cpus: "2.00"
            memory: 4G

  taskmanager:
    image: flink:latest
    depends_on:
      - jobmanager
    command: taskmanager
    scale: 2
    environment:
      - |
        FLINK_PROPERTIES=
        jobmanager.rpc.address: jobmanager
        taskmanager.numberOfTaskSlots: 2
    deploy:
      resources:
         limits:
            cpus: "2.00"
            memory: 4G

遇到的坑1、class传参问题

【错误】./bin/flink run ./jobs/flinkpgsql-1.0-SNAPSHOT-jar-with-dependencies.jar -c cn.sdust.jtyhzl.packingcnt.ParkingCnt

【正确】./bin/flink run -c cn.sdust.jtyhzl.packingcnt.ParkingCnt ./jobs/flinkpgsql-1.0-SNAPSHOT-jar-with-dependencies.jar

【结论】 flink run 传参只能放脚本地址前面。

Nginx限制内网IP访问

allow 127.0.0.0/24;
allow 10.0.0.0/8;
allow 172.16.0.0/12;
deny all;

附加资源备忘录

地址块(CIDR)        范围                地址数量    范围    目的
0.0.0.0/8        0.0.0.0-0.255.255.255        16777216    软件    用于广播消息到当前(“this”)[1]
10.0.0.0/8        10.0.0.0-10.255.255.255        16777216    专网    用于专网内的本地通信[2]
100.64.0.0/10        100.64.0.0-100.127.255.255    4,194,304    专网    用于运营商级NAT[3]时服务提供商与其订户之间的通信
127.0.0.0/8        127.0.0.0-127.255.255.255    16777216    主办    用于本地主机的环回地址[4]
169.254.0.0/16        169.254.0.0-169.254.255.255    65536        子网    用于单个链路上两个主机之间的链路本地地址,如果没有指定IP地址,例如通常会从DHCP服务器检索[5]
172.16.0.0/12        172.16.0.0-172.31.255.255    1,048,576    专网    用于专网内的本地通信[2]
192.0.0.0/24        192.0.0.0-192.0.0.255        256        专网    用于IANA IPv4专用地址注册表[6]
192.0.2.0/24        192.0.2.0-192.0.2.255        256        文档    分配为“TEST-NET”用于文档和示例。不应该被公开使用。[7]
192.88.99.0/24        192.88.99.0-192.88.99.255    256        互联网    由6to4任意继电器使用[8]
192.168.0.0/16        192.168.0.0-192.168.255.255    65536        专网    用于专网内的本地通信[2]
198.18.0.0/15        198.18.0.0-198.19.255.255    131,072        专网    用于测试两个单独子网之间的网络间通信[9]
198.51.100.0/24        198.51.100.0-198.51.100.255    256        文档    被分配为“TEST-NET-2”用于文档和示例。不应该被公开使用。[7]
203.0.113.0/24        203.0.113.0-203.0.113.255    256        文档    分配为“TEST-NET-3”用于文档和示例。不应该被公开使用。[7]
224.0.0.0/4        224.0.0.0-239.255.255.255    268435456    互联网    保留为组播[10]
240.0.0.0/4        240.0.0.0-255.255.255.254    268435456    互联网    保留供将来使用[11]
255.255.255.255/32    255.255.255.255            1        子网    保留为“有限广播”目的地址[11]

Mysql8 版本兼容问题

先看一下查询 SELECT rownum – 1 AS ROW FROM (SELECT *, (@i :=@i + 1) AS rownum FROM xms_document, (SELECT @i := 0) AS it WHERE states=1 and catid=13 ORDER BY sortid desc,createtime desc) AS t1 WHERE id = 181

这个查询在Mysql5.7里面能正常,跑到Mysql8里面报错了。且不吐槽为啥开发这样写吧,单拆这个问题去Debug。拿到里面的子查询 SELECT *, (@i :=@i + 1) AS rownum FROM xms_document, (SELECT @i := 0) AS it WHERE states=1 and catid=13 ORDER BY sortid desc,createtime desc 发现是正常的。

最后结果发现是SELECT rownum – 1 AS ROW中ROW为Mysql关键词,最后解决加了“,修正为先看一下查询 SELECT rownum – 1 AS `ROW` FROM (SELECT *, (@i :=@i + 1) AS rownum FROM xms_document, (SELECT @i := 0) AS it WHERE states=1 and catid=13 ORDER BY sortid desc,createtime desc) AS t1 WHERE id = 181

Grafana使用技巧

1、切换图标显示在右侧【Search Option】上方。

2、时间筛选Unix时间戳用 $__unixEpochFilter(s.create_time)

3、Variables 从Mysql Query 多字段情况 使用【 SELECT field1 as __text,field2 as __value
FROM table】方式进行查询,显示的时候显示 __text,使用的时候可以使用 ${Demo:value}。

4、Row可以按变量进行Repeat。

GOGS+Drone CICD实践记录

之前一直在做Gitlab+Jenkins的CICD实践,由于这套架构太吃性能了。在小服务器上抗不住,所以构建了Gogs+Drone的CICD方案,记录下坑。

1、drone-server 1.0 版本推荐的挂载目录是 /data/drone 2.0版本推荐的挂载目录是/data

2、使用容器启动的drone,重启后再登录提示【Unauthorized】,去Gogs-用户设置-授权应用,删除之前的应用再登录即可。

3、同理,docker重启要去Gogs-项目设置里面,把之前webhook删除掉,再去drone项目把项目disable了再激活一次,解决重启后webhook的token问题。

不知道为啥drone没把webhook 和 user token 持久化下来。

iphone上mitmproxy证书设置

Mac安装mitmproxy并添加证书后,基本问题不大,都能正常运行起来

手机端iphone上下载安装mitmproxy证书:

1、手机和PC在同一个局域网中,设置wifi代理为PC端的ip,端口为mitmproxy的端口(默认8080)

2、手机浏览器访问mitm.it,下载安装mitmproxy描述文件,完成验证

3、经过上面两步,个别APP就可以访问并被mitmproxy在PC端截获,但有时发现很多APP无法上网,这时还需要添加证书的信任

“设置”——关于本机——证书信任设置——开启mitmproxy完全信任

简单几条命令搭建共享式samba

有时候在公司需要一个共享的空间,samba最适合做这个,不需要太高的安全级别,只是最简单方便的文件共享 。

yum install samba
chkconfig smb on
vim /etc/samba/smb.conf

调配置文件的两个地方,第一个改为share用户模式,并设置用户为root.
继续阅读简单几条命令搭建共享式samba

win10 sqlserver2016开启远程访问

1 先以window用户登录Microsoft SQL Server Management Studio

在Sql链接上面右键属性=>安全性=>服务器身份验证=>修改为【Sql Server和Windows身份验证模式】

返回到链接界面打开链接=>点击安全性=>登录名=>选择sa右键属性=>修改为Sql Server身份验证并设置密码,然后点击左侧状态将登录选择为已启用

继续阅读win10 sqlserver2016开启远程访问