自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(468)
  • 资源 (10)
  • 问答 (2)
  • 收藏
  • 关注

转载 雪花算法ID重复的分析与在项目中的解决

集群部署的微服务,当随机的机器ID相同,刚好在同一毫秒生成ID,时间戳相同,并且序列号也相同时,那么雪花算法的ID就会出现重复的问题。每次生成workerId时,从redis中获取到当前workerId最大值,并+1作为当前workerId,并存入redis。工作机器id:10bit,表示工作机器id,用于处理分布式部署id不重复问题,可支持2^10 = 1024个节点。如果workerId为1023,自增为1024,则重置0,作为当前workerId,并存入redis。

2022-09-22 16:26:33

原创 SpringBoot+ MDC实现全链路调用日志跟踪

MDC(Mapped Diagnostic Context,映射调试上下文)是log4j、logback及log4j2提供的一种方便在多线程条件下记录日志的功能,基于ThreadLocal实现的一种工具类。

2022-09-15 11:55:42 8

原创 Spring boot发布到k8s并加载Configmap配置文件,实现配置热更新

在应用k8s之后, 配置文件可以在通过ConfigMap资源剥离出来单独部署, 本次记录spring boot框架的java应用结合k8s的ConfigMap的实现外部配置文件挂载及配置热更新的一次实践。

2022-09-02 14:14:15 251

原创 批量ping、telnet脚本

1、批量ping脚本,并输出结果到文件。2、批量telnet,不同颜色区分。

2022-09-02 11:49:51 205

原创 RocketMQ延时消息

常见的延时处理解决方案:定时任务扫描事先记录事件的触发时间点,定时任务不停查数据库对比触发时间。这种方式不实时,随着定时任务的执行频率变高,触发实时性会有所提升,但是频繁地扫描增加了数据库的压力,也是最简单的做法。JDK的解决方案jdk为我们提供的定时器Timer,延时队列DelayQueue。这种方式在单机,对可靠性要求不高的环境下是可以使用的,任务和队列都存在于jvm内存中,所以不支持分布式的环境,系统突然宕机后也无法恢复。消息中间件的延时消息生产者投递延时消息,消费者在规定时间后才能

2022-04-11 19:20:56 604

原创 添加网络路由

route -p add 192.168.1.22 MASK 255.255.255.255 192.168.2.1route -p add 192.168.1.23 MASK 255.255.255.255 192.168.2.1命令解析如下route -p add 对端IP mask 子网掩码(我这里是因为要单独IP所以用4个255) 网关地址route print (查看路由表)route print >> c:\route.txt (将路由输出到文件)...

2022-03-23 14:44:01 4526

原创 Java校验框架使用@Valid、@Validated、OVAL+Groovy

@Valid 与 @ValidatedSpring Validation验证框架对参数的验证机制提供了@Validated;javax提供了@Valid,配合BindingResult可以直接提供参数验证结果;检验Controller入参规范时,@Validated和@Valid在基本验证功能上没有太多区别。但在分组、注解地方、嵌套验证等功能上有所不同:1. 分组@Validated:提供分组功能,可以在入参验证时,根据不同的分组采用不同的验证机制。@Valid:没有分组功能。2.

2022-02-24 18:44:51 921

原创 使用HeidiSQL将mysql数据库表结构导出到CSV

select column_name as 字段, column_type as 数据类型, data_type as 字段类型, character_maximum_length as 长度, is_nullable as 是否为空, column_default as 默认值, column_comment as 备注from information_schema.columnswhere table_schema =...

2022-02-15 16:01:13 982

原创 HTTP与RPC的区别

只要是远程调用都可以叫RPC,和是不是通过http没什么关系。http好比普通话,rpc好比团伙内部黑话。讲普通话,好处就是谁都听得懂,谁都会讲。讲黑话,好处是可以更精简、更加保密、更加可定制,坏处就是要求“说”黑话的那一方(client端)也要懂,而且一旦大家都说一种黑话了,换黑话就困难了。 RPC:Remote Produce Call远程过程调用,类似的还有RMI(Remote Methods Invoke 远程方法调用,是JAVA中的概念,是JAVA十三大技术之一)。自定义数据格式..

2022-01-28 10:29:15 1164

转载 打造基于云原生的桌面云平台

