自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)

转载 分布式系统ID生成方法

原文地址:https://www.cnblogs.com/captainad/p/10954331.html前言一般单机或者单数据库的项目可能规模比较小,适应的场景也比较有限,平台的访问量和业务量都较小,业务ID的生成方式比较原始但是够用,它并没有给这样的系统带来问题和瓶颈,所以这种情况下我们并没有对此给予太多的关注。但是对于大厂的那种大规模复杂业务、分布式高并发的应用场景,显然这种ID的生成方式不会像小项目一样仅仅依靠简单的数据自增序列来完成,而且在分布式环境下这种方式已经无法满足业务的需求,不仅.

2020-09-23 11:30:27 15

原创 RabbitMQ的基本组成及概念

RabbitMQ的架构如图:Producer:生产者,投递消息。Consumer:消费者,接收消息。Broker:RabbitMQ集群中的一个服务节点或RabbitMQ服务实例。Queue:队列。RabbitMQ的内部对象,用于存储消息。RabbitMQ中消息只能存储在队列中,而kafka是将消息存储在topic中的partition中。Exchange:交换器。生产者将消息发送到Exchange,由交换器将消息路由到一个或多个队列中,如果路由不到,可能会返回给生产者,也可能直接丢弃。

2020-09-22 13:49:36 15

转载 Zookeeper到底是干什么的?

原文地址:https://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3113923.htmlZookeeper是hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用越来越多。今天我想谈谈zookeeper,本文不谈如何使用zookeeper,而是zookeeper到底有哪些实际的运用,哪些类型的应用能发挥zookeeper的优势,最后谈谈zookeeper对分布式网站架构能产生怎样的作.

2020-09-21 18:37:06 48

原创 Kafka的基本组成及概念

Broker:一台Kafka服务器就是一个Broker,一个集群由多个Broker组成,一个Broker可以容纳多个Topic,Broker和Broker之间得地位是基本平等的。Topic:每条发送到Kafka集群的消息都属于某个主题,这个主题就称为Topic。物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存在一个或多个Broker上,但是用户只需指定消息的主题Topic即可生产或者消费数据而不需要关心数据存放在何处。Partition:为了实现可扩展性,一个Topic可以被

2020-09-21 15:33:37 23

原创 SpringBoot整合kafka

前言安装kafka,版本为2.6.0安装zookeeper,版本为3.6.2启动kafka启动zookeeperSpringBoot版本2.3.1.RELEASE核心目录结构KafkaConsumer.java 消费者KafkaProducerController 生产者application.yaml 主配置文件application-kafka.properties kafka配置文件代码pom依赖<dependency> <gr

2020-09-19 18:12:40 36

原创 Docker数据持久化

容器中数据持久化主要有两种方式:数据卷数据卷容器数据卷数据卷是一个可供一个或多个容器使用的特殊目录数据卷可以在容器之间共享和重用读数据卷的修改会立马生效对数据卷的更新,不会影响镜像数据卷默认会一直存在,即使容器被删除一个容器可以挂载多个数据卷挂载宿主机目录作为数据卷-v 参数docker run -v /host-dir:/container-dir ${image}这样可以将宿主机的/host-dir路径加载到容器的/container-dir中。这样在容器中产生的数

2020-09-17 17:29:25 23

原创 Dockerfile指令详解

ADD复制文件从src⽬录复制⽂件到容器的dest。其中src可以是Dockerfile所在⽬录的相对路径,也可以是⼀个URL,还可以是⼀个压缩包示例:AAD SpringBoot-Demo.jar app.jarARG设置构建参数类似于ENV,ARG设置的是构建时的环境变量,在容器运行时是不存在这些变量的。而用户可以在构建期间使用docker build命令和参数--build-arg=对这个变量复制。如果你再Dockerfile中使用ARG定义了变量但未给出初始值,在docker bui

2020-09-17 14:52:39 11

原创 Docker核心原理

