持续提升技术,完善知识体系
技术点滴

2020-11-17 19:02:23

Centos7使用docker搭建openvpn

Centos7使用docker搭建openvpn 准备好一台海外的主机,如公网ip为47.213.133.182,并安装好docker(docker官网下载最新的安装包),下载openvpn镜像docker pull kylemanna/openvpn:2.4 1、使用openvpn生成配置文件 mkdir -p /data/openvpn docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn:2.4 ovpn_genconfig -u udp://47.213.133.182 执行完命令后可在目录/data/openvpn中看到相应的配置文件; 2、初始化密钥文件 docker...

2020-11-16 19:11:09

clickhouse查看数据库及表空间大小语句

clickhouse查看数据库及表空间大小语句 1、查看数据库容量、行数、压缩率 SELECT sum(ROWS) AS `总行数`, formatReadableSize(sum(data_uncompressed_bytes)) AS `原始大小`, formatReadableSize(sum(data_compressed_bytes)) AS `压缩大小`, round((sum(data_compressed_bytes) / sum(data_uncompressed_bytes)) * 100, 0) AS `压缩率`...

2020-11-15 20:11:09

阿里云ECS服务器密钥对pem文件使用secureCRT登录异常问题处理

阿里云ECS服务器密钥对pem文件使用secureCRT登录异常问题处理 密钥对pem文件非公钥文件,并不能直接在SecureCRT客户端中直接使用,会报Unable to authenticate using any of the configured authentication methods.错误。 1、将下载的pem文件放到linux环境下,使用以下命令导出公钥 chmod 600 mixfate.pem ssh-keygen -e -f mixfate.pem >...

2020-11-14 21:12:09

spring-cloud-2020.0.3-oauth2 + jwt 实现微服务安全认证

spring-cloud-2020.0.3-oauth2 + jwt 实现微服务安全认证 1、创建maven基本parent项目 创建一个passport-parent父项目,其中包含了两个模块(module)为passport和account,passport即认证授权的服务,account用来模拟资源服务,将在account服务内部获取到用户的认证授权信息。 passport-parent对应的pom.xml文件如下(去除非关键部分) <project> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.2</version> <relativePath/> </parent> <groupId>com.minxyz.passport</groupId> <artifactId>passport-parent</artifactId> <version>0.0.1</version> <name>passport-parent</name> <description>passport-parent...

2020-11-13 11:12:09

关于使用CompletableFuture过程中线程等待的问题

关于使用CompletableFuture过程中线程等待的问题 在电商的应用场景中,通过异步多线程获取服务端信息比较常见,如用户打开个人中心查看个人综合信息,可能会展示用户的账户余额、优惠券、积分、消费红包等等信息,这时服务端就会通过异步线程将所需信息汇总后一并返回给用户。如果按单线程逐一返回个人信息,用户等待的时间显然是不能接受的,通过异步多线程的方式大大减少请求的响应时间。 jdk8简化了异步任务的写法,提供了很多异步任务的计算方式。 1、示例(先从一个简单测试示例代码,查看运行的结果) import lombok.extern.slf4j.Slf4j; import java.time.Duration; import java.time.Instant; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.concurrent.CompletableFuture; @Slf4j public...

2020-11-12 22:15:26

frp实现内网穿透(mstsc远程登录)

frp实现内网穿透(mstsc远程登录) 1、frp server 下载linux环境下的软件安装包frp_0.36.2_linux_amd64.tar.gz,并解压到目录/software/中; 服务端配置文件frps.ini内容如下 [common] bind_port = 8989 8989即客户端与服务端的通信端口,必须一致,与客户端配置frpc.ini中的项[common]的server_port对应; 配置防火墙允许端口8988及8989并检查状态 firewall-cmd --zone=public --add-port=8989/tcp --permanent firewall-cmd --zone=public --add-port=8988/tcp --permanent firewall-cmd...

2020-11-12 22:15:25

jvm常见的几种异常与参数限制