桌面云平台相关管理面将云原生化,分布化,运行在Kubernetes中,直接提供统一的Kubernetes集群管理控制API以及集群信息的同步机制,实现跨集群Kubernetes的统一管控,如集群的账号、权限、配置的同步和统一;数据面打通跨云Kubernetes的内网,实现跨云通信。桌面云平台能力1、对异构IT基础设施资源的管理能力云桌面平台不仅需要对接现有资源池的VMware ESXi虚拟化技术、x86体系外,还需要支持对KVM虚拟化体系以及ARM,GPU等计算资源的接入。2、对资源业务的自

2021-11-15 11:03:51 87

转载 云手机产品介绍

云手机一、产品概述移动云云手机基于 ARM 服务器虚拟化技术,通过 APP、H5 为用户提供安全便捷的安卓手机服务,提 供和真机一样的云端资源(包括 CPU、内存、存储空间)以及安卓 ROM。打破了传统手机存储、性能、 续航的限制,可用于移动办公、仿真测试、家庭娱乐等场景。二、产品优势1、安全可靠应用在云端运行、数据在云端存储,为用户提供安全可 靠的数据迁移能力。2、方便快捷支持App客户端、H5等形式使用虚拟云手机,即开即 用、接入便捷、操作灵活,通过App进入后尽享与

2021-10-29 09:34:15 109

转载 vSphere Web Service SDK编程学习(二)

