自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 POJO vs Java Beans

POJO是一个不依赖任何其他类没有限制的普通Java对象。POJO最大的作用是增强可读性和复用性,POJO的概念在Sun公司的EJB3.0中提出。JavaBean的getter,setter方法名应该是成员变量名前面加上get,set,而且方法一般使用public修饰。Java Bean是一种特殊类型的POJO。一个POJO往往需要满足以下条件才能称之为一个Java Bean。POJO对于成员变量的访问权限没有限制,可以是私有,共有,保护或者默认类型。,那么它的getter,setter方法应该是。...

2022-08-15 23:20:31 245 1

原创 FTP和使用Docker搭建FTP服务

ftp即file transfer protocol文件传输协议,适用于文件传输的一个协议。ftp有两个channel。ftp是cs结构,客户端连接服务端时可以选择以主动模式连接或者别动模式连接。当客户端以主动模式连接客户端时,执行以下步骤,下述提到的随机端口N>1024:当客户端以被动模式连接客户端时,执行以下步骤,下述提到的随机端口N>1024,R>1024:可以看出来,主动模式下,server端使用20端口用于数据传输。被动模式下,server端使用随机端口进行数据传输。由于client端一般都防火墙

2022-07-06 11:16:13 2250

转载 通过CCproxy配置内网linux服务器

通过CCproxy配置内网linux服务器

2022-02-24 10:51:31 1018

转载 如何优雅的给 Docker 配置网络代理

有时因为网络原因,比如公司 NAT,或其它啥的,需要使用代理。Docker 的代理配置,略显复杂,因为有三种场景。但基本原理都是一致的,都是利用 Linux 的 http_proxy 等环境变量。Dockerd 代理在执行docker pull时,是由守护进程dockerd来执行。因此,代理需要配在dockerd的环境中。而这个环境,则是受systemd所管控,因此实际是systemd的配置。sudo mkdir -p /etc/systemd/system/docker.service.dsudo

2022-02-24 10:47:50 714

翻译 认识和使用Slf4j

SLF4J(The Simple Logging Facade for Java )是一个简单的日志门面,SLF4J提供了统一的日志api让你可以在部署应用的时候随意更换日志框架。使用时只需要依赖slfj-api-xxx即可。如:<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId></dependency>hello

2022-02-20 16:07:12 709

翻译 Java中字符串池

在java中,JVM会对字符串常量对象进行放入字符串池中,对于其他使用这个字符串对象的地方都会返回池中缓存的字符串对象的引用,但是使用构造方法new出来的对象却...

2022-02-15 10:04:35 98

原创 oracle中逻辑备用数据库(Logical Standby Database)与物理备用数据库( Physical Standby Database)的区别

Logical Standby Database 与 Logical Standby Database的区别

2022-01-15 22:30:48 1032

原创 Oracle中的standby database的概念

Oracle中standby database的概念

2022-01-15 22:06:56 407

原创 在Linux中/opt和/usr/local目录的作用和区别是什么?

今天配置ogg时,需要配置oggcore.rsp应答文件,里面有个配置INVENTORY_LOCATION,便去查这个目录是干什么用。注释如下:网络上查询这个目录的作用如下:oraInventory中记录了oracle安装目录的相关信息,通常在oracle软件安装过程中会自动创建,路径通常会在/oracle_base/oraInventory/,并在/etc/oraInst.loc中记录相关的路径信息,有时候我们的oracle目录是从另一套相似环境中tar过来的,这个时候是不会有oraInvent

2022-01-06 00:51:17 3780

原创 docker搭建kafka集群

如下给出使用docker快速搭建一个kafka集群的方法,使用 docker compose up docker-compose.yml即可启动启动一个kafka集群。注意将192.168.50.112换成你自己docker宿主机的ip。docker-compose.yml如下:version: '3'services: zookeeper: image: 'bitnami/zookeeper:3.7' ports: - '2190:2181' enviro

2021-12-29 20:39:05 2039

翻译 怎样使用docker build cache

简介docker build的过程需要一段时间,它可能是下载基础镜像,下载和安装依赖包,这就是使用cache的原因。有关Docker build cachedocker是分层构建的,Dockerfile中的每条指令就是一层。FROM alpine:latestRUN apk add --no-cache bashADD entrypoint.sh /ENTRYPOINT ["/entrypoint.sh"]上面的镜像会运行一个脚本,打印当前时间并睡眠60秒。#!/bin/bashwh

2021-10-11 10:17:52 3185

翻译 kafka客户不能连接到kafka集群(docker或者aws等)

客户端不能连接到kafka集群中主要是advertised.listeners和listener.security.protocol.map没配置好。下面分情景给出正确的配置。client连接到kafka集群的步骤客户端第一连接到broker上时,broker返回kafka集群的元数据,其中包括各个broker的hostname和端口客户端获取到元数据信息后根据自身需求利用元数据中的主机端口信息连接到对应的broker上连接的问题的多数是出现在第2步中。下面分情况给出正确配置。情

