通过docker搭建postgresq
通过docker搭建
然后修改配置文件
修改postgresql.conf
创建数据库
创建有replication权限的用户
重启数据库
创建表,执行命令
执行写入命令
通过java程序捕捉变化
代码如下:
最终效果如下
1.当我们的程序开启了多个天博app官网入进行作业的时候,如何把跟一个作业相关的日志都打印到一个文件呢,而不是都打印在一个文件里,毕竟都打印在一个文件里,很不方便我们日常去查看问题。
2.经过调研发现slfj的MDC就可以实现这个功能,原理就是通过threalocal去实现的,感兴趣的可以去查看源码。
1.具体怎么使用也很简单,我们需要在datax的天博app官网入池执行任务的时候,能够获取到启动这个天博app官网入池传递过来的jobId就可以了,具体代码如下。
通过上述对天博app官网入池进行改造,在天博app官网入池每次获取任务的时候,都可以从父天博app官网入获取父天博app官网入设置的变量。因此我们要在父天博app官网入启动子天博app官网入的时候,设置上这个变量。
接下来,我们需要配置下logback.xml
datax是阿里开源作为数据同步工具,支持多种数据源交叉同步,具体可见https://github.com/alibaba/DataX 还有参考datax实现的flinkx,通过flink去实现,https://github.com/DTStack/chunjun 阿里开源的datax只是一个单机版,具体要用到公司的业务中,我们还是需要进行包装一下,才能用的方便。因此笔者在工作期间花了很多时间去改造datax,让它变得更加易用。本文主要是通俗介绍datax的原理。
主要原理简单来说,就是一个读天博app官网入从各种数据源读取数据,放到一个队列里,另外一个写天博app官网入从这个队列里取数据。在写天博app官网入取数据前还可以对数据进行etl处理。
具体的datax执行job主要分为这么几步。
具体实现可查看代码TaskGroupContainer类型,这个类包含了任务具体的执行过程。
1.通过每次提交代码,触发github的actions去执行我们编写的脚本。
2.可通过多种方式将代码上传到自己的服务器。比如scp,ftp,http上传。
1.我们通过scp的方式,或者ftp的方式上传我们生成好的文件。会有一个问题。我们可能会把自己的关键的密码等信息需要放置在我们编写的脚本里。
2.github action支持我们自定义变量,这个变量在运行我们的脚本的时候,可以被替换掉。
其中变量 APIKEYID和 APIKEY都可以被替换掉。
按照上面的操作就可以替换掉。
如果要是用腾讯云提供的静态网站部署,可以直接参考我编写yml文件。
https://github.com/fangzhenyi/fangzhenyi.GitHub.io/blob/master/.github/workflows/blank.yml
最近开始了python教学生涯,希望跟我一起学python的同学生活能变得美好。下面是介绍python环境的安装,需要按照下面的截图来安装,这样可以避免大家的环境不一致。
首先安装python。我们用的python版本是3.8.2,下载链接是https://www.python.org/ftp/python/3.8.2/python-3.8.2-amd64.exe
可以将这个链接复制到浏览器或者迅雷进行下载。下载完成后进行安装。
标红的两个对号都要勾上,然后点击install now。
最后如果出现Disable path length limit这个选项的话,就点击这个。如果没有就调过,这里python的环境基本安装好了。
使用的IDE是pycharm,下载地址是https://www.jetbrains.com/pycharm/download/#section=windows 下载社区版就可以。不用花钱,免费就可以使用。
点击就可以下载,这个地址的下载可能会比较慢。可以将这个地址直接复制到迅雷里下载。https://download-cf.jetbrains.com/python/pycharm-community-2019.3.3.exe
下载完成后就可以安装了。
按照上面的图进行勾选。
创建一个项目。
先新建一个文件夹,再在文件夹下面,新建一个1.py文件。
假如存在A,B, C三节点,他们需要两两之间进行通讯,如何去认定对方的身份,并且没有假冒的可能。Kerberos协议就是去解决这个问题的。
1.天博体育克罗地亚APP用户向KDC以明文的方式发起请求。该次请求中携带了自己的用户名,主机IP,和当前时间戳。
2.KDC当中的AS(Authentication Server)接收请求,查看是否存在这个用户,存在返回信息。返回的信息包含其中包含两部分内容:第一部分内容称为TGT,他叫做票据授予票据,天博体育克罗地亚APP需要使用TGT去KDC中的TGS(票据授予中心)获取访问网络服务所需的Ticket(服务授予票据),TGT中包含的内容有kerberos数据库中存在的该天博体育克罗地亚APP的Name,IP,当前时间戳,天博体育克罗地亚APP即将访问的TGS的Name,TGT的有效时间以及一把用于天博体育克罗地亚APP和TGS间进行通信的Session_key(CT_SK)。整个TGT使用TGS密钥加密,天博体育克罗地亚APP是解密不了的,由于密钥从没有在网络中传输过,所以也不存在密钥被劫持破解的情况。第二部分内容是使用天博体育克罗地亚APP密钥加密的一段内容,其中包括用于天博体育克罗地亚APP和TGS间通信的Session_key(CT_SK),天博体育克罗地亚APP即将访问的TGS的Name以及TGT的有效时间,和一个当前时间戳。该部分内容使用天博体育克罗地亚APP密钥加密,所以天博体育克罗地亚APP在拿到该部分内容时可以通过自己的密钥解密。如果是一个假的天博体育克罗地亚APP,那么他是不会拥有真正天博体育克罗地亚APP的密钥的,因为该密钥也从没在网络中进行传输过。这也同时认证了天博体育克罗地亚APP的身份,如果是假天博体育克罗地亚APP会由于解密失败从而终端认证流程。
3.天博体育克罗地亚APP使用CT_SK加密将自己的天博体育克罗地亚APP信息发送给KDC,其中包括天博体育克罗地亚APP名,IP,时间戳;
4.天博体育克罗地亚APP将自己想要访问的Server服务以明文的方式发送给KDC。
5.天博体育克罗地亚APP将TGT也原封不动的也携带给KDC。
6.此时KDC中的TGS(票据授予服务器)收到了来自天博体育克罗地亚APP的请求。他首先根据天博体育克罗地亚APP明文传输过来的Server服务IP查看当前kerberos系统中是否存在可以被用户访问的该服务。如果不存在,认证失败结束。如果存在,继续接下来的认证。
7.TGS使用自己的密钥将TGT中的内容进行解密,此时他看到了经过AS认证过后并记录的用户信息,一把Session_KEY即CT_SK,还有时间戳信息,他会现根据时间戳判断此次通信是否真是可靠有无超出时延。
8.如果时延正常,则TGS会使用CK_SK对天博体育克罗地亚APP的第一部分内容进行解密(使用CT_SK加密的天博体育克罗地亚APP信息),取出其中的用户信息和TGT中的用户信息进行比对,如果全部相同则认为天博体育克罗地亚APP身份正确,方可继续进行下一步。
9.此时KDC将返回响应给天博体育克罗地亚APP,响应内容包括:第一部分:用于天博体育克罗地亚APP访问网络服务的使用Server密码加密的ST(Servre Ticket),其中包括天博体育克罗地亚APP的Name,IP,需要访问的网络服务的地址Server IP,ST的有效时间,时间戳以及用于天博体育克罗地亚APP和服务端之间通信的CS_SK(Session Key)。第二部分:使用CT_SK加密的内容,其中包括CS_SK和时间戳,还有ST的有效时间。由于在第一次通信的过程中,AS已将CT_SK通过天博体育克罗地亚APP密码加密交给了天博体育克罗地亚APP,且天博体育克罗地亚APP解密并缓存了CT_SK,所以该部分内容在天博体育克罗地亚APP接收到时是可以自己解密的。
10.天博体育克罗地亚APP使用CK_SK将自己的主机信息和时间戳进行加密作为交给服务端的第一部分内容,然后将ST(服务授予票据)作为第二部分内容都发送给服务端。
11.服务器此时收到了来自天博体育克罗地亚APP的请求,他会使用自己的密钥,即Server密钥将天博体育克罗地亚APP第二部分内容进行解密,核对时间戳之后将其中的CS_SK取出,使用CS_SK将天博体育克罗地亚APP发来的第一部分内容进行解密,从而获得经过TGS认证过后的天博体育克罗地亚APP信息,此时他将这部分信息和天博体育克罗地亚APP第二部分内容带来的自己的信息进行比对,最终确认该天博体育克罗地亚APP就是经过了KDC认证的具有真实身份的天博体育克罗地亚APP,是他可以提供服务的天博体育克罗地亚APP。此时服务端返回一段使用CT_SK加密的表示接收请求的响应给天博体育克罗地亚APP,在天博体育克罗地亚APP收到请求之后,使用缓存在本地的CS_ST解密之后也确定了服务端的身份(其实服务端在通信的过程中还会使用数字证书证明自己身份)。
1.整个可靠的通信依靠KDC和所有需要通信的双方共享自己的秘钥。
作为ubuntu的多年用户,感觉在ubuntu下开发还是非常舒服的,各种日常需要的工具都很齐全。个人开发基本够用。但是作为工作使用的话,ubuntu下确实没有一个像样的聊天工具。日常工作交流十分困难,微信网页版有各种不方便的地方。在网上搜索了半天提供了各种解决方案,但是可用性都不强。有些使用node做的基于web网页版封装了一个天博体育克罗地亚APP,但是各种功能都不齐全。有直接用wine去wine一个微信,但是又有这个问题,又有那个问题。
还好国内有一家良心厂商,深度科技。它会针对我们日常使用的国内软件做一些优化。如果想在linux下开发的话,推荐这个系统https://www.deepin.org 。
但是我已经安装好了ubuntu,重装系统的成本比较大。终于让我在网上找到了,有网友将深度优化过的wine移植到ubuntu上。只需要简单的几步,就可以在ubuntu上安装微信。 可以参考https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu 进行安装。要是想省的麻烦,建议直接安装deepin系统。
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true