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

2020-11-21 06:01:34

elasticsearch8安装使用(centos7)

1、centos环境下安装 安装包下载 下载elasticsearch8安装包elasticsearch-8.1.0-linux-x86_64.tar.gz,并下载好jdk-17.0.2,解压后目录为/software/elasticsearch-8.1.0和/software/jdk-17.0.2。 ES环境变量配置 export ES_HOME=/software/elasticsearch-8.1.0 export ES_JAVA_HOME=/software/jdk-17.0.2 创建ES专用账号(需要使用此账号来管理ES) useradd elastic chown elastic /software/elasticsearch-8.1.0 -R 使用root账号更改打开的文件数限制及最大虚拟内存限制 查看当前用户文件数限制 ulimit -n vi...

2020-11-21 06:01:33

spring-native实践(实验版)

1、试用环境准备 准备好centos7系统 安装好jdk17 安装好docker20 2、编写项目并构建native镜像 项目准备 从start.spring.io创建一个新的项目,项目名为mynative,在ADD DEPENDENCIES中可以看到排在第一位的依赖就是spring-native,不过目前还处理试验阶段,要谨慎使用; 添加几个基础依赖,主要是用来简单测试一下一个http请求到web应用,并将请求信息保存到内存数据库h2中,然后打开内存数据库的console控制台查询校验数据,看数据是否正常; mynative项目源码结果如下 代码片断 RequestLogController类 --- @Slf4j @RestController @RequestMapping("/") public class RequestLogController {...

2020-11-21 06:01:32

分布式事务seta入门案例(resttemplate-seata)

1、seata是什么 SEATA(Simple Extensible Autonomous Transaction Architecture) 2、seata-demo编译运行 编译seata 从github下载seata源码,源码地址https://github.com/seata/seata.git; 切换到tag v1.4.2最新版本 mvn clean package -Dmaven.test.skip -Prelease-seata 编译seata-samples 从github下载seata-samples源码,源码地址https://github.com/seata/seata-samples.git mvn clean...

2020-11-21 06:01:31

关于spring-boot配置加载顺序解读

1、配置加载现象 加载场景说明 假设有一个特殊的场景的配置文件如下表,那么配置文件是如何生效,以及加载的顺序是怎么样的呢?有多个地方均配置了相同的参数,到底是哪一个参数项在应用中生效的呢? 配置文件 配置项 application.yaml xxx:  yyy:    zzz: from-application.yaml application-dev.yaml xxx:  yyy:    zzz: from-application-dev.yaml bootstrap.yaml xxx:  yyy:    zzz: from-bootstrap.yaml config-server xxx:  yyy:    zzz: from-config-order.yaml 系统环境变量 XXX_YYY_ZZZ=from-system-environment jvm启动参数...

2020-11-21 06:01:31

关于log4j2远程代码执行漏洞详细复现过程

1、漏洞重现说明 log4j-2远程代码执行漏洞是因为log4j的版本中存在jndi(Java Naming and Directory Interface)注入漏洞,jndi注入是利用的动态类加载机制完成攻击的,当程序将用户输入的数据进行日志记录时,即可触发此漏洞。注意是log4j-2.x的版本,本文演示使用2.14.1。 如果在应用中使用了如log.info等一些输出用户录入的内容就可能遭到攻击者的攻击,这种将请求日志log出来的场景并不少见,比如和一些第三方系统对接的时候,在联调或试运行阶段会将请求的报文信息完整输出到日志。 摘取一个gitee上的代码样例 漏洞场景 举个例子,jianshu-application这个服务用来提供给用户修改个人简介的,如图 漏洞重现案例的几个角色 角色 应用名 说明 被攻击者 jianshu-application 这个是被攻击的服务器(使用了log4j-core-2.14.1),假设提供了个人简介的修改功能 攻击者 marshalsec-0.0.3-SNAPSHOT 开源纯java写的一个工具,将数据转换为代码执行...

2020-11-21 06:01:30

spring-boot-admin(2.5.4)使用

Spring Boot Admin是一个管理和监视Spring Boot应用程序的项目。应用程序通过Spring Boot Admin客户端(通过HTTP)注册,或者使用Spring Cloud服务发现注册。 1、spring-boot-admin-server服务 server端只要加入spring-boot-admin-starter-server依赖即可,默认的情况下是不需要用户名及密码即可登入查看服务详情,所以可以加入spring-boot-starter-security增加安全策略。 关键依赖如下 <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>${project.parent.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> 代码及配置如下...

2020-11-21 06:01:29

alibaba-canal-1.1.5源码编译使用整理

alibaba-canal-1.1.5源码编译使用整理 1、下载canal获取发布包 可以直接从https://github.com/alibaba/canal/releases下载release发布包,也可以下载源码后自行编译https://github.com/alibaba/canal.git,以v1.1.5为例,下载源码后执行编译 cd C:\github\alibaba\canal\ mvn clean package -Denv=release -Dmaven.test.skip=true 注意:编译完成后发布包在C:\github\alibaba\canal\target目录中 2、修改mysql配置 mysql需要开启binlog [mysqld] log-bin=mysql-bin # 开启 binlog binlog-format=ROW #...

2020-11-21 06:01:28

spring-cloud-2020.0.4使用nacos2.0.3作为注册中心案例

spring-cloud-2020.0.4使用nacos2.0.3作为注册中心案例 1、nacos下载安装 nacos安装比较简单,可直接从github中下载release发布包,https://github.com/alibaba/nacos/releases,window下载zip包,linux下载tar包即可,启动nacos需要先安装好jdk环境 1.1、单机版 安装包解压后,打开目录nacos/conf,可以找到nacos-mysql.sql建表脚本 修改配置文件application.properties,取消注释db连接配置项,配置好对应的数据库连接 db.num=1 db.url.0= db.user.0= db.password.0= 启动单机版nacos ./startup.sh -m standalone 打开管理后台页面 http://192.168.80.20:8848/nacos 默认用户名密码为nacos/nacos 1.2、集群版 集群版nacos需要在单机版的基础上增加配置cluster.conf,例如如下配置 192.168.80.130:8848...

2020-11-21 06:01:27

docker安装运行单机版clickhouse-21.9.2.17

docker安装运行单机版clickhouse-21.9.2.17 1、安装好docker并下载最新镜像 docker pull yandex/clickhouse-server:21.9.2.17 2、为了方便修改配置将配置信息从docker拷贝出来 临时运行一个clickhouse实例 docker run -it --rm yandex/clickhouse-server:21.9.2.17 bash cd /etc/clickhouse-server 新打开一个命令窗口拷贝文件 cd /etc/clickhouse-server tar -czvf...

2020-11-21 06:01:26

Spring Cloud 2020.0.3 断路器 Hystrix 2.2.9.RELEASE 实践

Spring Cloud 2020.0.3 断路器 Hystrix 2.2.9.RELEASE 实践 Spring Cloud 支持多种断路器的实现,比较常见的是Netflix Hystrix,但目前最新版的spring-cloud-2020.0.3已经移除了netflix相关组件。 在微服务之间的调用链中,如果没有适当地保护,当某一个服务环节出现故障则可能会导致整体服务雪崩不可用。如底层服务因为数据库慢查询,导致接口请求耗时过长,进而导致服务线程打满等待线程数暴增出现大量超时无法对外提供服务。 本文使用spring-cloud-2020.0.3及spring-boot-2.5.4演示hystrix的使用及相关参数的配置。 1、模拟客户端(client端) pom.xml关键依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>3.0.3</version> </dependency>...

2020-11-21 06:01:25

HTTP常见状态码解析

HTTP常见状态码 HTTP状态码分为五大类,由三位数字组成,第一位数字定义了状态码的类型,第二、三位没有实际含义,按顺序定义了具体状态码的含义 状态码分类 说明 状态码 定义 1xx 信息状态码(Informational),比较少用 100 Continue 101SWITCHING_PROTOCOLS 102PROCESSING 103CHECKPOINT 2xx 成功状态码(Success) 200 OK(服务器成功处理了请求) 201CREATED(服务器创建资源成功) 202ACCEPTED(请求已接受) 203NON_AUTHORITATIVE_INFORMATION(非权威信息)...

2020-11-21 06:01:24

eureka在关闭自我保护情况下过期服务不及时下线问题跟踪

eureka在关闭自我保护情况下过期服务不及时下线问题跟踪 1、微服务中使用eureka注册中心的三种角色 eureka server注册中心 注册中心作为存储服务,提供各种服务提供方注册的服务信息,eureka正常启动后可使用http://localhost:8761/查看已注册的服务信息及相关配置信息,http://localhost:8761/eureka/apps/feign-service可查看某个服务的明细信息,其中feign-service即服务的名称。 eureka: server: enable-self-preservation: false eviction-interval-timer-in-ms: 10000 参数enable-self-preservation为是否开启eureka自我保护参数,eviction-interval-timer-in-ms为清除过期服务时间间隔,如设置成每10秒清除一次过期服务,启动eureka注册中心服务后每间隔10秒会有Running the evict task with compensationTime 3ms日志; 服务提供方 将服务信息注册到eureka注册中心,并可配置维持心跳检测(续期)时间((默认30秒)及过期时间(默认90秒)。...

2020-11-20 06:01:23

浅析Lombok原理并动手编写@Getter与@Setter的简单实现

浅析Lombok原理并动手编写@Getter与@Setter的简单实现 1、lombok使用及其原理 Lombok是一个 Java 库,能够以极其简单的注解方式解决工程中的繁琐重复的代码,提高研发人员的工作效率。例如java bean中的大量getter setter tostring方法,常用的注解有@Getter @Setter @Slf4j等。 官网https://projectlombok.org/ 官方的lombok使用,如果是maven项目,只需要引入包的依赖即可,IDEA中可选择安装对应的lombok插件 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> </dependency> import lombok.Getter; import...

2020-11-19 06:02:23

centos7安装podman及使用

centos7安装podman及使用 1、在线安装podman sudo yum -y install podman 安装成功后查看版本信息及其帮助 [root@localhost ~]# podman -v podman version 1.6.4 [root@localhost ~]# podman info [root@localhost...

2020-11-18 10:02:23

docker安装nginx设置转发规则

docker安装nginx设置转发规则 1、下载最新nginx镜像 docker pull nginx Using default tag: latest latest: Pulling from library/nginx Digest: sha256:8f335768880da6baf72b70c701002b45f4932acae8d574dedfddaf967fc3ac90 Status: Image is up to...