自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常用工具合集

WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null。WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null。WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null。WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null。WriteMapNullValue——–是否输出值为null的字段,默认为false。

2023-06-25 11:43:47 195

原创 解决 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path buildin

PS:后来对windows和mac下java访问https也做了测试,发现mac上的jdk缺省不带startssl ca证书所以能访问通过,而加上startssl ca证书后同android一样访问不通过。JAVA的证书库里已经带了startssl ca证书,而nginx默认不带startssl ca证书,这样JAVA端访问nginx为容器的https url校验就会失败,jetty默认带startssl ca证书,所以正常。最后一行就是jdk的安装路径。

2023-05-17 11:43:32 10668 3

原创 Java日期时间工具类

1、Date与字符串互转

2021-07-14 09:58:42 563

原创 Nacos-配置中心

概览Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。(官方文档:https://nacos.io/zh-cn/docs/what-is-nacos.html)...

2020-12-28 18:31:39 232

原创 Java8中list集合的常用方法

1、检查list集合中是否存在某个值boolean b = list.stream().filter(m -> m.getBuName().equals("张三")).findAny().isPresent();

2020-12-24 15:06:21 16372 3

原创 idea在左下角services窗口显示多个服务

显示多个服务如下:打开项目地址中 .idea 文件夹下的workspace.xml文件:找到<component name=“RunDashboard”>组件并添加如下信息:如果没有RunDashboard组件,直接添加整段下面代码 <component name="RunDashboard"> <option name="configurationTypes"> <set> <option valu

2020-11-23 09:43:29 3179

原创 Git从master拉取新分支、合并分支

从master拉取新分支git checkout master   #切换到master分支git pull           #更新到最新代码git checkout -b dev  #创建新分支并切换到该分支git push origin dev   #推送新分支到远程仓库git branch --

2020-11-20 10:17:02 6632

原创 AES与RSA加密的个人理解

一、AES 加密对称加密方式,加解密用同一秘钥,速度快,效率高,秘钥交换问题1. AES密钥支持三种密钥长度:128位、192位、256位,大家经常说的AES128、AES256就是指不同的密钥长度。不同的密钥长度意味着AES加密的轮数不同,1287位加密10轮,192位加密12轮,256位加密14轮,从安全性角度来讲,256位安全性最高,但是128位因为加密轮数少,所以性能更好一些。...

2020-03-19 20:21:14 2138 2

原创 Linux环境下安装RabbitMQ

系统环境操作系统:CentOS 7.6erlang:OTP 21rabbitMQ:rabbitmq-server 3.6.6安装预环境由于安装需要其他一些依赖,直接给出命令,避免报错麻烦yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel一、下载并安装erlangRabbit MQ ...

2020-03-06 15:16:53 230

原创 JVM

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可...

2019-12-05 18:02:22 121

原创 VUE框架搭建

一、node下载安装1、下载地址:https://nodejs.org/en/download/2、傻瓜式安装(我的安装地址是:D:\develop\nodejs)3、校验版本:命令行输入 node -v二、vue 配置1、...

2019-12-04 15:07:18 369

原创 Eureka Server集群数据同步

一、数据同步Eureka Server之间会互相进行注册,构建Eureka Server集群,不同Eureka Server之间会进行服务同步,用来保证服务信息的一致性。当服务提供者发送注册请求到一个服务注册中心时, 它会将该请求转发给集群中相连的其他注册中心, 从而实现注册中心之间的服务同步。通过服务同步,两个服务提供者的服务信息就可以通过这两台服务注册中心中的任意一台获取到。二、源码解析...

2019-11-21 16:30:05 3252

原创 Spring Cloud面试题

1、为什么要使用微服务?

2019-11-20 20:42:39 252

原创 RabbitMQ面试题

1、使用 RabbitMQ 有什么好处?解耦:系统 A 在代码中直接调用系统 B 和系统 C 的代码,如果将来还有 D 系统接入,系统 A 还要修改代码,过于麻烦;异步:将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度;削峰:并发量大的时候,所有的请求直接怼到数据库,会造成数据库连接异常。2、RabbitMQ 有哪些重要的组件?Server(broker):服务端...

2019-11-20 15:55:34 537

原创 Spring Boot 面试题

1、什么是 Spring Boot?SpringBoot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。约定大于配置。2、为什么要用 Spring Boot?独立运行:内置 Tomcat、Jetty 等 servlet 容器,不需要达成 war 包,可以直接 jar ...

2019-11-19 17:55:01 148

原创 Spring Boot快速入门

一、入门Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。约定大于配置。优点:可以创建独立的 Spring 应用程序,并且基于其 Maven 或 Gradle 插件,可以创建可执行的 JARs 和 WARs;内嵌 Tomcat 或 Jetty 等 Servlet...

2019-11-19 12:22:25 205

原创 线程通信

线程通信:生产者和消费者,生成者需等队列有空间才能放入数据,队列满时生产者交出使用权,消费者开始消费,队列有空间了生产者继续放入。1、wait/notify机制public class ThreadTest { public static Object objcet = new Object(); public static void main(String[] a...

2019-11-18 18:30:17 125

原创 线程常见问题

1、死锁概念:由于两个或多个线程互相持有对方需要的资源,导致这些线程处于等待状态,无法继续执行。死锁原因:当前线程拥有其他线程需要的资源、当前线程等待其他线程已拥有的资源、都不放弃自己拥有的资源。如何避免死锁:固定加锁顺序:很有效,但是需要事先知道所有可能会用到的锁,但总有时候是无法预知的。加锁时限:尝试获取锁时加一个超时时间,超时后该线程就放弃对该锁的请求,回退并释放所有已获得的锁,...

2019-11-18 18:25:28 531

原创 如何实现一个线程安全的数据结构

1、饿汉模式public class Singletan { private static Singletan instance = new Singletan(); public Singletan(){} public static Singletan getInstance() { return instance; }...

2019-11-18 17:35:27 861

原创 Spring线程池ThreadPoolTaskExecutor

一、为什么使用线程池减少在创建和销毁线程上所花的时间以及系统资源的开销如果不使用线程池,有可能造成系统创建大量线程(线程池有最大线程限制)而导致消耗完系统内存。好处:降低资源消耗、提高响应速度、提高线程的可管理性、提高程序的高可用二、线程池工作流程首先,判断核心线程数 corePoolSize 是否已满,没满,直接创建新的线程执行此任务。满了,进入下个流程。其次,核心线程满后,会...

2019-11-18 16:58:53 748

原创 线程简介

线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。一、线程的状态新建:刚生成线程对象,还没有调用该线程的 start 方法就绪:调用了 start 方法,此时线程调度员还没有把该线程设置为当前线程。从等待或睡眠中回来后,也会处于就绪状态...

2019-11-18 15:11:31 700

原创 HashMap实现原理及源码分析

一、Map家族

2019-11-13 12:18:13 100

原创 Linux安装配置Jenkins

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。在Jenkins(一个网站界面)中通过获取代码仓库中的最新代码,进行自动化部署,而省去手动打包、上传服务器、部署这一系列步骤,非常方便。一、准备工作1、安装Gityum install git生成秘钥ssh-keygen -t rs...

2019-11-06 21:36:00 513

原创 Linux安装maven

1. 下载安装包下载地址:http://maven.apache.org/download.cgi2. 上传并解压上传至服务器:/usr/local/apache-maven-3.6.2-bin.tar.gz解压:tar -zxvf apache-maven-3.6.2-bin.tar.gz3. 配置环境变量编辑:vim /etc/profile在末尾追加以下代码:#set ma...

2019-11-06 20:44:21 302

原创 SpringCloud教程第八篇:BUS

Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来,它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。本文要讲述的是用Spring Cloud Bus实现通知微服务架构的配置文件的更改。一、准备工作本文还是基于上一篇文章来实现。按照官方文档,我们只需要在配置文件中配置 spring-cloud-starter-bus-amqp ;这就是说我们需要装rabbi...

2019-11-05 18:13:55 181

原创 springboot集成kafka

一、kafka 简介1. 概述Kafka是最初由Linkedin公司开发,是一个分布式的、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。主要应用场景是:日志收集系统和消息系统。Kafka主要设计目标如下:...

2019-11-05 12:08:39 341 1

原创 Windows环境下安装RabbitMQ

一、下载并安装erlangRabbit MQ 是建立在强大的Erlang OTP平台上,因此安装Rabbit MQ的前提是安装Erlang。(在官网自行选择版本)1. 下载地址:http://www.erlang.org/downloads2. 安装打开otp_win64_22.1.exe,傻瓜式安装,一直下一步完成3. 配置环境变量将%ERLANG_HOME%\bin加入到pat...

2019-10-31 19:01:21 219

原创 Git使用

Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。一、安装Git Bash下载地址:https://git-scm.com/downloads,傻瓜式安装,一直下一步。二、Git SSH Key 生成步骤1. 设置Git的user name和email:git config --global user.name "wang...

2019-10-31 16:26:30 145

原创 Nginx配置文件

nginx配置文件解析user root;worker_processes 8;worker_cpu_affinity auto;#worker_cpu_affinity 0000000000000001 000000000000010; #手动进行CPU亲和设置error_log /data/logs/nginx_logs/error.log warn;pid ...

2019-10-30 15:00:17 161

原创 Nginx

一、nginx简介nginx(发音同engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。nginx的特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。二、nginx优点高并发连接:官方测试...

2019-10-29 20:11:51 193

原创 Centos7+Tomcat8配置javaweb环境,tomcat启动巨慢的问题

./startup.sh之后,就访问我的主页xxx.xxx.xxx.xxx:8080,我就看到那个网页那个小圈一直再转啊,再转啊,快的能转五六分钟,慢的能转十几分钟都不能打开。原因:在apache-tomcat官方文档:如何让tomcat启动更快里面提到了一些启动时的优化项,其中一项是关于随机数生成时,采用的“熵源”(entropy source)的策略。他提到tomcat7的session...

2019-10-29 17:25:00 112

原创 Linux安装Erlang

Erlang一种通用的面向并发的编程语言。1. 安装Erlang编译依赖:yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget2. 下载Erlang:wget http://www.erlang.org/download/otp_src_22.1.tar.gz或者点击此下载链接下...

2019-10-29 10:54:08 390

原创 SpringCloud教程第七篇:高可用的分布式配置中心

上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用。一、准备工作继续使用刚开始的eureka-server工程。二、改造config-server1. 在pom.xml文件加上EurekaClient的起步依赖,如下:<dependency&g...

2019-10-28 16:31:51 113

原创 springboot启动不成功,报错Disconnected from the target VM, address: '127.0.0.1:52807', transport: 'socket'

控制台报错如下:这是因为pom.xml缺少web包,如下:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>我们看...

2019-10-28 15:22:02 2444 1

原创 SpringCloud教程第六篇:Config

一、config 简介在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是confi...

2019-10-28 15:08:40 115

原创 SpringCloud教程第五篇:Zuul

在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统。在Spring Cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(Zuul、Ngnix),再到达服务网关(zuul集群),然后再到具体的服务。服务统一注册到高可用的服务注册中心集群,服务的所有的配...

2019-10-25 18:27:34 112

原创 SpringCloud教程第四篇:Hystrix

在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫...

2019-10-24 21:51:43 118

原创 SpringCloud教程第三篇:Feign

一、feign简介Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。简而言之:Feign 采用的是基于接口的注解Feign 整合了rib...

2019-10-24 17:41:48 165

原创 SpringCloud教程第二篇:Ribbon

一、ribbon简介Ribbon is a client side load balancer which gives you a lot of control over the behaviour of HTTP and TCP clients. Feign already uses Ribbon, so if you are using @FeignClient then this sec...

2019-10-24 15:52:45 173

原创 SpringCloud教程第一篇:Eureka

SpringCloud教程第一篇:Eureka一、spring cloud简介spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解,如...

2019-10-24 14:42:38 139

空空如也

空空如也

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

TA关注的人

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