【nexus】上传pom失败的原因

maven的deploy:deploy-file命令安装的jar和pom位于本地repository的目录下时命令会出错 (Cannot deploy artifact from the local repository…),解决方法是将要安装的jar和pom文件copy到其它目录再安装,只要不在本地仓库目录都可以

【设计模式】构建者模式

public class ExceptionEventBuilder {      public static ExceptionEventBuilder builder(){         return new ExceptionEventBuilder();     }     private ExceptionEventBuilder(){         this.exceptionEvent = new ExceptionEvent();     }     private ExceptionEvent exceptionEvent;      public ExceptionEventBuilder setMessage(String message){         this.exceptionEvent.setMessage(message);         return this;     }          public ExceptionEventBuilder setStacktrace(String stacktrace){         this.exceptionEvent.setStacktrace(stacktrace);         return this;     }      public ExceptionEventBuilder setType(String type){         this.exceptionEvent.setType(type);         return this;     }     public ExceptionEvent build(){         return this.exceptionEvent;     }  }

【mysql】mysql和mysqld的区别

mysql -- mysql is a command-line client for executing SQL statements interactively or in batch mode. 

mysqld -- mysqld is the MySQL server.

就是说:

mysql是一个命令行程序。

mysqld是一个服务。

Linux系统里一般服务都是以的结尾的,比如httpd,mysqld等。

所以在开启服务时也要用服务的名字,这样:

systemctl start mysqld.service

service stop mysqld

d的全拼是daemon,也就是守护程序的意思,常驻与后台。

分类: Linux基础

【SMART】目标管理原则

——S代表具体(Specific),指绩效考核要切中特定的工作指标,不能笼统;

——M代表可度量(Measurable),指绩效指标是数量化或者行为化的,验证这些绩效指标的数据或者信息是可以获得的;

——A代表可实现(Attainable),指绩效指标在付出努力的情况下可以实现,避免设立过高或过低的目标;

——R代表相关性(Relevant),指绩效指标是与工作的其它目标是相关联的;绩效指标是与本职工作相关联的;

——T代表有时限(Time-bound),注重完成绩效指标的特定期限。

【maven】

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project springcloud-provider: Fatal error compiling

是由于项目所需jdk版本和你当前使用的jdk版本不一致导致的

【maven】将依赖jar包打入整包

<build>     <plugins>         <plugin>             <groupId>org.apache.maven.plugins</groupId>             <artifactId>maven-compiler-plugin</artifactId>             <configuration>                 <source>1.8</source>                 <target>1.8</target>             </configuration>         </plugin>         <!-- maven 打包集成插件 -->         <plugin>             <artifactId>maven-assembly-plugin</artifactId>             <executions>                 <execution>                     <phase>package</phase>                     <goals>                         <goal>single</goal>                     </goals>                 </execution>             </executions>             <configuration>                 <descriptorRefs>                     <!-- 将依赖一起打包到 JAR -->                     <descriptorRef>jar-with-dependencies</descriptorRef>                 </descriptorRefs>             </configuration>         </plugin>     </plugins> </build>

在Maven中,主要有3个插件可以用来打包:

  1. maven-jar-plugin,默认的打包插件,用来打普通的project JAR包;
  2. maven-shade-plugin,用来打可执行JAR包,也就是所谓的fat JAR包;
  3. maven-assembly-plugin,支持自定义的打包结构,也可以定制依赖项等。

我们日常使用的以maven-assembly-plugin为最多,因为大数据项目中往往有很多shell脚本、SQL脚本、.properties及.xml配置项等,采用assembly插件可以让输出的结构清晰而标准化。

要使用该插件,就在项目pom文件中加入以下内容。