2021-10-08 19:45:00 2452 1

原创 docker搭建kafka集群

新建docker-compose.yml,内容如下:version: "2"services: zookeeper: user: root image: docker.io/bitnami/zookeeper:3.7 ports: - "12181:2181" environment: - ALLOW_ANONYMOUS_LOGIN=yes volumes: - zookeeper_data:/bitnami/zookee

2021-10-08 17:02:04 187

转载 将rpm包转换成deb包(如何在Ubuntu上安装rpm软件包)

点击查看

2021-09-14 23:46:08 254

原创 False Sharing

False Sharingvedio:False Sharing in Java

2021-07-31 08:10:17 92

翻译 什么是Race Condition?

简介race condition是多线程的应用程序中经常遇到的问题,本文章接下来会解释什么是race condition,如何检测到它们以及如何解决这类问题。Race condition从定义来说,race condition是代码中一些执行结果取决于其执行的相对时间或者多线程交错执行的判断条件。它的结果是不可预测的。如何一个程序中不存在race condition,那么它就是线程安全的(thread-safe)。例如有个转账程序,假设有两个账户,里面的余额都是500,现在要分两次从A账户转账300

2021-06-12 23:45:50 10616

翻译 UNIX的五种IO模型

几个概念用户空间和内核空间文件描述符进程切换缓存I/O五种I/O模型阻塞I/O(blocking IO)非阻塞IO (non-blocking IO)IO多路复用 (IO muticomplex)

2021-06-06 00:59:59 92

原创 用户空间和内核空间

在平时看资料时,时不时出现用户空间(user space)和内核空间(kernel space)。那到底什么是用户空间,什么是内核空间呢?在这里说说我自己的理解。操作系统中直接与硬件打交道的被称之为内核,内核控制这所用的硬件,如果普通程序需要操作硬件(例如写IO到硬盘),是不可以直接与硬件交互的,必需通过调用内核暴露的接口,来达到相应的目的,调用内核的接口这个过程被称为系统调用(system call)。用户空间指的是在内核之外运行的代码,而内核空间是内核运行的地方。例如下面的的代码中就涉及了用户空间

2021-05-30 19:35:11 807

原创 Redis Pipeline

Redis与客户端是通过TCP协议进行沟通的,这代表着执行一条命令,都和客户端建立tcp连接,执行命令,然后发返回结果,释放连接。如果在大量执行执行命令,其中的消耗也不可小觑。Redis引入了Pineline技术,实际上就是某一客户端把多个redis操作缓存起来,一并发送到redis执行,最后结果也打包返回。Spring中的RedisTemplate也提供了对pipeline的支持,下面使用RedisTemplate做普通redis操作和pipeline操作的耗时对比:package com.learn

2021-05-23 21:06:41 187

原创 redis慢查询

前言Redis慢查询可以记录查询时长超过一定时间的查询,可发人员和运维人员可以据此定位慢操作。相关命令下面查询慢查询的两个配置:127.0.0.1:6379> config get slowlog*1) "slowlog-max-len"2) "128"3) "slowlog-log-slower-than"4) "10"命令含义slowlog-max-len慢查询的日志大小,当满了之后,旧日志会被删除,建议设计1000以上slowlog-log-slo

2021-05-16 22:19:31 1522 2

原创 redis主从复制中数据同步的原理

主从复制在Redis中通过salveof命令或者在配置中设置slaveof选项值就可让当前主机称为某台redis的从节点。一个master可以有多个slave一个slave只能有一个master数据流向是单向的,从master到slave出master可以有slavle,slave也可以有slave。多个服务器之间构成了网状结构...

2021-05-01 22:40:48 408 1

原创 linux中的硬链接和软链接

linux中的硬链接和软链接-Soft link and hard link in LinuxInode 和 Inode numberInode的结构Inode中Meta DataInode中的指针使用ls命令和stat查看Inode信息读取一个文件的流程软连接硬链接软硬链接的区别参考阅读Inode 和 Inode number在linux的世界中,一切皆文件。每创建一个文件(包括文件夹)都会创建一个Inode和分配一个Inode Number与之对应。Inode Number是在整个文件系统是唯一,可

2021-04-17 23:52:21 280

原创 redis持久化之rdb

redis持久化之rdbRDB相关配置rdb快照的触发条件rdb快照过程rdb文件结构rdb和aof文件的加载顺序Redis的RDB持久化方式是指将某个时刻的内存数据进行快照,生成.rdb文件可以用于恢复快照时刻redis的内存数据。RDB相关配置我们可以在redis.conf中进行rdb相关的配置,具体配置如下配置说明save 600 1距离上次快照过去了600秒且发生了至少一个key的修改就进行rdb快照,如果没有配置这些配置表示关闭stop-writes-on-bg

