自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 quartz超期恢复线程踩坑

quartz恢复线程

2022-09-07 15:20:27 439 2

原创 NacosServiceRegistry实现

在NacosServiceRegistry.registry方法中,调用了nacos client sdk中的namingService.registerInstance完成服务注册public void register(Registration registration) { if (StringUtils.isEmpty(registration.getServiceId())) { log.warn("No service to register for n

2020-12-30 10:00:04 1787

原创 springcloud继承nacos注册实现

springcloudcommon包中有一个类org.springframework.cloud.client.serviceregistry.ServiceRegistry他是spingcloud提供的服务注册标准,继承到springcloud中实现服务注册的组件,都会实现该接口public interface ServiceRegistry<R extends Registration> { void register(R registration); void dere

2020-12-29 15:00:56 692

原创 Java SPI 扩展点

SPI 全称Service Provider Interface协议约定:扩展点必须放在resources/META-INF/services目录下创建一个maven工程,定义一个接口,实现由第三方提供public interface ITest{String getName();}创建另一个maven工程依赖前一个工程创建接口实现public class MyTestName implements ITest{public String getName(){return "My

2020-12-23 11:02:49 762

原创 springboot Starter

starter组件主要三个功能涉及相关组件的jar包依赖自动实现Bean的装配自动声明并加载配置文件中的属性配置Starter的命名规范官方命名格式: spring-boot-starter-模块名称自定义命名格式:模块名称-spring-boot-starterdemo1.配置依赖2.配置类@ConfigurationProperties("my.redisson")public class RedissonProperties { private String host;

2020-12-22 17:02:25 107 1

原创 @Conditional 条件装配

@Conditional 条件装配@Conditional是spring Framework提供的一个核心注解, 作用是提供一个自动装配的条件约束,一般与@configuation 和@Bean配合使用代码:Conditional代码改注解可以接收一个Condition数组@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface C

2020-12-22 15:34:33 159

原创 springboot自动装配

自动装配是通过@EnableAutoConfiguration注解开启的,这个注解在启动类注解@SpringBootApplication内@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@AutoConfigurationPackage@Import({AutoConfigurationImportSelector.class})public @interface Enabl

2020-12-17 17:37:03 81

原创 spring扫描包获取注解类

查找某注解修饰的所有类使用 ClassPathScanningCandidateComponentProvider 进行扫描。查找某注解修饰的方法,先找到那个类,然后得到所有的方法,使用AnnotatedElementUtils.hasAnnotation判断方法是否被某注解修饰即可下面是一个简单的例子ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvide

2020-11-09 09:39:10 619

转载 转载 Elasticsearch-7.5.0应用搭建实战

转载 http://www.spring4all.com/article/176388Docker部署Elasticsearch的“那些事儿"1.基础先决条件阿里云或者虚拟机VM主机一个,并且自行装有Docker容器:BWUuHU.pngps[⚠️注意事项]:对于Docker安装请参考:Linux环境基于CentOS7 搭建部署Docker容器2.最大文件打开数[2.1]参数优化:ulimit -a |grep open[root@centos-meteor ~]# ulimit -a

2020-11-06 09:30:42 266 1

原创 nfs文件共享

nfs 是什么FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源centos安装 NFS 服务服务端$ yum install -y nfs-utils rpcbind客户端$ yum install -y nfs-utils启动我们先启动 RPC 服务$ service rpcbind start或者使用如下命令亦可$ /bin/systemctl start rpcbind.service查看 NFS 服务项 rpc 服务器注册的端口列表

2020-09-14 14:57:49 134

转载 docker 常用

转载 http://www.spring4all.com/article/1760221.docker是什么?docker是一个提供应用打包,部署与运行应用的容器化平台。应用程序 -> docker引擎-> 物理硬件应用程序不再直接面向底层资源,而是面向中间层docker引擎来操作。docker引擎包含:docker服务端, rest api ,docker客户端。通过这种结构,用户可以通过客户端很方便的管理多个服务端。2.容器与镜像镜像:镜像是只读文件,提供运行程序完整的软硬件

2020-09-07 14:11:49 286

原创 zabbix替换库

zabbix使用其官方仓库安装不上的问题One of the configured repositories failed (Zabbix Official Repository - x86_64), and yum doesn’t have enough cached data to continue. At this point the onlycd /etc/yum.repos.d[root@master ~]# vim zabbix.repo[zabbix]name=Zabbix Off

2020-09-03 17:56:56 244

原创 CentOS Docker

yum安装1)移除旧版本sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine2)安装依赖yum install -y yum-utils device-mapper-persistent-data lvm23) 添加软件源yum-config-manager

2020-09-03 15:21:23 112

原创 dockerHub私库清理

1 下载cliwget https://s3.eu-west-2.amazonaws.com/nexus-cli/1.0.0-beta/linux/nexus-clichmod +x nexus-cli常用指令nexus-cli image delete -name 镜像名称 -tag 版本号#删除指定镜像指定版本nexus-cli image tags -name 镜像名称#查看指定镜像的所有tagnexus-cli image delete -name 镜像名称 -keep 数量#保留

2020-08-11 09:36:47 508

转载 升级ingress-nginx-controller的nginx版本

转载 https://blog.csdn.net/weixin_39961559/article/details/87935873线上的k8s使用nginx所在的边缘节点来将外部访问导流到集群内部容器,ingress-nginx-controller是k8s众多ingress controller实现中的一种,以agent+nginx的方式提供服务。agent通过watch k8s的ingress、configmap、endpoint等资源的变化,修改nginx的配置文件,并负责nginx的reload等

2020-07-30 10:57:33 1507

原创 spring注解 JsonInclude==

@JsonInclude(Include.NON_NULL)实体类与json互转的时候 属性值为null的不参与序列化NoArgsConstructor注解在类上,为类提供一个无参的构造方法。@AllArgsConstructor注解在类上,为类提供一个全参的构造方法。默认生成的方法是 public 的,如果要修改方法修饰符可以设置 AccessLevel 的值。例如:@Getter(access = AccessLevel.PROTECTED)@RequiredArgsConstructo

2020-07-30 10:54:38 313

原创 spring注解 --@Primary

当一个接口有2个不同实现时,使用@Autowired注解时会报org.springframework.beans.factory.NoUniqueBeanDefinitionException异常信息2.方案1-@Qualifier使用Qualifier注解,选择一个对象的名称,通常比较常用先声明后使用,相当于多个实现起多个不同的名字,注入时候告诉我你要注入哪个方案2-@PrimaryPrimary可以理解为默认优先选择,同时不可以同时设置多个,内部实质是设置BeanDefinition的pr

2020-07-29 14:47:18 254

原创 spring注解--@Data

@Data 使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法;引入lombok要使用 @Data 注解要先引入lombok,是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率。在maven中添加依赖org.projectlomboklombok1.18.10常用的几个注解:@Data : 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法@AllArgsConstructor : 注在

2020-07-29 14:02:45 658

转载 spring部分注解-- @Import

转载 https://www.cnblogs.com/yichunguo/p/12122598.htmlspring注解之@Import注解的三种使用方式@目录1、@Import注解须知2、@Import的三种用法2.1、第一种用法:直接填class数组2.2、第二种用法:ImportSelector方式【重点】2.3、第三种用法:ImportBeanDefinitionRegistrar方式3、@Import注解的三种使用方式总结1、@Import注解须知1、@Import只能用在类

2020-07-29 11:30:14 168

原创 springboot Conditional相关注解

@ConditionalOnBean // 当给定的在bean存在时,则实例化当前Bean@ConditionalOnMissingBean // 当给定的在bean不存在时,则实例化当前Bean@ConditionalOnClass // 当给定的类名在类路径上存在,则实例化当前Bean@ConditionalOnMissingClass // 当给定的类名在类路径上不存在,则实例化当前Bean@conditionalonproperty具体代码如下@Confi

2020-07-14 10:24:22 122

转载 spring接收json格式的多个对象参数

转载 https://blog.csdn.net/qq_24084925/article/details/54175424@Controllerpublic class TestController{@RequestMapping("\test")@ResponseBodypublic RetureResult test(@RequestBody Param param){return new ReturnResult();}}class Param{public User user;

2020-07-13 16:07:41 267

转载 为什么微服务需要API网关?

转载 https://blog.csdn.net/qq_24084925/article/details/59094597API网关是什么?API网关可以提供一个单独且统一的API入口用于访问内部一个或多个API。它们典型的会提供访问频率限制层和安全层。但诸如Tyk.io这样的API管理层会提供分析,计费和生命周期管理功能。一个微服务架构可以包含数十到数百个服务。API网关可以为外部用户提供一个统一的入口,这个入口独立于内部微服务组件。微服务API网关的优势阻止将内部的敏感信息暴露给外部的客户端

2020-07-13 14:50:26 266

原创 Java8 LocalDate

Java 8 的所有日期和时间API都是不可变类并且线程安全,而现有的Date和Calendar API中的java.util.Date和SimpleDateFormat是非线程安全的。javax.time.ZoneId 获取时区。LocalDate和LocalTime类获取时间 //获取当天的日期及年月日 public static void getCurrentDate(){ LocalDate today = LocalDate.now(); System.

2020-06-22 10:48:48 143

原创 Mybatis Generator代码生成

开发工具sts1. 插件安装 (需要连接外网)Help–Eclipser Marketplace中查找:Mybatis Generator 1.3.6安装2. 安装完成重启sts3. 导入工程mybatisUtil(也可以随意maven工程配置,配置文件)4. 修改generatorConfig.xml配置自己想要生成的实体和mapper5. 配置说明<?xml version="1.0" encoding="UTF-8"?>

2020-06-10 16:06:18 100

转载 Linux下的SVN服务器搭建

原创出自:https://www.cnblogs.com/mymelon/p/5483215.htmlLinux下的SVN服务器搭建鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结/开始***/系统环境:Centos 7第一步:通过yum命令安装svnserve,命令如下:yum -y install subversion此命令会全自动安装svn服务器相关服务和依赖,安装完

2020-06-10 15:42:56 135

原创 批量上传maven jar

1.先将本地maven/repository仓库打一个完整的zip压缩包2.上传到linux目录,如:/opt3.解压repository.zip4.进入repository目录5.创建touch mavenimport.sh脚本,写入以下内容;#!/bin/bash# copy and run this script to the root of the repository directory containing files# this script attempts to exclud

2020-06-10 15:38:27 670

原创 docker zookeeper kafka

docker安装不在这里叙述,镜像不是本人制作,用的现成的,没有在集群下实验,适合单机快速启动安装zookeeperdocker run -d --name zookeeper --net=host -t wurstmeister/zookeeper安装kafka 需要改配置文件还有变量IPdocker run --name kafka -d -e KAFKA_ADVERTISED_HOST_NAME=“10.4.59.119” -e HOST_IP=IP -e KAFKA_ZOOKEEPER_C

2020-06-10 15:30:01 151 1

原创 springboot2 输出Prometheus

环境要求因为 Prometheus 和 Grafana 都由 Go 编写,所以对环境基本没有要求,本文用的是 Centos 7。但要保证所有服务器时间同步。安装 Prometheus下载地址: https://prometheus.io/download/cd /apptar xvf prometheus‐2.6.0.linux‐amd64.tar.gzmv prometheus‐2.6.0.linux‐amd64 prometheusrm prometheus‐2.6.0.linux‐am

2020-06-10 15:13:47 315

原创 微服务输出到ELK

Es下载1.二进制包wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz2.镜像docker pull docker.elastic.co/elasticsearch/elasticsearch:7.7.0docker run -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” docker.elastic.co/el

2020-06-10 14:18:32 277

原创 C3P0 APPARENT DEADLOCK!!!

服务运行一段时间后,突然就不可能一直超时,查看日志发现有大量的数据库线程池死锁APPARENT DEADLOCK报错的主要类是ThreadPoolAsynchronousRunner 这个类是C3P0包下的在 C3P0PooledConnectionPoolManager 类在初始化时中创建了一个taskRunner,其类型为 ThreadPoolAsynchronousRunner , 是一个 C3P0 自定义实现的线程池int matt = this.getMaxAdministrativeTa

2020-06-10 10:44:40 617

原创 Java CopyOnWriteArrayList

CopyOnWriteArrayList这是一个ArrayList的线程安全的变体其原理大概可以通俗的理解为:初始化的时候只有一个容器,很常一段时间,这个容器数据、数量等没有发生变化的时候,大家(多个线程),都是读取(假设这段时间里只发生读取的操作)同一个容器中的数据,所以这样大家读到的数据都是唯一、一致、安全的,但是后来有人往里面增加了一个数据,这个时候CopyOnWriteArrayList 底层实现添加的原理是先copy出一个容器(可以简称副本),再往新的容器里添加这个新的数据,最后把新的容

2020-06-10 10:28:53 113

原创 Java LinkedBlockingQueue

描述继承了AbstractQueue类,实现了BlockingQueue和Serializable接口构造/** * Creates a {@code LinkedBlockingQueue} with a capacity of * {@link Integer#MAX_VALUE}. */// 如果没传capacity 则默认使用Integer.MAX_VALUE作为队列大小public LinkedBlockingQueue() { this(Integer.MAX_VALUE

2020-06-10 10:20:26 177

原创 Java Stream

java8新的流StreamStream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码于流的处理,主要有三种关键性操作:分别是流的创建、中间操作(intermediate operation)以及最终操作(terminal operation)Stream的创建1、 通过已有的集合来创建流List<String> strings =

2020-06-10 10:03:58 84

原创 Java Volatile关键字

作用用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最的值Volatile原理当对非 volatile 变量进行读写的时候,每个线程先从内存拷贝变量到CPU缓存中。如果计算机有多个CPU,每个线程可能在不同的CPU上被处理,这意味着每个线程可以拷贝到不同的 CPU cache 中。  而声明变量是 volatile 的,JVM 保证了每次读变量都从内存中读,跳过 CPU cache 这一步在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此vo

2020-06-10 09:44:06 121

空空如也

空空如也

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

TA关注的人

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