<build>         <plugins>             <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-assembly-plugin</artifactId>                 <version>${maven-assembly-plugin.version}<version>                 <executions>                     <execution>                         <id>make-assembly</id>                         <!-- 绑定到package生命周期 -->                         <phase>package</phase>                         <goals>                             <!-- 只运行一次 -->                             <goal>single</goal>                         </goals>                     </execution>                 </executions>                 <configuration>                     <!-- 配置描述符文件 -->                     <descriptor>src/main/assembly/assembly.xml</descriptor>                     <!-- 也可以使用Maven预配置的描述符                     <descriptorRefs>                         <descriptorRef>jar-with-dependencies</descriptorRef>                     </descriptorRefs> -->                 </configuration>             </plugin>         </plugins>     </build>

assembly插件的打包方式是通过descriptor(描述符)来定义的。

Maven预先定义好的描述符有bin,src,project,jar-with-dependencies等。比较常用的是jar-with-dependencies,它是将所有外部依赖JAR都加入生成的JAR包中,比较傻瓜化。

但要真正达到自定义打包的效果,就需要自己写描述符文件,格式为XML。下面是我们的项目中常用的一种配置。

<assembly>     <id>assembly</id>      <formats>         <format>tar.gz</format>     </formats>      <includeBaseDirectory>true</includeBaseDirectory>      <fileSets>         <fileSet>             <directory>src/main/bin</directory>             <includes>                 <include>*.sh</include>             </includes>             <outputDirectory>bin</outputDirectory>             <fileMode>0755</fileMode>         </fileSet>         <fileSet>             <directory>src/main/conf</directory>             <outputDirectory>conf</outputDirectory>         </fileSet>         <fileSet>             <directory>src/main/sql</directory>             <includes>                 <include>*.sql</include>             </includes>             <outputDirectory>sql</outputDirectory>         </fileSet>         <fileSet>             <directory>target/classes/</directory>             <includes>                 <include>*.properties</include>                 <include>*.xml</include>                 <include>*.txt</include>             </includes>             <outputDirectory>conf</outputDirectory>         </fileSet>     </fileSets>      <files>         <file>             <source>target/${project.artifactId}-${project.version}.jar</source>             <outputDirectory>.</outputDirectory>         </file>     </files>      <dependencySets>         <dependencySet>             <unpack>false</unpack>             <scope>runtime</scope>             <outputDirectory>lib</outputDirectory>         </dependencySet>     </dependencySets> </assembly>

id与formats

formats是assembly插件支持的打包文件格式,有zip、tar、tar.gz、tar.bz2、jar、war。可以同时定义多个format。

id则是添加到打包文件名的标识符,用来做后缀。

也就是说,如果按上面的配置,生成的文件就是a r t i f a c t I d − {artifactId}-artifactId−{version}-assembly.tar.gz。

fileSets/fileSet

用来设置一组文件在打包时的属性。

directory:源目录的路径。

includes/excludes:设定包含或排除哪些文件,支持通配符。

fileMode:指定该目录下的文件属性,采用Unix八进制描述法,默认值是0644。

outputDirectory:生成目录的路径。

files/file

与fileSets大致相同,不过是指定单个文件,并且还可以通过destName属性来设置与源文件不同的名称。

dependencySets/dependencySet

用来设置工程依赖文件在打包时的属性。也与fileSets大致相同,不过还有两个特殊的配置:

unpack:布尔值,false表示将依赖以原来的JAR形式打包,true则表示将依赖解成*.class文件的目录结构打包。

scope:表示符合哪个作用范围的依赖会被打包进去。compile与provided都不用管,一般是写runtime。

按照以上配置打包好后,将.tar.gz文件上传到服务器,解压之后就会得到bin、conf、lib等规范化的目录结构,十分方便。

【ideaj】

setting - Tools - Terminal(或者搜索terminal)

可以切换cmd或powershell

【windows】右键直接执行cmd

1. 打开注册表

1

2

3

4

5

6

7

# 1. 使用快捷键打开 “运行”

#    win + r

# 2. 在 “运行” 中输入

#    regedit

# 3. 回车

2. 创建与设置 OpenCMDHere

1

2

3

4

5

6

7

8

9

10

11

12

13

14

# 1. 切换到

#     HKEY_CLASSES_ROOT\Directory\Background\shell\

