自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 资源 (3)
  • 收藏
  • 关注

原创 IDEA远程调试,服务器debug

编写测试debug项目获取指定debug参数启动被debug的程序获取指定debug参数后,用其启动jar包java -Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -jar debug-0.0.1-SNAPSHOT.jar切换到远程调试模式启动本地debug代码注意:必须保证你debug的那个类代码一致在这里,我们已经给HelloController打了debug断点

2021-10-18 22:49:14 317

原创 JVM入门学习

参考了以下文章,并进行了一些修改https://nyimac.gitee.io/2020/07/03/JVM%E5%AD%A6%E4%B9%A0/一、什么是JVM定义Java Virtual Machine,JAVA程序的运行环境(JAVA二进制字节码的运行环境)好处一次编写,到处运行自动内存管理,垃圾回收机制数组下标越界检查比较JVM JRE JDK的区别二、内存结构整体架构1、程序计数器作用用于保存JVM中下一条所要执行的指令的地址特点线程私有CPU会为

2021-08-22 13:42:26 326

原创 基于quartz实现自定义时间的定时调度

基于quartz实现自定义时间的定时调度关于定时调度,大部分是使用类似定时调度平台xxlJob或者spring的定时调度注解是实现的。其中xxlJob的控制基于web管理页面,需要手工配置。spring的调度注解@Scheduled需要配置值,无法运行时更改。所以他们都无法在运行时通过代码或者其他自定义的方式实现动态调度。基于开源的一些代码,我整理了一个基于quartz实现自定义时间的定时调度的方法,功能不是很完善pom依赖 <dependencies> &lt

2021-08-17 15:00:24 1023

原创 支持不安全证书的https访问

