自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Cloud从入门到放弃(五):Eureka服务提供者和消费者

前言Spring Cloud系列文章大多是有联系的,最好是从一开始看起Spring Cloud系列: 点击查看Spring Cloud系列文章创建服务提供方创建了注册中心之后,我们就可以创建提供服务的客户端工程了,然后将其注册到注册中心。如果不知道怎么创建注册中心的,请看Spring Cloud系列。1、首先创建一个Spring Boot项目,添加以下依赖在这里插入代码片...

2020-07-30 21:00:45 281

原创 浏览器下载模板excel是怎么做的,这篇文章告诉你

前言我们在开发一些后台系统时,可能会遇到下载模板excel的功能,用户点击下载模板,即下载一个模板excel到本地,这个功能是怎么实现的呢?下面就告诉你实现先放一个模板excel到static或者templates文件夹下下面就是实现的代码public void downTemplateExcel(HttpServletRequest request, HttpServletResponse response) throws IOException { String fileN

2020-07-28 20:30:33 475

原创 @EnableEurekaServer注解到底做了什么

前言我们在创建eureka注册中心服务端时,会加上一个@EnableEurekaServer注解,那么这个注解做了什么呢?下面,我们就来解析一下@EnableEurekaServer注解到底做了什么@EnableEurekaServer注解首先,我们先看 @EnableEurekaServer的源码@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(EurekaServerMarker

2020-07-27 20:56:40 1905 1

原创 RestTemplate请求结果中文乱码?这篇文章告诉你

前言当我们用String类型来接收RestTemplate请求结果时,我们会发现其中的中文变成了乱码,这是为什么呢?原因如果HTTP请求的结果返回的是字符串,那么RestTemplate就会用StringHttpMessageConverter转换器进行转换处理因为 StringHttpMessageConverter 这个类默认编码不是UTF-8,而是ISO_8859_1,所以导致解析的结果中文乱码源码如下:/** * The default charset used by the co

2020-07-25 22:46:40 2250

原创 Spring Cloud从入门到放弃(四):Eureka的常用配置

前言Spring Cloud系列: 点击查看Spring Cloud系列文章eurka的常用配置eureka.server前缀的配置项#是否允许开启自我保护模式,缺省:true#当Eureka服务器在短时间内丢失过多客户端时,自我保护模式可使服务端不再删除失去连接的客户端eureka.server.enable-self-preservation = false#Peer节点更新间隔,单位:毫秒eureka.server.peer-eureka-nodes-update-interval

2020-07-22 21:41:37 313

原创 Spring Cloud从入门到放弃(三):万字讲解HTTP利器--RestTemplate

目录前言RestTemplateRestTemplate常用方法HttpMessageConverter创建RestTemplate创建多个RestTemplate实例RestTemplate 的负载均衡设置超时时间创建URI对象RestTemplate API使用前言Spring Cloud系列: 点击查看Spring Cloud系列文章RestTemplateRestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方

2020-07-21 20:32:39 464

原创 Spring Cloud从入门到放弃(二):Spring Cloud服务治理,搭建一个注册中心

前言Spring Cloud系列: 点击查看Spring Cloud系列文章Spring Cloud Commons:通用抽象层Spring Cloud将服务发现,负载平衡和断路器之类的模式带到一个通用的抽象层,可以由所有Spring Cloud客户端使用,而与实现无关(例如,使用Eureka或Consul进行的服务的发现和治理) 。由于Spring Cloud为服务治理做了一层抽象接口,所以在Spring Cloud应用中可以支持多种不同的服务治理框架,比如:Netflix Eureka、Con

2020-07-19 19:22:38 225

原创 Spring Cloud从入门到放弃(一):Spring Cloud介绍

Spring Cloud官方介绍Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的一些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。分布式系统的协调产生了样板模式,并且使用Spring Cloud开发人员可以快速站起来实现这些样板的服务和应用程序。它们将在任何分布式环境中都能很好地工作,包括开发人员自己的笔记本电脑,裸机数据中心以及Cloud Foundry等托管平台。百度百科介绍Spring Clo

2020-07-19 18:50:14 298

原创 获取随机数的n种方法,你知道几种

目录前言1、使用Math.random()方法2、Random类3、ThreadLocalRandom4、UUID5、 获取字母和数字的随机数前言在项目中,我们常常会用到随机数,那你知道几种随机数的生成方法呢,在这里,分享一下我知道的随机数生成方法1、使用Math.random()方法Math.random() 产生的随机数是0-1之间的一个double数值,有15位小数,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机Math.random()获取到的随机数如下0.619

2020-07-15 19:39:02 20465

原创 Spring Boot学习(二十七):Spring Boot Actuator让你轻松监控你的Spring Boot应用

Spring Boot ActuatorSpring Boot Actuator可以帮助你监控和管理Spring Boot应用,比如健康检查、审计、统计和HTTP追踪等。所有的这些特性可以通过JMX或者HTTP endpoints来获得。Actuator同时还可以与外部应用监控系统整合,比如 Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic等。这些系统提供了非常好的仪表盘、图标、分析和告警等功能,使得你可以通过统一的接口轻松的监控和管

2020-07-11 17:42:46 1141

原创 生成分布式ID的n种方法,你知道多少种

前言在分布式系统中,经常需要对大量的数据进行唯一标识。普通的数据库自增主键已经不能满足需求,需要一个能够生成全局唯一ID的系统,这个系统需要满足以下需求:全局唯一:不能出现重复ID。高可用:ID生成系统是基础系统,被许多关键系统调用,一旦宕机,会造成严重影响。所以需要保证高可用。在分布式系统中生成唯一ID的方案有很多,常见的方式有以下几种1、采用数据库ID生成策略数据库有一些自己的ID生成策略,如Mysql的自增ID,Oracle的SEQUENCE序列。单独使用一个数据库实例,在这个实例中新

2020-07-09 19:42:43 293

原创 一文让你搞懂Redis 持久化

Redis 持久化Redis 提供了两种不同级别的持久化方式:1、RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储.2、AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大.如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式.你也可以同时开启两种持久化方式, 在这种情况下, 当redis重启的时

2020-07-08 23:00:01 148

原创 延迟插件实现Rabbitmq延迟队列,就是这么简单!

下载延迟插件Rabbitmq插件下载地址:https://www.rabbitmq.com/community-plugins.html选择rabbitmq_delayed_message_exchange(一个向RabbitMQ添加延迟消息(或计划消息)的插件)进行下载现在下载的版本是3.7或者3.8,所以rabbitmq需要3.7以上下面是rabbitmq_delayed_message_exchange的下载地址:ez版本:https://github.com/rabbitmq/rabbit

2020-07-08 19:35:16 2154 1

原创 实现Rabbitmq的延时队列,只需要这几步

延迟队列延迟队列存储的对象是延时消息,所谓”延时消息”是指当消息被发送以后,并不想让消费者立即拿到消息进行消费,而是等待指定时间后,消费者才拿到这个消息进行消费。应用场景比如未付款订单,超过一定时间后,系统自动取消订单并释放占有物品。实现方式使用RabbitMQ实现延迟队列有以下两种方式,本篇文章主要介绍第一种,第二种在下一篇文章介绍1、TTL + DLX2、使用延迟插件TTL + DLXTime To Live(TTL)RabbitMQ可以针对Queue设置x-expires 或者

2020-07-07 19:45:58 402

原创 带你操作RabbitMQ管理界面,用完不想敲命令了

RabbitMQ管理界面介绍connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道。Exchanges:交换机,用来实现消息的路由Queues:队列,即消息队列,消息存放在队列中,等待消费,消费后被移除队列。Overview模块服务节点:Nodes项,显示的是RabbitMQ的服务节点,目前有一个本地节点,可以有多个服务节点(比如集群的时候)。

2020-07-06 19:45:21 15130 5

原创 Rabbitmq消息确认机制,看完再也不怕Rabbitmq消息丢失了

消息发送确认发送消息确认:用来确认生产者 producer 将消息发送到 broker ,broker 上的交换机 exchange 再投递给队列 queue的过程中,消息是否成功投递。消息从 producer 到 rabbitmq broker的exchange 有一个 confirmCallback 确认模式,实现ConfirmCallback接口实现消息发送到交换机的回调消息从 exchange 到 queue 投递失败有一个 returnCallback 退回模式,实现ReturnCallba

2020-07-05 21:21:55 1046

原创 Spring Boot学习(二十六):Spring Boot整合RabbitMQ,开箱即用

前言Spring Boot系列: 点击查看Spring Boot系列文章RabbitMQRabbitMQ是目前非常热门的一款消息中间件,如果对RabbitMQ还不是很熟悉的,可以看我的另一篇文章:RabbitMQ入门。Spring Boot整合RabbitMQ1、在pom.xml中添加相关依赖<!--消息队列相关依赖--><dependency> <groupId>org.springframework.boot</groupId>

2020-07-05 14:25:19 364

原创 看完这篇文章,别再说不会安装RabbitMQ

目录Windows安装RabbitMQCentOS7安装RabbitMQWindows安装RabbitMQ下载并安装erlang由于rabbitmq是基于erlang语言开发的,所以必须先安装erlangErlang官网:https://www.erlang.org/我下载的是23.0版本http://erlang.org/download/otp_win64_23.0.exe下载完成后运行otp_win64_23.0.exe, 安装Erlang(一路next即可,也可以更换一下安装的路径)

2020-07-04 19:30:52 547

原创 一文让你搞懂RabbitMQ基本概念,带你入门RabbitMQ

RabbitMQRabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,Erlang语言在数据交互方面性能优秀,有着和原生Socket一样的延迟,这也是RabbitMQ高性能的原因所在。而集群和故障转移是构建在开放电信平台框架上的。RabbitMQ是目前非常热门的一款消息中间件,在许多场景下都可以使用,作为一名合格的开发者,有必要对RabbitMQ有所了解。RabbitMQ作用消息系统允许软件、应用相互连接和

2020-07-04 16:12:42 692

原创 Redis数据类型和常用命令,看这篇就够了

Redis不是简单的键值存储,它实际上是一个数据结构服务器,支持不同类型的值。这意味着在传统键值存储中,您将字符串键与字符串值相关联,而在Redis中,该值不仅限于简单的字符串,还可以容纳更复杂的数据结构。Redis键Redis键是二进制安全的,这意味着您可以使用任何二进制序列作为键,从“ foo”之类的字符串到JPEG文件的内容。空字符串也是有效的键。redis中,用:表示分层结构,如 object-type:idRedis 数据类型Redis Strings这是最简单Redis类型。如

2020-07-03 20:33:48 155

原创 一文让你搞懂高大上的MQ消息队列

什么是消息队列(MQ)我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。说白了,MQ就是一个消息中间件,它在消息发送上游和消息接收下游之间,使用了MQ之后,消息的上下游之间就实现了解耦,上游消息的发送处理是通过MQ来实现的,而不是下游其他服务。MQ的大体工作流程MQ把要传输的数据(消息)放在队列中,用队列机制来实现消息传递——生产者产生消息并把消息放入队

2020-07-02 19:42:53 391

原创 一文让你搞懂Redis哨兵模式

Redis Sentinel (哨兵模式)Redis Sentinel 是redis为高可用提供的一种实现方式Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:1、监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。2、提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。3、自动故障迁

2020-07-01 19:41:40 1366

空空如也

空空如也

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

TA关注的人

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