# 2. 创建

#     右击 shell ,新建项  “OpenCMDHere”

#     并在该项下,右击新建项  “command”

# 3. 将 OpenCMDHere 默认改为 在此处打开命令窗口

#     1). 直接点击  OpenCMDHere

#     2). OpenCMDHere 的默认值数据改为 在此处打开命令窗口

#  4. 创建 OpenCMDHere 的图片

#     1). 右键 新建字符串名, 名字为     Icon

#     2). 将值改为     cmd.exe

3. 设置 command

进入command项下,设置键值为cmd.exe /s /k pushd "%V"

【windows】通过命令行重启电脑

shutdown -r

【K8S】健康检查

健康检查

健康检查(Health Check)是让系统知道您的应用实例是否正常工作的简单方法。 如果您的应用实例不再工作,则其他服务不应访问该应用或向其发送请求。 相反,应该将请求发送到已准备好的应用程序实例,或稍后重试。 系统还应该能够使您的应用程序恢复健康状态。

强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性。自愈的默认实现方式是自动重启发生故障的容器。除此之外,用户还可以利用Liveness 和 Readiness 探测机制设置更精细的健康检查,进而实现如下需求:

  1. 零停机部署。
  2. 避免部署无效的镜像。
  3. 更加安全的滚动升级。

探针类型

Liveness存活性探针

Liveness探针让Kubernetes知道你的应用程序是活着还是死了。 如果你的应用程序还活着,那么Kubernetes就不管它了。 如果你的应用程序已经死了,Kubernetes将删除Pod并启动一个新的替换它。

Readiness就绪性探针

Readiness探针旨在让Kubernetes知道您的应用何时准备好其流量服务。 Kubernetes确保Readiness探针检测通过,然后允许服务将流量发送到Pod。 如果Readiness探针开始失败,Kubernetes将停止向该容器发送流量,直到它通过。 判断容器是否处于可用Ready状态,达到ready状态表示pod可以接受请求, 如果不健康,从service的后端endpoint列表中把pod隔离出去

探针执行方式

HTTP

HTTP探针可能是最常见的自定义Liveness探针类型。 即使您的应用程序不是HTTP服务,您也可以在应用程序内创建轻量级HTTP服务以响应Liveness探针。 Kubernetes去ping一个路径,如果它得到的是200或300范围内的HTTP响应,它会将应用程序标记为健康。 否则它被标记为不健康。

httpget配置项

host:连接的主机名,默认连接到pod的IP。你可能想在http header中设置"Host"而不是使用IP。 scheme:连接使用的schema,默认HTTP。 path: 访问的HTTP server的path。 httpHeaders:自定义请求的header。HTTP运行重复的header。 port:访问的容器的端口名字或者端口号。端口号必须介于1和65535之间。

Exec

对于Exec探针,Kubernetes则只是在容器内运行命令。 如果命令以退出代码0返回,则容器标记为健康。 否则,它被标记为不健康。 当您不能或不想运行HTTP服务时,此类型的探针则很有用,但是必须是运行可以检查您的应用程序是否健康的命令。

TCP

最后一种类型的探针是TCP探针,Kubernetes尝试在指定端口上建立TCP连接。 如果它可以建立连接,则容器被认为是健康的;否则被认为是不健康的。

如果您有HTTP探针或Command探针不能正常工作的情况,TCP探测器会派上用场。 例如,gRPC或FTP服务是此类探测的主要候选者。

liveness-exec样例

执行命令。容器的状态由命令执行完返回的状态码确定。如果返回的状态码是0,则认为pod是健康的,如果返回的是其他状态码,则认为pod不健康,这里不停的重启它。

#cat liveness_exec.yaml apiVersion: v1 kind: Pod metadata:   labels:     test: liveness-exec   name: liveness-exec spec:   containers:   - name: liveness-exec     image: busybox     args:     - /bin/sh     - -c     - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600     livenessProbe:       exec:         command:         - cat         - /tmp/healthy       initialDelaySeconds: 5       periodSeconds: 5