一、Docker的底层实现​ Docker容器本质上是宿主机上的进程 ,核心技术包括Linux上的命名空间(namespace)、控制组(cgroups)、UnionFS(联合文件系统)和容器格式(Container format)。Docker通过namespace实现了资源隔离,通过cgoups实现了资源限制,通过写时复制机制实现了高效的文件操作。​ 容器就是一个与宿主机系统共享内核但与系统中的其他进程资源相隔离的执行环境。Docker通过对namespace、cgroups、capabilit

2020-09-15 17:04:54 20

原创 SpringBoot项目实战经验之读取配置文件属性值的四种方式

方式一@Value("${xxx}")此方式一般多用于读取较少数量或没有相同前缀的属性值。实例:// 新建一个配置文件application-test.propertiesage=25address=nanjing // 在application.yml主配置文件中激活test配置文件,否则获取不到spring: profiles: active: test@RestController@RequestMapping("/v1")public class Re

2020-08-28 09:35:01 91

原创 hibernate-validator扩展自定义注解校验请求参数及请求体

SpringBoot项目中一般使用hibernate-validator来对请求参数进行校验,但hibernate-validator提供的注解有限,有时候需要根据具体业务扩展自定义注解对参数进行校验。前言:在实际运用中,hibernate-validator的注解分为校验单个的参数及整个实体类,两个校验的情况在处理上有一些差别,下面分开讲解。校验单个参数自定义注解模拟对Id进行校验@Documented@Constraint(validatedBy = IdCheck.IdValidat.

2020-08-21 15:42:08 107

原创 Java并发编程之synchronized关键字解析

Synchronized的应用synchronized关键字最主要有以下3种应用方式:修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。Synchronized的作用原子性:确保线程互斥的访问同步代码;可见性:保证共享变量的修改能够及时可见,其实是通过Java内存模型中的 “对一个变量unlock操作之前,必须要同步到主内存中

2020-08-18 15:20:11 55

原创 Java并发编程之volatile关键字解析

前言在并发编程中,我们主要围绕着以下三个问题:原子性问题:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。可见性问题:当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。有序性问题:程序执行的顺序按照代码的先后顺序执行要想保证并发程序能正确的运行,必须要保证以上三个问题,只要有一个没保证,就可能会发生错误。JAVA内存模型Java内存模型规定所有的变量存储在主内存中,每个线程都有自己的工作内存。线程对变量的所有操作都

2020-08-12 16:17:39 89

原创 SpringBoot项目实战经验之Filter实现自定义过滤器

Servlet包中提供了Filter接口供我们实现自定义过滤器。自定义拦截器可以参考我之前的文章https://blog.csdn.net/King__Cheung/article/details/107781774。与之不同的是,拦截器是Spring框架提供的功能,而Filter过滤器是Servlet提供的。下面是拦截器与过滤器的一些主要区别:Filter由Servlet包提供,只能用于Web应用,不能使用Spring容器资源;拦截器由Spring提供,既能用于Web应用,也能用于Appli..

2020-08-05 11:25:45 69

原创 SpringBoot项目实战经验之ApplicationEvent+@EventListener实现自定义监听器

Spring中提供了ApplicationEvent+@EventListener注解可以实现自定义事件监听,是基于_观察者模式_的。组成要素自定义事件自定义监听器发布事件自定义事件继承ApplicationEvent,自定义Event/** * @Author zhangting * @Desc 自定义事件 * @Date 2020/08/04 **/@Setter@Getterpublic class MyEvent extends ApplicationEven.

2020-08-04 16:03:51 75

原创 SpringBoot项目实战经验之HandlerInterceptorAdapter实现自定义拦截器

SpringBoot中提供了HandlerInterceptorAdapter适配器供我们自定义拦截器,可以拦截自定义或所有的请求做相应的处理。HandlerInterceptorAdapter中共有四个方法:preHandle :在Controller方法被调用前执行postHandle :在Controller方法调用后执行afterCompletion :在整个请求处理完成之后执行afterConcurrentHandlingStarted :用来处理异步请求,当Controller中.

2020-08-04 10:59:05 174

原创 SpringBoot项目实战经验之@ControllerAdvice+ResponseBodyAdvice实现响应体全局统一处理

在实际项目开发中,经常需要对向前台返回的响应体进行处理,例如包装为通用返回类型等。Spring中提供了 @ControllerAdvice+ResponseBodyAdvice 的解决方案 对响应体进行全局统一处理,可以避免在controller层对业务代码入侵。代码示例/** * @Author zhangting * @Desc 响应body全局统一处理 * @Date 2020/07/29 **/@Slf4j@ControllerAdvice(basePackages = "com.

2020-07-29 15:31:21 130

原创 SpringBoot项目实战经验之@ControllerAdvice+RequestBodyAdvice实现请求体全局统一处理

在实际项目开发中,经常需要对前台发来的请求body进行处理,例如参数过滤,参数校验,不合法参数拦截,参数解密等等。Spring中提供了 @ControllerAdvice+RequestBodyAdvice 的解决方案 对请求进行全局统一处理,可以避免在controller层对业务代码入侵。注意:该方法只对使用了@RequestBody注解的参数生效,本质上是AOP,获取的是在请求头中的属性,如果通过GET请求方式,例如http://localhost:8080/xx?id=1 此种方法,是无法获得i.

2020-07-29 14:41:15 222

原创 SpringBoot项目实战经验之@ControllerAdvice+@ExceptionHandler实现全局异常统一处理

注解@ControllerAdvice(或@RestControllerAdvice)本质上是Component,会被当做组件扫描。一般配合@InitBinder、@ModelAttribute、@Exception来使用,实现以下三个方面的功能:1、全局数据预处理2、全局数据绑定3、全局异常处理今天我们主要介绍第三种功能,在平时的项目中使用的比较广泛,可以实现在后台业务处理时抛出自定义错误,传回前台,此时前台就可以友好的将错误提示给用户。@ExceptionHandler(“异常类名”)

2020-07-24 15:48:12 79

原创 ACM-2006

Problem Description给你n个整数,求他们中所有奇数的乘积。Input输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。Output输出每组数中的所有奇数的乘积,对于测试实例,输出一行。Sample

2020-05-23 14:40:21 222

原创 ACM-2007

平方和与立方和 http://acm.hdu.edu.cn/showproblem.php?pid=2007 (题目来源)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 139006 Accepted Subm

2020-05-23 14:40:09 209

原创 ACM-2009

求数列的和原题链接Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 67476 Accepted Submission(s): 41150 Problem Description 数列的定义如下: 数列的第一项为n,以后各项为前一

2020-05-23 14:40:01 395

原创 ACM-2008 数值统计

**数值统计** 原题链接 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 86412 Accepted Submission(s): 42362Problem Description 统计给定的n个数中,负数、零和正数的个数

2020-05-23 14:39:50 235

原创 ACM-2010 水仙花数

水仙花数原题链接 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 158153 Accepted Submission(s): 45497Problem Description 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学

2020-05-23 14:39:38 302

原创 ACM-2011 多项式求和

多项式求和原题链接 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 64961 Accepted Submission(s): 37305Problem Description 多项式的描述如下: 1 - 1/2 + 1/3

2020-05-23 14:39:23 302

原创 ACM-2012 素数判定

素数判定Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 114184 Accepted Submission(s): 40148原题链接Problem Description 对于表达式n^2+n+41,当n在(x,y)范围内取整

2020-05-23 14:39:10 1274

原创 ACM-2013 蟠桃记

蟠桃记原题链接 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 52860 Accepted Submission(s): 39353Problem Description 喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定

2020-05-23 14:39:02 323

原创 ACM-2014 青年歌手大奖赛_评委会打分

青年歌手大奖赛_评委会打分原题链接 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 72515 Accepted Submission(s): 36014Problem Description 青年歌手大奖赛中,评委会给参赛选手

2020-05-23 14:38:13 316

飞机大战源码

飞机大战,里面包括源码、图片素材、注释等等。。。。。。。。。我只想赚点积分。。。。。。。。。。。。。。。。。。

2018-01-11

空空如也

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