@Slf4j@Componentpublic class HttpsFacility { //支持不安全证书的https访问 public String httpsPost(String url ,String json) throws KeyManagementException, NoSuchAlgorithmException, IOException { SSLContext sc = createSslContext(); HttpsUR

2021-07-28 13:58:23 282

转载 聚集索引与非聚集索引的总结

一.索引简介众所周知,索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引。这篇文章会总结SQL Server以及MySQL的InnoDB和MyISAM两种SQL的索引。SQL Sever索引类型有:唯一索引,主键索引,聚集索引,非聚集索引。MySQL 索引类型有:唯一索引,主键(聚集)索引,非聚集索引,全文索引。二.聚集索引聚集(clustered)索引,也叫聚簇索引。定义:数据行的

2021-07-27 16:50:22 131

原创 接口安全问题

跨站请求伪造问题目前:我们使用请求头的token(口令)去代表一个用户,每次请求服务器都会携带token去标识用户接口路径+请求头的token+请求体 ,这三个要素构成了一个基本的请求报文场景:1、A用抓包工具,通过分析请求和响应,大致猜到我们的接口格式。2、A在门店附近代理了一个wifi热点,扩大抓包范围,获取到了许多用户的合法token3、A从步骤2中,获取到了合法token后,开始伪装成正常用户并用自己的服务器进行下单请求,导致门店无法正常服务

2021-06-26 11:42:23 144

原创 JUC编程入门

前言:在Java中,线程部分是一个重点,本篇文章说的JUC也是关于线程的。JUC就是java.util .concurrent工具包的简称。这是一个处理线程的工具包,JDK 1.5开始出现的。下面一起来看看它怎么使用。一、volatile关键字与内存可见性1、内存可见性:先来看看下面的一段代码:public class TestVolatile { public static void main(String[] args){ //这个线程是用来读取flag的值的 Thre

2021-06-05 14:43:29 215

原创 kafka入门

Kafka 概 述定义Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。消息队列MQ传统应用场景之异步处理使用消息队列的好处解耦允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。可恢复性系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。缓冲有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的

2021-05-22 21:22:31 266 2

原创 Spring事务管理A方法内部调用B方法的回滚问题(springboot事务管理)

springboot事务管理写在前面之前遇到一些自以为是的面试官问了一大推关于A方法内部调用B方法的事务问题,换着法的问,AB方法分别设置不同的事务传播属性时,如果AB方法中某个方法出错了,AB方法数据会怎样回滚的问题?首先这种问题很不负责任,前提条件不是很清晰,问题没说清楚,容易成了绕口令游戏:1、A和B方法有没有对异常进行try catch ?2、AB方法可设置的事务传播属性组合那么多,怎么能口头上给你一一列举?3、报错的位置是把数据库操作方法之前还是之后?4、AB方法是否是来自同一个类

2021-05-18 15:01:42 9035 5

原创 redis主从模式与哨兵模式搭建

安装redishttps://redis.io/downloadcd /optwget http://download.redis.io/releases/redis-6.2.3.tar.gzyum install gcc-c++tar xzf redis-6.2.3.tar.gzmv /opt/redis-6.2.3 /usr/local/rediscd /usr/local/redismakemake PREFIX=/usr/local/redis install主从

2021-05-09 15:58:48 177

原创 docker安装nexus3

启动命令docker run -d -p 8081:8081 --name nexus3 --restart=always -v /opt/nexus-data:/var/nexus-data sonatype/nexus3启动之后可以进入容器里面查看nexus启动日志,没有报错的话稍等一分钟左右,通过:http://IP:8081 可以访问nexus管理界面。初始的登录用户名为:admin,初始密码:进入容器后cat/opt/nexus-data/admin.password 查看...

2021-02-21 11:59:53 1004

原创 Rancher高可用搭建

初始化系统每台机器都要操作# 关闭防火墙systemctl stop firewalld.servicesystemctl disable firewalldfirewall-cmd --reload# 关闭selinuxsetenforce 0 # 临时sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久# 关闭swapswapoff -a # 临时sed -ri 's/.*swap.*/#&/' /etc

2021-02-19 17:17:57 960

原创 Jenkins 实现Pipeline生产审批

如果你想实现以下内容,请看此文:1、代码一提交,就自动发布测试环境 ---jenkins触发器实现2、可以指定版本号、分支名,拉取代码 ---git命令实现3、部署生产之前,发一份邮件给老板,请他审核同意发布 --jenkins的邮件功能实现4、不依赖harbor,加快镜像的io传输速度 ---scp和ssh命令实现前提部署好你的jenkins下载好以下插件设置构建时输入的参数发布模式参数分支参数代码提交的版本号部署的测试机器列表参数部署的生产机器列表参数审

2020-12-07 17:34:50 5197

原创 Mock.js

Mock.js什么是Mock.jsMock.js (官网 http://mockjs.com/ )是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试。提供了以下模拟功能:根据数据模板生成模拟数据模拟 Ajax 请求,生成并返回模拟数据基于 HTML 模板生成模拟数据Mock.js具有以下特点:前后端分离让前端攻城师独立于后端进行开发。增加单元测试的真实性通过随机数据,模拟各种场景。开发无侵入不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响应

2020-11-14 19:40:58 179

原创 路由vue-router、状态管理Vuex

路由vue-router什么是vue-routervue-router就是vue官方提供的一个路由框架。使用 Vue.js ,我们已经可以通过组合组件来组成应用程序,当你要把 vue-router 添加进来,我们需要做的是,将组件(components)映射到路由(routes),然后告诉 vue-router 在哪里渲染它们。快速入门初始化工程# 全局安装 vue-clinpm install -g vue-cli# 创建一个基于 webpack 模板的新项目vue init webpac

2020-11-14 18:28:07 1057

原创 Node.js、包资源管理器NPM、Webpack、ES6

Node.js什么是Node.js简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。Node.js安装1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/2、选安装目录进行安装点击下一步…下

2020-11-14 12:22:12 241

原创 Vue.js - Day1

Vue.js - Day1课程介绍前5天: 都在学习Vue基本的语法和概念;打包工具 Webpack , Gulp后5天: 以项目驱动教学;什么是Vue.jsVue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于Weex)Vue.js 是前端的主流框架之一,和Angular.js、React.js 一起,并成为前端三大主流框架!Vue.js 是一套构建用户界面的

2020-10-31 18:17:36 199

原创 使用kubeasz一键部署k8s,安装kubesphere,进行devops

使用kubeasz一键部署k8s机器安排安装依赖工具ansible控制端配置免密码登录下载工具脚本easzup下载 k8s 版本安装文件加入阿里云镜像地址机器安排安装依赖工具# 文档中脚本默认均以root用户执行yum update# 安装pythonyum install python -y# CentOS 7yum install git python-pip -ywget https://bootstrap.pypa.io/get-pip.pypython get-pip.py

2020-09-27 21:39:49 1628 1

原创 单节点运用kubesphere3.0实现容器管理

单节点运用kubesphere3.0实现容器管理基础环境准备# 关闭防火墙systemctl stop firewalld.servicesystemctl disable firewalldfirewall-cmd --reload# 关闭selinuxsetenforce 0 # 临时sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久# 关闭swapswapoff -a # 临时sed -ri 's/.*swa

2020-09-22 17:56:13 1016 1

原创 分布式配置中心:spring cloud config

分布式配置中心:spring cloud config前言​ Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持的,它分为服务端与客户端两个部分。其中服务端也成为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口;而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从

2020-09-16 00:49:17 315

原创 API网关服务:Spring Cloud Zuul

API网关服务:Spring Cloud Zuul简介有前几章的介绍,我们对于Spring Cloud Netflix下的核心组件已经了解了一大半。这些组件基本涵盖了微服务架构中最为基础的几个核心设施,利用这些组件我们已经可以构建起一个简单的微服务架构系统,比如,通过使用Spring Cloud Eureka实现高可用的服务注册中心以及实现微服务的注册与发现;通过Spring Cloud Ribbon或Feign实现服务间负载均衡的接口调用;同时,为了使分布式系统更为健壮,对于依赖的服务调用使用Spri

2020-09-16 00:48:21 449

原创 声明式服务调用SpringCloud Feign

声明式服务调用SpringCloud Feign前面使用了Ribbon做客户端负载均衡,使用Hystrix做容错保护,这两者被作为基础工具类框架被广泛地应用在各个微服务的实现中。SpringCloudFeign是将两者做了更高层次的封装以简化开发。它基于Netfix Feign实现,整合了SpringCloudRibbon和SpringCloudHystrix,除了提供这两者的强大功能外,还提供了一种声明是的Web服务客户端定义的方式。SpringCloudFeign在NetFixFeign的基础上扩展了

2020-09-16 00:47:18 131

原创 服务容错保护:Spring Cloud Hystrix

服务容错保护:Spring Cloud Hystrix​ 在微服务架构中,我们将系统拆分为很多个服务,各个服务之间通过注册与订阅的方式相互依赖,由于各个服务都是在各自的进程中运行,就有可能由于网络原因或者服务自身的问题导致调用故障或延迟,随着服务的积压,可能会导致服务崩溃。为了解决这一系列的问题,断路器等一系列服务保护机制出现了。断路器本身是一种开关保护机制,用于在电路上保护线路过载,当线路中有电器发生短路时,断路器能够及时切断故障电路,防止发生过载、发热甚至起火等严重后果。在分布式架构中

2020-09-16 00:45:59 327

原创 客户端负载均衡:Spring Cloud Ribbon

客户端负载均衡:Spring Cloud Ribbon简介Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面对服务的REST模块请求自动转换成客户端负载均衡的服务调用。虽然Ribbon只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是Spring Cloud Ribbon几乎存在于每一个Spring Cloud构建的微服务和基础设施中。

2020-09-16 00:38:57 142

原创 服务治理:Spring cloud eureka

服务治理:Spring cloud eurekaspring cloud eureka是spring cloud netfix微服务套件中的一部分,它基于netfix eureka做了二次封装,主要负责完成服务架构中的服务治理功能。核心内容包括:构建服务注册中心服务注册和服务发现eureka的基础架构eureka的服务治理机制eureka的配置服务治理服务治理可以说是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现。在最初开始构建微服务系统的时候可能服务

2020-09-16 00:36:53 234

原创 微服务构建:Spring Boot

微服务构建:Spring Boot框架简介Spring Boot的出现改善了配置文件繁琐的问题,spring boot的宗旨并非重写spring或者是替代spring,而是希望通过设计大量的自动化配置等方式来简化spring原有的样板化的配置,使得开发可以快速构建应用。spring boot还通过一系列的starter POMS的定义,让我们整合各项功能的时候,不需要在maven 的pom.xml中维护那些错综复杂的依赖关系,而是通过类似模块化的starter模块定义来引用,使得依赖管理工作更为简单。

2020-09-16 00:29:53 196

原创 分别搭建kubernetes、kubesphere并进行devops

约定机器列表角色IP组件k8s-master01192.168.152.171kube-apiserver,kube-controller-manager,kube-scheduler,docker,etcd,kubelet,kube-proxyK8s-node01192.168.152.174kubelet,kube-proxy,docker,etcdK8s-node02192.168.152.175kubelet,kube-proxy,docker,etc

2020-08-25 23:35:18 1856 1

原创 springboot 集成Swagger

Swagger集成本文介绍的Swagger是基于Spring Boot框架的,一起来看具体的实现步骤。2.1 添加依赖配置pom.xml,添加如下代码:<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version></dep

2020-08-12 15:28:49 222

原创 JVM面试题

JVM 内存布局或者堆的默认空间分配新对象内存分配流程Metaspace 元空间在 HotSpot JVM 中,永久代( ≈ 方法区)中用于存放类和方法的元数据以及常量池,比如 Class 和 Method。每当一个类初次被加载的时候,它的元数据都会放到永久代中。永久代是有大小限制的,因此如果加载的类太多,很有可能导致永久代内存溢出,即万恶的 java.lang.OutOfMemoryError: PermGen,为此我们不得不对虚拟机做调优。那么,Java 8 中 PermGen 为

2020-07-24 10:41:34 141

原创 Spring @Transactional事务调用注意事项

建议@Transactional定义在接口@Transactional直接定义在类上,会报错,因为spring 默认是jdk代理实现aop。可以在类上声明代理类型,防止报错:@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS)发生非运行时异常,默认事务不会生效可以修改@Transactional的rollbackFor,使得事务生效:@Transactional(rollbackFor = Exception.class)同一个类里,非事务方

2020-07-23 12:26:02 469

原创 RocketMQ架构讲解与源码分析

1. 高级功能1.1 消息存储分布式队列因为有高可靠性的要求,所以数据要进行持久化存储。消息生成者发送消息MQ收到消息,将消息进行持久化,在存储中新增一条记录返回ACK给生产者MQ push 消息给对应的消费者,然后等待消费者返回ACK如果消息消费者在指定时间内成功返回ack,那么MQ认为消息消费成功,在存储中删除消息,即执行第6步;如果MQ在指定时间内没有收到ACK,则认为消息消费失败,会尝试重新push消息,重复执行4、5、6步骤MQ删除消息1.1.1 存储介质关系型数据库D

2020-07-22 12:47:16 448

原创 RocketMQ部署与入门使用

1. MQ介绍1.1 为什么要用MQ消息队列是一种“先进先出”的数据结构其应用场景主要包含以下3个方面应用解耦系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验。使用消息队列解耦合,系统的耦合性就会提高了。比如物流系统发生故障,需要几分钟才能来修复,在这段时间内,物流系统要处理的数据被缓存到消息队列中,用户的下单操作正常完成。当物流系统回复后,

2020-07-22 12:16:26 615

原创 Sentinel-dashboard、客户端接入使用入门

Sentinel 控制台安装下载sentinel-dashboard.jar包https://github.com/alibaba/Sentinel/releases运行jar包我特意指定了端口是18080,同时不让sentinel-dashboard监控自己nohup java -Dserver.port=18080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.2.jar > log.file 2>

2020-07-21 16:25:40 6770 2

原创 Dubbo使用、Dubbo-Admin安装

搭建zookeeper参考以下链接https://blog.csdn.net/ZHONGZEWEI/article/details/107010354下载官方代码例子https://github.com/apache/dubbo/releases本地IDE 编译源码maven install之前,注意在IDE先指定maven地址和配置文件然后开始编译项目找一个例子试试启动生产者修改生产者代码连接zookeeper可能会超时,我们人为指定timeout为25秒启动Appl

2020-07-20 22:06:35 128

原创 Nacos入门

Nacos的centos单机部署下载安装包https://github.com/alibaba/nacos/releases解压tar -zxvf nacos-server-1.3.1.tar.gz执行nacos-mysql.sql在mysql中执行nacos-mysql.sql文件修改application.propertiesnacos/conf/目录下修改以下配置:### Count of DB:db.num=1### Connect URL of DB:db.url

2020-07-20 18:48:16 144

原创 arthas在线java诊断工具

文档地址

2020-07-20 14:32:45 140

原创 docker compose搭建minio文件服务器

准备环境dockerdocker compose准备minio.yml文件version: '3'services: minio: image: minio/minio:latest container_name: minio ports: - 9000:9000 volumes: - /mydata/minio:/data #文件挂载 environment: MINIO_ACCESS_KEY: root

2020-07-01 00:41:54 410

原创 centos7安装kafka 2.12-2.5.0集群

安装zookeeper集群参见文章:https://blog.csdn.net/ZHONGZEWEI/article/details/106990214上篇文章已经在以下3台虚拟机安装了zookeeperip hostname192.168.152.149 node-1192.168.152.150 node-2192.168.152.151 node-3下载安装包并且上传到node-1下载地址:http://kafka.apache.org/downloads

2020-06-29 00:01:23 655

原创 centos7安装zookeeper 3.4.5集群

准备3台虚拟机(node)192.168.152.149 node-1192.168.152.150 node-2192.168.152.151 node-3修改各个虚拟机主机名-每台虚拟机都要操作vi /etc/sysconfig/networkNETWORKING=yesHOSTNAME=node-1 (每个虚拟机的HOSTNAME不一样,有node-1,node-2,node-3)修改主机名和IP的映射关系-每台虚拟机都要操作vim /etc/hosts192.168.15

2020-06-27 23:49:05 333

原创 docker compose搭建zookeeper3.5.8集群

准备环境dockerdocker compose准备zoo.yml文件version: '3.1'services: zoo1: image: zookeeper:3.5.8 restart: always hostname: zoo1 container_name: zookeeper_1 #domainname: ports: - 2181:2181 volumes: - /usr/local/docker_

2020-06-27 18:34:03 350

服务器远程调试debug代码示例

服务器远程调试debug代码示例

2021-10-18

基于quartz实现自定义时间的定时调度

基于quartz实现自定义时间的定时调度

2021-08-17

Spring事务管理A方法内部调用B方法的回滚问题测试代码

Spring事务管理A方法内部调用B方法的回滚问题测试代码

2021-05-20

空空如也

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

TA关注的人

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