readiness-exec样例

apiVersion: apps/v1 kind: Deployment metadata:   name: busybox-deployment   namespace: default   labels:     app: busybox spec:   selector:     matchLabels:       app: busybox   replicas: 3   template:     metadata:       labels:         app: busybox      spec:       containers:       - name: busybox         image: busybox:latest         imagePullPolicy: IfNotPresent         ports:         - containerPort: 80         args:         - /bin/sh         - -c         - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600         readinessProbe:           exec:             command:             - cat             - /tmp/healthy           initialDelaySeconds: 5           periodSeconds: 5

liveness-http样例

#cat liveness_http.yaml apiVersion: apps/v1 kind: Deployment metadata:   name: nginx-deployment   namespace: default   labels:     app: nginx spec:   selector:     matchLabels:       app: nginx   replicas: 2   template:     metadata:       labels:         app: nginx      spec:       containers:       - name: nginx         image: nginx         imagePullPolicy: IfNotPresent         ports:         - containerPort: 80         livenessProbe:           httpGet:             path: /index.html             port: 80             httpHeaders:             - name: X-Custom-Header               value: hello           initialDelaySeconds: 5           periodSeconds: 3

readiness-http样例

创建一个2个副本的deployment

# cat readiness_http.yaml apiVersion: apps/v1 kind: Deployment metadata:   name: nginx-deployment   namespace: default   labels:     app: nginx spec:   selector:     matchLabels:       app: nginx   replicas: 2   template:     metadata:       labels:         app: nginx      spec:       containers:       - name: nginx         image: nginx         imagePullPolicy: IfNotPresent         ports:         - containerPort: 80         readinessProbe:           httpGet:             path: /index.html             port: 80             httpHeaders:             - name: X-Custom-Header               value: hello           initialDelaySeconds: 5           periodSeconds: 3

TCP liveness和readiness探针

TCP检查的配置与HTTP检查非常相似,主要对于没有http接口的pod,像MySQL,Redis,等等

apiVersion: apps/v1 kind: Deployment metadata:   name: nginx-deployment   namespace: default    labels:     app: nginx spec:   selector:     matchLabels:       app: nginx   replicas: 1   template:     metadata:       labels:         app: nginx      spec:       containers:       - name: nginx         image: nginx         imagePullPolicy: IfNotPresent         ports:         - containerPort: 80         livenessProbe:           tcpSocket:             port: 80           initialDelaySeconds: 5           periodSeconds: 3         readinessProbe:           tcpSocket:             port: 80           initialDelaySeconds: 5           periodSeconds: 3

Probe详细配置

initialDelaySeconds:容器启动后第一次执行探测是需要等待多少秒。

periodSeconds:执行探测的频率。默认是10秒,最小1秒。

timeoutSeconds:探测超时时间。默认1秒,最小1秒。

successThreshold:探测失败后,最少连续探测成功多少次才被认定为成功。默认是1。对于liveness必须是1。最小值是1。

failureThreshold:探测成功后,最少连续探测失败多少次才被认定为失败。默认是3。最小值是1。

HTTP probe中可以给httpGet设置其他配置项:

【Redis】Redis版本差异

Redis 4.0.0

Redis 4.0.0 正式发布,这是 Redis 4.0 系列的首个稳定版,包含以下的一些重大改进:模块化的系统、更好的复制 (PSYNC2)、对 eviction policies, threaded DEL/FLUSH 的改进、混合 RDB+AOF 格式、对 Raspberry Pi 的支持作为主要平台、新的 MEMORY 命令行、Redis Cluster 对 Nat/Docker 的支持、更快的 Redis Cluster 键创建,以及许多其他较小的功能和一些行为修复等。

与之前的 RC 相比,有一些错误修复和改进,主要是:

针对新的复制引擎 PSYNC2 的修复

引入了模块线程安全上下文(Modules thread safe contexts),现在还是一个实验性的 API,但是当需要时,该 API 被认为是稳定和可用的