2021-03-20 19:24:42 136

原创 图解redis之aof持久化

aof相关配置reids中aof持久化是指将reids中的数据以一条条写命令来表示,当redis重启时,重新执行这些写命令来达到恢复数据的目的。其中的重点的是理解控制aof文件生成重写的几个配置和其中的过程。aof重写如果开启aof持久化,当达到auto-aof-rewrite-percentage和auto-aof-rewrite-min-size设置的阈值的时候会触发aof重写。aof重写即将redis中的数据转换为一条条的写命令,精简了其中的重复命令来达到减少aof文件的目的。...

2021-03-16 00:55:45 132

原创 redis消息订阅

redis消息订阅发布订阅模式生产者/消费者模式例子命令两种订阅方式:频道订阅和模式订阅发布订阅模式发布订阅模式(pubsub pattern)中,消息发布者(publisher)发布消息(message)到一个频道(channel/topic),订阅者(subscriber)订阅其中的频道。当发布者发布消息到一个频道时,所有的订阅这个频道的订阅者都会收到这个消息。#mermaid-svg-W4iw6i6PSxw88rfr .label{font-family:'trebuchet ms', verd

2021-03-14 18:49:27 246 1

原创 redis事务

目录redis事务与事务相关的命令redis事务的ACID特征原子性一致性隔离性持久性事务处理过程redis事务redis虽是非关系型数据库,但也支持事务。redis事务由mutli,exce,discard,watch等命令实现。下图展示了再redis中开启并执行一个事务的过程。首先使用watch命令监视了name,age两个key,然后使用multi开启了一个事务,最后使用exec执行了这个事务。127.0.0.1:6379> set name helloOK127.0.0.1:6379

2021-03-01 00:49:13 109

原创 理解redis中的scan

scan命令的用法基本用法scan命令的保证(guarantees)每次scan返回元素的数量count选项match选项type选项并行遍历中断遍历使用错误的游标值遍历中断的保证(Guarantee of termination)为什么在遍历聚合数据类型时会一次返回所有元素基本用法redis在2.8版本提供了scan相关命令用来遍历集合中的元素。和keys,smembers命令遍历大集合场景下会阻塞redis一定时间不同,scan命令每次遍历只会返回一定数量集合元素和当前的遍历位置的游标,时间非常短,

2021-02-26 00:50:00 1830

翻译 linux中xagrs命令的用法

linux中xagrs命令的用法什么是xargs怎样使用xargs查看执行的命令查看并确认执行的命令xargs和find命令配合使用xargs vs exec一次运行多个命令什么是xargsxargs命令可以从标准输入中构建并执行命令。通俗一点来说就是,将一个字符串中分割出多个子字符串作为一个命令的参数,然后执行这个命令。怎样使用xargs默认情况下,xargs从标准输入中读取内容,用空格分割字符,然后作为参数去执行一个命令。下面的命令会从创建三个文件夹。查看执行的命令-t参数会显示执行的命令

2021-02-18 23:23:26 978

原创 Redis数据类型之哈希(hash)命令

Redis数据类型之哈希(hash)命令设置哈希表域的值1.hset 设置哈希表的field2.hsetnx 为不存在的filed设置value3.hmset 为多个field设置value获取哈希表中的域和值1.hget 获取一个域的值2.hmget 获取多个域的值3.hgetall 获取所有域的值4.hkeys 获取所有域5.hvals 获取所有值哈希表统计1.hlen 域或值的数量对值的操作1.hincrby 为哈希表中的域加上增量值2.hincrbyfloat 为哈希表中的域加上浮点增量值3.hex

2021-02-03 00:15:51 173

原创 redis数据类型之字符串(String)类型的基本命令

redis数据类型之字符串(String)类型设置值1. set设置多个键值对2. mset设置多个键值对3. setnx设置不存在的键值对4. msetnx设置多个不存在的键值对获取值1. get获取值2. mget获取多个键值对的值3. getset为键设置新值4. strlen计算值的字符长度5. getrange获取子字符串6. setrange替换字符串7. append追加字符串生存时间1. setex设置过期时间2. psetex设置过期时间3. persist将键值对变成永久有效4. tt

2021-02-02 01:06:27 941 1

原创 生成由数字大小写字母组成的随机字符串

方法功能:生成用户指定长度的字符串,由数字、大写字母、小写字母组成,其中数字、大小写字母出现的概率由用户指定。思路:利用random函数生成的随机数决定生成数字、小写字母还是大写字母,生成数字的概率等于其生成区间与总区间长度之比,其他类比。之后再利用随机函数生成特定集合的字符。(random函数生成的随机数在区间[0,1]之间,由数字、大小写字母概率之比对区间进行分割,随机数落在特定分割后的区间...

2018-10-10 20:13:15 4556

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除