jvm常见的几种异常与参数限制 1、java.lang.StackOverflowError StackOverflowError一般是由于方法的递归层次太深,导致方法栈溢出异常,可以通过调整参数-Xss2048k增加栈空间,但并不能真正解决问题的根源,需从业务场景上分析调用是否合理 示例代码 public static void main(String[] args) throws Exception { //-Xss2048k 改变栈空间大小,默认为1024k //java.lang.StackOverflowError try { stackOverflow(); }finally {...

2020-11-12 22:15:24

Alibaba-arthas在线诊断工具基本使用方法

Alibaba-arthas在线诊断工具基本使用方法 从github中下载最新的发布包arthas-bin.zip,解压到指定目录后使用命令java -jar arthas-boot.jar并指定java进程id即可使用 1、使用options命令设置输入输出或异常的信息使用json格式化 options json-format true 设置成功后可使用options命令检查是否生效,但json格式对异常的输出不大友好 2、使用watch命令观察方法的输入输出参数或异常信息 查看输入参数,*号表示匹配任意的方法(如指定test则为所有方法名为test方法,不区分方法的参数) watch com.freeok.controller.FreeController * params 查看输入输出及异常-n表示只执行一次,-x表示入参和返回结果的展开层次为5层 watch com.freeok.controller.FreeController * "{params,returnObj,throwExp}"...

2020-11-12 22:15:23

centos7安装glusterfs

centos7安装glusterfs 1、环境机器准备 准备四台机器,host配置如下,gfs01/gfs02/gfs03为gluster节点均需执行systemctl stop firewalld关闭防火墙或firewall-cmd --zone=public --add-service=glusterfs --permanent并firewall-cmd --reload 192.168.80.136 gfs01 192.168.80.142 gfs02 192.168.80.143 gfs03 192.168.80.144 gfs-client 2、gfs01\gfs02\gfs03三台节点机器新增一块硬盘并格式化(在vmware中实践) 检查系统中是否有新磁盘 fdisk...

2020-11-12 22:15:22

centos7安装nfs服务

centos7安装nfs服务 1、服务端安装 安装软件包 yum -y install nfs-utils rpcbind 修改配置文件/etc/exports /data *(rw,async,no_root_squash) 在根目录新建目录data,并赋权限chomd -R a+w /data 防火墙设置 开放111及2049端口 firewall-cmd --zone=public --add-port=111/tcp...

2020-11-12 22:15:21

spring-boot-2.4.0中添加servlet filter的执行顺序问题

spring-boot-2.4.0中添加servlet filter的执行顺序问题 1、先看源码中类ServletContextInitializerBeans初始化的过程 构造方法 public ServletContextInitializerBeans(ListableBeanFactory beanFactory, Class<? extends ServletContextInitializer>... initializerTypes) { ... //省略非相关代码 addServletContextInitializerBeans(beanFactory); addAdaptableBeans(beanFactory); List<ServletContextInitializer> sortedInitializers = this.initializers.values().stream()...

2020-11-12 22:15:20

centos7安装gitbook

centos7安装gitbook 1、安装node 下载node安装包并解压 wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.xz xz -d node-v10.16.3-linux-x64.tar.xz tar -xvf node-v10.16.3-linux-x64.tar 创建软链 ln -s /software/node-v10.16.3-linux-x64/bin/node /usr/local/bin/node ln -s /software/node-v10.16.3-linux-x64/bin/npm /usr/local/bin/npm...

2020-11-12 22:15:19

centos7安装mkdocs

centos7安装mkdocs 1、检查版本并下载安装python3.8.2 版本信息 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [root@localhost ~]# uname -a Linux localhost.localdomain 3.10.0-1160.11.1.el7.x86_64 #1...

2020-11-12 22:15:18

关于mysql的innodb 800w+数据不带条件count性能优化的思考

关于mysql的innodb 800w+数据不带条件count性能优化的思考 1、查看mysql版本 mysql> show variables like '%version%'; +-------------------------+------------------------------+ | Variable_name | Value | +-------------------------+------------------------------+ | innodb_version | 5.7.32 |...

2020-11-12 22:15:17

centos7安装redis4.0.0

centos7安装redis4.0.0 1、下载安装包并解压 wget https://github.com/redis/redis/archive/4.0.0.tar.gz tar -zxvf 4.0.0.tar.gz cd redis-4.0.0/ 2、安装依赖 yum install gcc tcl -y 3、安装并测试 make MALLOC=libc make test...