SLOWLOG 现在会记录 offending 的客户端名字和地址。要注意的是,这是对于向后兼容性的破坏,以防旧代码会判断 slowlog 条目由三个条目组成。

模块原生数据类型 RDB 格式已更改

AOF 检查程序现在可以处理 RDB preambles

添加了不支持 STORE 选项的 GEORADIUS_RO 和 GEORADIUSBYMEMBER_RO 变体,为了允许这种查询的只读扩容

HSET 现在是可变的,HMSET 被认为是弃用的(但将来会支持)。新的代码中请使用 HSET

GEORADIUS huge radius (>= ~6000 km) corner cases fixed, certain elements near the edges were not returned.

添加 DEBUG DIGEST 模块 API

HyperLogLog 命令不再在某些输入的字符串中(非 HLL)崩溃

修复在 MULTI/EXEC blocks 中的 SLAVEOF

其他许多小的 bug 修复和改进

详情请参阅发布说明

Redis 5.0.0

先看一下 Redis 5 带来的更新内容:

1. 新的流数据类型(Stream data type) https://redis.io/topics/streams-intro

2. 新的 Redis 模块 API:定时器、集群和字典 API(Timers, Cluster and Dictionary APIs)

3. RDB 现在可存储 LFU 和 LRU 信息

4. redis-cli 中的集群管理器从 Ruby (redis-trib.rb) 移植到了 C 语言代码。执行 `redis-cli --cluster help` 命令以了解更多信息

5. 新的有序集合(sorted set)命令:ZPOPMIN/MAX 和阻塞变体(blocking variants)

6. 升级 Active defragmentation 至 v2 版本

7. 增强 HyperLogLog 的实现

8. 更好的内存统计报告

9. 许多包含子命令的命令现在都有一个 HELP 子命令

10. 客户端频繁连接和断开连接时,性能表现更好

11. 许多错误修复和其他方面的改进

12. 升级 Jemalloc 至 5.1 版本

13. 引入 CLIENT UNBLOCK 和 CLIENT ID

14. 新增 LOLWUT 命令 http://antirez.com/news/123

15. 在不存在需要保持向后兼容性的地方,弃用 "slave" 术语

16. 网络层中的差异优化

17. Lua 相关的改进:

- 将 Lua 脚本更好地传播到 replicas / AOF

- Lua 脚本现在可以超时并在副本中进入 -BUSY 状态

18. 引入动态的 HZ(Dynamic HZ) 以平衡空闲 CPU 使用率和响应性

19. 对 Redis 核心代码进行了重构并在许多方面进行了改进

Redis 5 是 Redis 引入流数据类型(Stream data type)的第一个版本。按照官方的说法,不使用该特性的用户在生产环境中使用 Redis 5 会有更好的体验 —— 虽然开发团队尚未发现关于这项特性的关键错误。此外,因为许多内部结构与 Redis 4 共享,因此在内部工作方式方面,变化不会很大。

————————————————

版权声明:本文为CSDN博主「星月的雨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:Redis 4.0 与 Redis 5.0 改进_liu1390910的博客-CSDN博客_redis4和redis5区别

redis 各版本参数对比 https://www.cnblogs.com/hankyoon/p/13391975.html