ws超时设置vmware vcenter sdk提供的接口都是通过ws的形式,默认设置的超时时间是60秒,实际操作底层资源的时候很容易就会返回类似read time out这样的错误,需要手动设置下ws的超时时间。 Map var1 = ((BindingProvider)basicConnection.getVimPort()).getRequestContext(); var1.put("com.sun.xml.internal.ws.connection.t..

2021-10-29 09:32:16 81

转载 有关Horizon View 使用AVI做负载均衡的POC试验

一、有关Horizon View 使用AVI做负载均衡的POC试验移动云云桌面Horizon架构:1.前期网络规划地址类型 地址规划 AVI Controller01 管理地址 172.20.254.235 Service Engine 管理地址 172.20.254.116-172.20.254.119 Horizon CS01 业务地址 192.168.253.200 Horizon CS02 业务地址 192.168.253.199 H

2021-10-29 09:28:38 161

原创 使用kubectl、docker命令(非root用户)

一、创建非root用户useradd dev #创建用户passwd dev #修改密码<br>二、赋予sudo权限root ALL=(ALL) ALLdev ALL=(ALL) ALL #新增用户信息三、配置dev用户使用kubectl使用权限1、切换到普通用户操作:su - devmkdir -p /home/dev/.kubesudo cp -i /etc/kubernetes/admin.kubeconfig /home/dev/.kube/conf

2021-10-25 10:17:47 277

转载 JVM内存区域——堆,栈,方法区等

运行时数据区域jdk1.7中, Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。程序计数器1. 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。2. 字节码指令、分支、循环、跳转、异常处理、线程恢复等基础功能都要依赖这个计数器来完成。3. 每条线程都有一个独立的程序计数器,各条线程之间计

2021-10-08 18:19:45 331

转载 移动云电脑基于K8S的mariadb云原生实践

一、K8S 有状态与无状态服务 随着Kubernetes平台在容器云计算领域的火热,云原生 一词也被提的越来越频繁。各类应用纷纷走上了容器化、云原生化的道路,无状态服务应用在Kubernetes平台上的运行,已经得到了大规模生产级别的实践认可。Kubernetes对基础设施关注更少、自动化程度更高,我们都知道 Kubernetes 在无状态应用部署管理,尤其是微服务领域,已经大放异彩。例如管理一个无状态的 Web 服务,我们可以使用 Kubernetes 的 Deployment 部署多副...

2021-09-29 09:04:48 226

转载 Windows沙盒技术调研

一、Windows沙盒技术介绍Windows沙盒提供了轻型桌面环境,可安全地隔离运行应用程序。 沙盒环境中Windows软件保持"沙盒"状态,并独立于主机运行。沙盒是临时的,关闭后,将删除所有软件和文件以及状态。每次打开应用程序时,都会获得沙盒的全新的实例。安装在主机上的软件和应用程序不会直接在沙盒中提供。如果需要沙盒环境中可用的特定Windows,则必须在环境中显式安装它们。(一)Windows沙盒具有以下属性:·部分Windows系统支持:此功能所需的一切内容都包含在Windows ...

2021-09-28 16:02:49 366 1

转载 Git基本操作总结

Git基本操作:工作区:工作区就是我们经过git init的本地工作工作目录文件夹 暂存区:git add命令将工作区内容添加到暂存区 版本库:在工作区中被隐藏的.git目录 远程仓库:用于远程协作,通过push可实现本地与远程的交互1、首先创建一个版本库mkdir <file>:创建文件夹 cd<file>:进入目录 pwd:显示当前目录2、将上述创建的版本库变成git可以管理的仓库 git init:初始化一个git仓库3、将文件添加到版本库...

2021-09-22 15:22:06 41

转载 虚拟化系列-VMware篇-Horizon介绍

VMware 桌面虚拟化介绍 VMware是云计算和软件定义数据中心(SDDC)的领导者,在 VMware的 SDDC解决方案中,有很多基础架构,如 vSphere(计算虚拟化)、VSAN(存储虚拟化)、NSX(网络虚拟化)、vRA(自动化运维)等方面的能力,后续文章中会逐个进行介绍;本文主要介绍Horizon产品,它可以理解是虚拟桌面和应用的交付平台。VMware Horizon产品简介 VMware Horizon是一款桌面云(VDI)产品,向最终用户交付虚拟桌面和...

2021-09-22 15:12:15 8746

原创 局域网下windows从linux拷贝文件

文件在linux下,拷贝到windows中:在Linux执行命令 python -m SimpleHTTPServer, 然后在windows浏览器中,即可访问linux文件。

2021-08-10 17:54:42 152

原创 k8s 拉取镜像失败

利用k8s部署服务时,kubectl get all -o wide 查看到的pod运行状态异常kubectl describe pod pod-hhja889hkjshaf87yh 看到最后存在异常信息Error response from daemon: pull access denied for istio/citadel, repository does not exist or may require ‘docker login’,判断是没有登录或者登录没有生效导致的docker lo.

2021-07-28 14:28:33 303

原创 Docker拉取私有镜像仓库问题解决

很多时候,我们在部署应用时需要从私有的镜像仓库中拉取镜像,Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,这样就会导致登录私有镜像仓库或拉取私有镜像时报如下的错误:docker login -u myUsername -p myPassword http://myIP:8080WARNING! Using --password via the CLI is insecure. Use --password-stdin

2021-07-28 12:48:40 1172

原创 windows下如何制作和应用数字签名证书 全流程

需要准备的工具:makecert.exe、cert2spc.exe、pvk2pfx.exe、signtool.exe。1、生成一个自签名的根证书(issuer,签发者)。makecert.exe -sv c:\mykey.pvk -n "CN=Comapy Name" c:\myCert.cer会弹出提示框,首先给RootIssuer.pvk文件设置私钥保护口令password ;2、再次输入这个口令用私钥(在RootIssuer.pvk文件中)来给公钥(在RootIssuer.cer文件中

2021-07-22 14:56:05 999

原创 【K8S】Docker登录私有镜像仓库报错(http: server gave HTTP response to HTTPS client)

出现这问题的原因是:Docker自从1.3.X之后dockerregistry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以上错误。在”/etc/docker/“目录下,创建”daemon.json“文件(如果有的话在里面添加)。在文件中写入{ "insecure-registries":["私有镜像仓库"] }修改好后,重启docker即可systemctl daemon-reload systemctl restart doc..

2021-07-16 14:21:00 956

原创 Nginx日志格式配置

各个时间的描述$request_time – 完整请求时间,从NGINX从客户端读取第一个字节开始,到NGINX发送响应正文的最后一个字节结束$upstream_connect_time – Nginx向后端建立连接开始到接受完数据然后关闭连接为止的时间$upstream_header_time – 建立到后端服务器的连接和接收响应头的第一个字节之间的时间$upstream_response_time – 从建立到后端服务器的连接到接收响应主体的最后一个字节之间的时间request_ti

2021-06-24 20:54:01 412

原创 Docker容器启动时获取启动参数

本文以Spring Boot为,ru'ti

2021-06-09 10:42:45 853

原创 后端部署到docker后查看日志

docker logs [OPTIONS] CONTAINEROPTIONS说明:-f :跟踪日志输出-t :显示时间戳--tail :仅列出最新N条容器日志--since:显示某个日期后的所有日志CONTAINER 代表容器ID或容器名称1.查看指定时间后的日志,只显示最后100行:docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID2.查看最近30分钟的日志:docker...

2021-05-21 14:34:10 374

原创 springboot允许https和http同时访问

1. 申请ssl证书(可在阿里云申请)2. 执行命令,生成 jks 文件keytool -importkeystore -srckeystore 1314xxx.pfx -destkeystore 1314.jks -srcstoretype PKCS12 -deststoretype JKS说明:1314xxx.pfx:是你从阿里云上下载解压得到的文件1314.jks:这是你要生成的文件,也是终极文件(放到application.yml或者application.properties同等级

2021-04-28 17:49:31 185

原创 @Autowired自动注入Map(适用一个接口有多个实现类,需要根据参数灵活调用具体的实现方法)

@Autowired自动注入Map(适用一个接口有多个实现类,需要根据参数灵活调用具体的实现方法)Spring 会在启动时,自动查找实现了该接口的 bean,放到这个Map中去。Key为bean的名字,value为 实现了该接口的所有的 bean。接口 IAnimalpublic interface IAnimal { String eat ();}实现1 Cat@Servicepublic class Cat implements IAnimal { @Overrid

2021-03-02 10:40:38 2746 1

原创 ApplicationEventPublisher的使用学习

一、介绍1.ApplicationEventPublisherAware  ApplicationEventPublisherAware 是由 Spring 提供的用于为 Service 注入 ApplicationEventPublisher 事件发布器的接口,使用这个接口,我们自己的 Service 就拥有了发布事件的能力。  用户注册后,不再是显示地调用其他的业务 Service,而是发布一个用户注册事件。2.ApplicationListener  ApplicationListener接

2021-01-29 09:59:10 4473 2

原创 自定义注解 Annotation

要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:@Target、Retention、@Documented、@Inherited这些类型和它们所支持的类在java.lang.annotation包中可以找到。下面我们看一下每

2021-01-21 16:56:45 102

原创 SpringBoot代码实现读写分离的方案

背景一个项目中数据库最基础同时也是最主流的是单机数据库,读写都在一个库中。当用户逐渐增多,单机数据库无法满足性能要求时,就会进行读写分离改造(适用于读多写少),写操作一个库,读操作多个库,通常会做一个数据库集群,开启主从备份,一主多从或多主多从,以提高读取性能。主从同步正常情况下读写分离的实现,首先要做一个一主多从的数据库集群,同时还需要进行数据同步。MySQL主从同步配置方法见另一篇文章:MySQL主从同步配置读写分离代码层面实现读写分离代码层面读写分离有两种方式判断是读还是写,根据方法名称

2021-01-21 15:43:59 503 2

转载 Spring Boot实现跨系统接口调用

Spring Boot实现跨系统接口调用一、概述在开发过程中经常会需要和其他系统进行对接,或者调用一些外部的第三方接口来获取所需要的数据信息,这个时候我们就需要跨系统去调用接口,本文基于spring boot项目整理三种方案。1、使用httpClient请求;2、使用RestTemplate方法;3、使用Fegin进行消费;1、使用httpClient请求需要先在maven的pom.xml中添加httpClient依赖<dependency> <group

2021-01-20 18:09:05 876

转载 结合案例介绍Spring Cloud底层原理

目录一、业务场景介绍二、Spring Cloud核心组件:Eureka三、Spring Cloud核心组件:Feign四、Spring Cloud核心组件:Ribbon五、Spring Cloud核心组件:Hystrix六、Spring Cloud核心组件:Zuul七、总结概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因

2021-01-20 10:22:45 67

原创 Spring-retry实现重试

在项目中,调用第三方接口响应比较慢,或者由于网络抖动等原因,导致无响应或响应超时的情况,就要用到重试机制。比较简单成熟的方案就是使用spring-retry功能,spring-retry需要使用aop的特性,所以需要引入aspectj1. 添加依赖<dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifact

2021-01-14 11:43:30 938 1

原创 spring中构造方法、@PostConstruct、@Autowired、@Value的加载顺序

探究Spring中构造方法、@PostConstruct、@Autowired、@Value的执行顺序@Servicepublic class TestService { public String get () { return "hello world"; }}@RestControllerpublic class TestController { public TestController () { System.er...

2021-01-12 10:43:06 1208

原创 Springboot的工具类中使用@Value给静态变量注入值、使用@Autowired注入对象的方法

1. 工具类中使用@Value给静态变量注入值@Componentpublic class EmopUtil { //EMOP url private static String url; //接口平台分配给应用的appId private static String appId; //EMOP url @Value("${emop.config.url}") private void setUrl (final String url)

2021-01-12 10:04:42 978

转载 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?

面试官心理分析其实这是很常见的一个问题,这俩问题基本可以连起来问。既然是消费消息,那肯定要考虑会不会重复消费?能不能避免重复消费?或者重复消费了也别造成系统异常可以吗?这个是 MQ 领域的基本问题,其实本质上还是问你使用消息队列如何保证幂等性,这个是你架构里要考虑的一个问题。面试题剖析回答这个问题,首先你别听到重复消息这个事儿,就一无所知吧,你先大概说一说可能会有哪些重复消费的问题。首先,比如 RabbitMQ、RocketMQ、Kafka,都有可能会出现消息重复消费的问题,正常。因为这问题

2021-01-07 17:44:46 119

转载 5个步骤,教你瞬间明白线程和线程安全

记得今年3月份刚来杭州面试的时候,有一家公司的技术总监问了我这样一个问题:你来说说有哪些线程安全的类?我心里一想,这我早都背好了,稀里哗啦说了一大堆。他又接着问:那你再来说说什么是线程安全?——然后我就GG了。说真的,我们整天说线程安全,但是对于什么是线程安全我们真的了解吗?之前的我真的是了解甚微,那么我们今天就来聊聊这个问题。在探讨线程安全之前,我们先来聊聊什么是进程。什么是进程?电脑中时会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的。比如下图中的QQ、酷

2021-01-05 10:46:59 70

转载 实现Java主线程等等子线程执行完毕后再执行

一个线程启动之后, 是异步的去执行需要执行的内容的, 不会影响主线程的流程, 往往需要让主线程指定后, 等待子线程的完成. 这里有几种方式。站在主线程的角度, 我们可以分为主动式和被动式.主动式指主线程主动去检测某个标志位, 判断子线程是否已经完成. 被动式指主线程被动的等待子线程的结束, 很明显, 比较符合人们的胃口. 就是你事情做完了, 你告诉我, 我汇总一下, 哈哈.1. JoinDemo(主动式)目的:等待当前线程的die示例:package com.test;...

2021-01-04 17:45:35 364

软考中级-软件设计师真题含答案(2016-2020)

软考中级-软件设计师真题含答案(2016-2020)

2022-09-08

windows应用数字签名工具.zip

windows应用数字签名工具:makecert.exe、cert2spc.exe、pvk2pfx.exe、signtool.exe。

2021-07-22

k8s 部署 - 研发.docx

本文通过kudeadm方式在Linux上安装kubernetes v1.18.5集群,并实现服务的灰度发布

2021-07-09

实用的装修施工费用及采购清单

新房装修预算控制表格,实用的装修用品预算清单, 有部分选品提醒; 施工费用清单。表格比较好用,推荐。

2020-11-16

webuploader + springboot实现大文件的上传下载

前端webupload +后端 springboot 实现大文件的上传下载,可实现断点续传,秒传,亲测可用

2020-10-21

province_city_area.properties

全国省市县信息,数据是从高德地图获取,想知道如何获取的可以参考博客文章。

2020-04-30

Eclipse离线配置PMD插件

PMD是一种分析Java代码错误的工具。与其他分析工具不同的是,PMD通过静态分析获知代码错误。也就是说,在不运行Java程序的情况下报告错误。PMD附带了许多可以直接使用的规则,利用这些规则可以找出Java源程序的许多问题,例如没有用到的变量、多余的变量创建操作、空的catch块,等等。此外,用户还可以自己定义规则,检查Java代码是否符合某些特定的编码规范

2019-04-16

自动生成xsd所需的jar包

执行java -jar trang.jar a.xml a.xsd即可生成需要发的xsd校验文件

2019-01-04

Java代码管理Docker镜像仓库,百分百可用

Java代码管理Docker镜像仓库,项目中使用,百分百可用

2018-11-27

java将数据导入多个excel并压缩,亲测可用

目前项目有一个需求“数据的离线导入导出”,需要将数据分模块导入到不同的excel,然后压缩成数据包下载

2018-07-03

Windows环境下,安装MySQL多实例,并实现Mysql的主从同步

Windows环境下,安装MySQL多实例,并实现Mysql的主从同步

2017-10-18

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

TA关注的人

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