暂无个人介绍
能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
暂时未有相关云产品技术能力~
阿里云技能认证
详细说明2020年03月
短信服务的客户端dysmsapi20170525.Client不需要每次调用都实例化一个
需要引入依赖:在spring cloud 2020版本需要使用bootstrap.yaml作为配置文件需要手动引入依赖
org.springframework.cloud spring-cloud-starter-bootstrap 3.0.2
刚开始时get请求 考虑到报文过长
global $db;$ar=explode(',',$CD_ID);foreach($ar as $CD_ID){ $sql='Select * from '.tname('dj').' where CD_ID='.$CD_ID.''; $row=$db->getrow($sql); $server=$db->getrow('select * from '.tname('server').' where CD_ID='.$row['CD_Server'].''); if($row){ $CD_Url=$row['CD_Url']; $playurl=$server['CD_Url'].$CD_Url; echo '';}}
创建jobmanager-checkpoint-pvc.yaml
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: jobmanager-checkpoint-pvc namespace: flink-ha spec: accessModes: - ReadWriteMany resources: requests: storage: 30Gi storageClassName: nfs
创建taskmanager-checkpoint-pvc.yaml ————————————————
首先我们需要标定板,标定板可以通过打印棋盘图再粘到平整的板上。注意棋盘角点数量尽可能多,里我使用的是7 X 9个角点,每个方格的尺寸是2.50cmX 2.50cm。在OpenCV中调用findChessboardCorners()函数找到棋盘角点信息,再使用drawChessboardCorners()函数画出角点,调用cornerSubPix()函数得到棋盘角点的亚像素坐标,最后使用stereoCalibrate()函数进行双目标定,得出两个摄像头。
左侧网络设置是服务器端配置,可以选择协议类型是UDP还是TCP,UDP速度快但稳定性低,TCP速度慢但稳定性高,端口号就是本机作为服务器监听的端口号。
如何网络调试助手测试发送和接收数据
在左侧网络配置,不做修改,即使用UDP协议,端口使用8080,点击打开。
如何网络调试助手测试发送和接收数据
点击打开之后,会发现下方出现变化,如下图所示,有了远程主机的ip和端口号,其实就是上一步的服务器网络配置。
如何网络调试助手测试发送和接收数据
在下方内容区,写入一些数据,点击发送。
如何网络调试助手测试发送和接收数据
可以发现在数据日志有了新内容,第一行为发送数据,第二行为接收数据,代表刚刚通过本机发送了一些数据给本机服务器的8080端口,服务器成功接收了这些数据。
如何网络调试助手测试发送和接收数据
#字段(field)基本上和列(column)的意思相同
SELECT Concat(vend_name, ' (', vend_country, ')') FROM vendors ORDER BY vend_name; #多数DBMS使用+或||来实现拼接,MySQL则使用Concat()函数来实现。
SELECT Concat(RTrim(vend_name), ' (', RTrim(vend_country), ')') FROM vendors ORDER BY vend_name; #RTrim()去掉值右边所有的空格,LTrim()和Trim()则分别表示去掉左边和左右两边的所有空格
SELECT Concat(RTrim(vend_name), ' (', RTrim(vend_country), ')') AS vend_titile FROM vendors ORDER BY vend_name;
SELECT prod_id, quantity, item_price, quantity*item_price AS expanded_price From orderitems WHERE order_num = 20005;
SELECT 3*2; SELECT Trim(' abc '); SELECT Now(); #用于测试计算结果
flink1.13版本前可参考如下方式:https://blog.csdn.net/m0_37592814/article/details/108044830
flink1.13之前的版本可以参考上一文章
https://blog.csdn.net/m0_37592814/article/details/108044830
flink1.13 版本可以通过如下方式快速解决:
在创建hive表时 添加参数指定时区为:
'sink.partition-commit.watermark-time-zone'='Asia/Shanghai'
SET table.sql-dialect=hive;
CREATE TABLE hive_table (
user_id STRING,
order_amount DOUBLE
) PARTITIONED BY (dt STRING, hr STRING) STORED AS parquet TBLPROPERTIES (
'partition.time-extractor.timestamp-pattern'='$dt $hr:00:00',
'sink.partition-commit.trigger'='partition-time',
'sink.partition-commit.delay'='1 h',
'sink.partition-commit.watermark-time-zone'='Asia/Shanghai', -- Assume user configured time zone is 'Asia/Shanghai'
'sink.partition-commit.policy.kind'='metastore,success-file'
);
flinkEnv.env() // A 流 .addSource(new SourceFunction
查看表是否被哪些视图依赖
实例
create table test(id int, name varchar(10)); create view view_test as select * from test; alter table test alter name type varchar(100);
1
2
3
在这里插入图片描述
查看表被那些视图依赖
create or replace function recursive_get_deps_views(IN tbl oid, OUT oid oid, OUT relkind "char", OUT nspname name, OUT relname name, OUT deps oid[], OUT ori_oid oid, OUT ori_relkind "char", OUT ori_nspname name, OUT ori_relname name ) returns setof record as $$ declare begin return query with recursive a as ( select * from ( select t1.oid,t1.relkind,t2.nspname,t1.relname,get_dep_oids(t1.oid) deps,(select t1.oid from pg_class t1,pg_namespace t2 where t1.relnamespace=t2.oid and t1.oid=tbl) as ori_oid from pg_class t1, pg_namespace t2 where t1.relnamespace=t2.oid and t1.relkind in ('m','v') ) t where t.ori_oid = any(t.deps) union select * from ( select t1.oid,t1.relkind,t2.nspname,t1.relname,get_dep_oids(t1.oid) deps, a.oid as ori_oid from pg_class t1,pg_namespace t2,a where t1.relnamespace=t2.oid and t1.relkind in ('m','v') ) t where t.ori_oid = any(t.deps) ) select a.oid,a.relkind,a.nspname,a.relname,a.deps,a.ori_oid,b.relkind ori_relkind, c.nspname ori_nspname,b.relname ori_relname from a,pg_class b,pg_namespace c where a.ori_oid=b.oid and b.relnamespace=c.oid order by a.nspname,a.relkind,a.relname; end; $$ language plpgsql strict;
控件设置alpha或者layer的opacity时,他的子类的透明度也会跟着变成透明
在安装go时,如果勾选 add path to xxx,操作系统会自动的生成GOROOT环境变量。 GOPATH
GOPATH 是go早期的设置方式,是go的工作区 **工作目录:**一个工程开发的相对参考目录。工作区的概念与工作目录的概念也是类似的。如果不使用工作目录的概念,在多人开发时,每个人有一套自己的目录结构,读取配置文件的位置不统一,输出的二进制运行文件也不统一,这样会导致开发的标准不统一,影响开发效率。 我们可以简单理解为GOPATH是存放go编程时下载的第三方库文件、编译生成的文件等 后面随着go module的机制,GOPATH已经不那么重要了,关于GOPATH可以使用默认的路径,也可以使用自己创建的命令。 1. 创建 GOPATH使用的文件夹 在这里插入图片描述
这里我创建在D目录下,具体可以根据自己习惯创建,需要注意的是,要在目录下创建bin、pkg、src共3个文件夹,这是go默认的习惯,存放不同类型的文件。 2. 创建用户变量GOPATH,注意,这里是用户变量 创建过程类似于前面GOROOT环境变量的创建: 在这里插入图片描述
RAID0
#RAID0 只是把你的硬盘集中到一个池子里面,就像一个巨大的驱动器一样。 它可以提高你的驱动器速度,但是如果你的驱动器有损坏,你可能会失丢失数据。
sudo zpool create your-pool /dev/sdc /dev/sdd
1
2
3
4
5
RAID1(镜像)
您可以在 ZFS 中使用 mirror 关键字来实现 RAID1 功能。 RAID1 会创建一个一对一的驱动器副本。 这意味着您的数据一直在备份。 它也提高了性能。 当然,你将一半的存储空间用于了复制。
sudo zpool create your-pool mirror /dev/sdc /dev/sdd
1
2
3
RAID5/RAIDZ1
ZFS 将 RAID5 功能实现为 RAIDZ1。 RAID5 要求驱动器至少是 3 个。 并允许您通过将备份奇偶校验数据写入驱动器空间的 1/n(n 是驱动器数),留下的是可用的存储空间。 如果一个驱动器发生故障,阵列仍将保持联机状态,但应尽快更换发生故障的驱动器。
sudo zpool create your-pool raidz1 /dev/sdc /dev/sdd /dev/sde
1
2
3
4
5
RAID6/RAIDZ2
RAID6 与 RAID5 几乎完全相同,但它至少需要四个驱动器。 它将奇偶校验数据加倍,最多允许两个驱动器损坏,而不会导致阵列关闭。
sudo zpool create your-pool raidz2 /dev/sdc /dev/sdd /dev/sde /dev/sdf
1
2
3
RAIDZ3 3奇偶校验位,允许在丢失数据之前发生3个磁盘故障,性能与RAIDZ2和RAIDZ类似。例如,创建3奇偶校验6 VDEV池:
sudo zpool create example raidz3 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg
1
RAID10(条带化镜像)
RAID10 旨在通过数据条带化提高存取速度和数据冗余来成为一个两全其美的解决方案。 你至少需要四个驱动器,但只能使用一半的空间。 您可以通过在同一个池中创建两个镜像来创建 RAID10 中的池。
sudo zpool create your-pool mirror /dev/sdc /dev/sdd mirror /dev/sde /dev/sdf 或者 sudo zpool create example mirror /dev/sdb /dev/sdc sudo zpool add example mirror /dev/sdd /dev/sde
1
2
3
4
5
6
嵌套RAIDZ (RAID50, RAID60)
$ sudo zpool create example raidz /dev/sdb /dev/sdc /dev/sdd /dev/sde $ sudo zpool add example raidz /dev/sdf /dev/sdg /dev/sdh /dev/sdi
1
2
还有一些管理工具,一旦你创建了你的池,你就必须使用它们来操作。 首先,检查你的池的状态。
sudo zpool status
1
当你更新 ZFS 时,你也需要更新你的池。 当您检查它们的状态时,您的池会通知您任何更新。 要更新池,请运行以下命令。
sudo zpool upgrade your-pool
1
你也可以更新全部池。
sudo zpool upgrade -a
1
您也可以随时将驱动器添加到池中。 告诉 zpool 池的名称和驱动器的位置,它会处理好一切。
sudo zpool add your-pool /dev/sdx
1
如果您想破坏池,则可以使用以下命令
sudo zpool destroy pool-name
原因一、pom 文件李配置的私服仓库地址和settings.xml里配置的用户名和密码没有匹配上
1、pom.xml里的仓库配置:
<!--项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件jar等部署到远程仓库。 -->
<distributionManagement>
<repository><!--部署项目产生的构件到远程仓库需要的信息 -->
<id>releases</id><!-- 此处id和settings.xml的id保持一致 -->
<name>Release Deploy</name>
<url>http://10.60.145.41:881/repository/maven-releases/</url>
</repository>
<snapshotRepository><!--构件的快照部署到哪里?如果没有配置该元素,默认部署到repository元素配置的仓库,参见distributionManagement/repository元素 -->
<id>snapshots</id><!-- 此处id和settings.xml的id保持一致 -->
<name>Snapshot Deploy</name>
<url>http://10.60.145.41:881/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
2、此时对应的setting.xml里的配置信息为:
<server>
<id>snapshots</id><!-- 此处id和上面pom.xml的id保持一致 -->
<username>nandao</username>
<password>123456</password>
</server>
<server>
<id>releases</id><!-- 此处id和上面pom.xml的id保持一致 -->
<username>nandao</username>
<password>123456</password>
</server>
Step1:cd /etc/init.d
Step2:ls #查看系统服务名
redhat5下syslog,redhat6下rsyslog(rsyslog是syslog的升级版)。
redhat7下systemd取代了init系统,监视控制systemd的主要工具是systemctl。
Step3:重启系统服务
./syslog restart #redhat5
./rsyslog restart #redhat6
————————————————
打开 putty,在光标处输入云服务器ECS实例的公网IP地址,点击 Open 输入云服务器的登录名 root 及自定义的登录密码 进入宝塔面板官网,选择 Linux 版,立即安装,复制 Centos 安装命令到 putty 远程连接工具窗口安装 安装完成会显示面板地址、用户名和密码,浏览器访问外网面板地址,地址中的IP为云服务器ECS实例的公网IP地址,端口8888为面板端口,“/”后的路径为面板管理入口,如访问失败请在云服务器的安全组放行8888端口 输入上一步中 putty 窗口显示的用户名和密码登录面板,登录后可在面板设置中自定义面板端口、安全入口、面板账号和面板密码