【开发日志-已归档】2021-08相关推荐

  1. 【开发日志-已归档】2021-07

    [Redis]bgsave bgsave持久化原理: 底层会fork 出一条子进程,这条子进程来进行持久化操作,而主进程进行相应其他操作,在子进程进行持久过程中,会生成temp.rdb,当子进程持久化 ...

  2. 【开发日志-已归档】2021-11

    [centos]top命令切换视图 先输入top命令,打开top监控查看界面 $> top i. 切换内存显示方式(默认常规显示字节:第一次切换显示竖线型进度条:第二次切换显示实线型进度条:第三 ...

  3. 【开发日志-已归档】2021-06

    [K8S]K8S中的port 在编排kubernetes时,Deployment的Pod项有containerPort,Service文件里的port,targetPort, nodePort,这些p ...

  4. 【开发日志-已归档】2021-01

    [elasticsearch]es健康检查 GET _cluster/health { "cluster_name": "elasticsearch", &qu ...

  5. 【开发日志-已归档】2020-09

    [centos]关闭You have new mail in /var/spool/mail/root提示 这个提示是LINUX会定时查看LINUX各种状态做汇总,每经过一段时间会把汇总的信息发送的r ...

  6. Oracle错误——归档日志已满问题

    问题描述 安装完数据库后,在做压力测试,测试了没多久就出现了Oracle挂起的问题,提示如下错误: ORA-00257: Archiver error. Connect AS SYSDBA only ...

  7. WPF帝友借贷系统MV模式开发日志2021/04/02_前台登入注册页面搭建

    WPF帝友借贷系统MV模式开发日志_前台页面搭建 下面是我搭建好的前台登入界面 可以看出,登入界面主要分为两个部分 一个部分是登入程序信息显示(左边) 一部分是登入数据验证部分(右边)因为是桌面软件, ...

  8. 纯Go实现的Firebase的替代品 | Gopher Daily (2021.08.11) ʕ◔ϖ◔ʔ

    每日一谚:Global variables should have longer names. Go技术生态 如何才能成功将Python切换到Go - https://itnext.io/opinio ...

  9. android开发2021,2021年高校邦Android手机软件快速开发App Inventor【2021秋】满分答案...

    2021年高校邦Android手机软件快速开发App Inventor[2021秋]满分答案 更多相关问题 <模仿:西方文学中的现实的再现>作者是:A.霍布斯B.阿多诺C.奥尔巴赫D.米勒 ...

  10. 本博客导读(2021/08/09更新)

    文章目录 1. 简介 1.1 博客精神 1.2 写作目的 1.3 技术方向 1.4 博主 1.5 版权说明 2 推荐内容 2.1 主要代表作 2.2 其他推荐内容 3. 程序类 3.1 C#程序设计 ...

最新文章

  1. 单链表-删除并释放以L为表头指针的单链表的所有结点(双指针法)
  2. 计算机病毒会不会通过u盘传染,这样会感染病毒吗?
  3. 【版本更新】Aspose.Slides V17.10发布 | 支持免费下载
  4. 五一商圈之外,红星商圈再塑长沙商圈第二极
  5. 【Matlab】找到矩阵中每个连通域的最小值
  6. 在线VS Code阅读源码神器 github1s
  7. 为Twitter4j创建自定义SpringBoot Starter
  8. 【转】WebSocket初探
  9. 机器学习算法总结之朴素贝叶斯法
  10. 安装与卸载软件的方法:rpm、yum工具介绍
  11. linux下 添加一个新账户tom,linux 账户管理命令 useradd、groupadd使用方法
  12. ContentServer迁移的几个步骤
  13. 元宇宙的车,迷你世界上不了
  14. 图像处理笔记1一上采样与下采样
  15. [RL 13] VDN (201706, DeepMind)
  16. android开发入门教程
  17. java - 数据库账号的加密解密
  18. R语言实战 第2版 中文目录
  19. python之dlib使用摄像头实时检测人脸
  20. php汉字验证码,PHP中实现中文汉字验证码 源代码

热门文章

  1. asp 加密 解密 类
  2. Elasticsearch 7.7.0 高阶篇-聚合技术
  3. 斐尔可圣手二代蓝牙设置问题
  4. pythongui编程星期的中英文对照_编写一个程序,根据用户输入的一个英文字符翻译成相应的中文日期,如输入“M”返回“星期一”。...
  5. 【小程序源码】强大的万年历微信小程序源码下载
  6. Centos7 安装 Tomcat8 的正确姿势 并设置开机自启
  7. 手机搭建php环境,安卓手机搭建PHP环境教程
  8. Linux系统命令行常识问答
  9. 十分钟自动执行一次_十分钟上手BDP,简单好用的数据分析神器
  10. mysql 查看进程_Mysql查看进程