- 博客(39)
- 资源 (1)
- 收藏
- 关注
转载 kafka的用户组以及用户组的Rebalance探究
一、 误区澄清与概念明确1 Kafka的版本很多人在Kafka中国社区提问时的开头经常是这样的:“我使用的kafka版本是2.10/2.11, 现在碰到一个奇怪的问题。。。。” 无意冒犯,但这里的2.10/2.11不是kafka的版本,而是编译kafka的Scala版本。Kafka的server端代码是由Scala语言编写的,目前Scala主流的3个版本分别是2.10、2.11和2.12。实际上Kafka现在每个PULL request都已经自动增加了这三个版本的检查。下图是我的一个PULL ...
2020-11-22 22:42:17
601
原创 小白快速上手前后端分离项目开发教程(springboot+vue)
springboot+vue,实现一个前后端分离项目的实操。通俗易懂,保证一学就会。
2020-08-11 23:21:52
3743
原创 浅析IBMMQ和RabbitMq的区别
在公司的项目开发中,使用到了IBMMQ和rabbitMq两种消息队列,实际使用过程中,发现他们其实是有点不同的。分享出来大家一起交流学习。队列节点个数不同;IBMmq的使用和涉及逻辑是:发送永远操作的是远程队列,接收操作的永远都是本地队列。注意:远程和本地队列,这个远程和本地只是一个概念区分,区分一下什么样的操作应该对应什么样的队列。而不是说这个队列是一个在本地一个在远程。举例:A系统 和 B系统之间通过IBM通信在一个A和B都能访问的到服务器上面搭建一个IBM服务器。然后创建.
2020-05-25 15:35:17
6962
8
原创 对JVM堆内存设计的思考
学习了jvm的内存模型以及java垃圾回收机制之后,我不禁感叹jdk开发人员的高明。抱着多问为什么的心态,我想通过以下几个问题,揣摩一下作者为什么要这么做?那么我们就跟着问题来进行思考把.1、为什么要分为老年代和新生代?在我们的实际业务生产环境中,程序会产生大量不同类型的对象。有的可能随着一个功能的完成,他的生命周期就结束了,比如一个方法中的临时变量例如String对象,程序中可能会出现很多,但是有的只用一次就不用了。有的却要长期存在,比如session,http连接等,sprin.
2021-01-23 23:04:54
466
4
原创 leetcode刷题2:爬楼梯问题
题目描述:这道题的题目重点是:每次只能走一步或者走两步。也就是说不管有多少台阶,最后的那一步你要么走一步要么走两步所以假如说有n级台阶,那么他要么是从n-2走上来,要么是从n-1走上来。所以第n级台阶的走法就是第n-1级的走法加上n-2级的走法。归纳一下得到如下公式f(n)=f(n-2)+f(n-1);这其实也算是求菲波那切数列的第n项的问题,不过这道题起始条件是n=1f(1)=1;n=2f(2)=2;那么写出来的代码就是下...
2020-12-17 20:45:50
673
原创 leetcode练习1:盛水最多的容器求解过程
题目详情如下图所示:解题思路拿到这道题的 第一个想法就是,双层循环遍历法,找出所有可能的组合,求出面积,然后比较,最终求出最大的面积。下面是具体的代码class Solution{ public int maxArea(int[] height){ int max = 0; int area = 0; //第一层循环需要限制height.length-1 for(int i = 0; i < height..
2020-12-15 23:12:44
317
2
转载 从文件压缩的角度探究NIO
压缩20M文件从30秒到1秒的优化过程有一个需求需要将前端传过来的10张照片,然后后端进行处理以后压缩成一个压缩包通过网络流传输出去。之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改完以后也能使用,但是随着前端所传图片的大小越来越大的时候,耗费的时间也在急剧增加,最后测了一下压缩20M的文件竟然需要30秒的时间。压缩文件的代码如下。public static void zipFileNoBuffer() { File zipFile = new F...
2020-11-24 10:26:02
218
转载 rabbitMQ结构分析及优化配置
转自RabbitMQ进程结构分析与性能调优RabbitMQ是一个流行的开源消息队列系统,是AMQP(高级消息队列协议)标准的实现,由以高性能、健壮、可伸缩性出名的Erlang语言开发,并继承了这些优点。业界有较多项目使用RabbitMQ,包括OpenStack、spring、Logstash等。腾讯云在开发云消息队列系统(CMQ)时,对RabbitMQ进行了大量的学习和优化,包括瓶颈分析、内存管理、参数调优等。下文结合Erlang和RabbitMQ架构来分析实践中遇到的问题,并探讨相应的优化方案。
2020-11-22 16:59:22
1638
转载 Feed流产品(微博、微信、抖音)设计思路
转自Feed流系统设计-总纲简介差不多十年前,随着功能机的淘汰和智能机的普及,互联网开始进入移动互联网时代,最具代表性的产品就是微博、微信,以及后来的今日头条、快手等。这些移动化联网时代的新产品在过去几年间借着智能手机的风高速成长。这些产品都是Feed流类型产品,由于Feed流一般是按照时间“从上往下流动”,非常适合在移动设备端浏览,最终这一类应用就脱颖而出,迅速抢占了上一代产品的市场空间。Feed流是Feed + 流,Feed的本意是饲料,Feed流的本意就是有人一直在往一个地方投递新鲜的
2020-11-22 14:57:39
2566
转载 RabbitMQ集群方案
转自消息中间件-rabbitMQ(集群原理与搭建)摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用其单实例部署就可以了,但是出于MQ中间件本身的可靠性、并发性、吞吐量和消息堆积能力等问题的考虑,在生产环境上一般都会考虑使用RabbitMQ的集群方案。对于RabbitMQ这么成熟的消息队列产品来说,搭建它并不难并且也有不少童鞋写过如何搭建..
2020-11-19 22:31:10
669
1
转载 如何设计一个秒杀系统
转自秒杀系统设计秒杀系统的难点首先我们先看下秒杀场景的难点到底在哪?在秒杀场景中最大的问题在于容易产生大并发请求、产生超卖现象和性能问题,下面我们分别分析下下面这三个问题:1)瞬时大并发:一提到秒杀系统给人最深刻的印象是超大的瞬时并发,这时你可以联想到小米手机的抢购场景,在小米手机抢购的场景一般都会有10w+的用户同时访问一个商品页面去抢购手机,这就是一个典型的瞬时大并发,如果系统没有经过限流或者熔断处理,那么系统瞬间就会崩掉,就好像被DDos攻击一样;2)超卖:秒杀除了大并发这样的难点,还
2020-11-16 21:46:28
353
转载 Hystrix探究
转自:Hystrix背景分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服务资源耗尽,无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,这种现象被称为雪崩效应。雪崩效应常见场景硬件故障:如服务器宕机,机房断电,光纤被挖断等。 流量激增:如异常流量,重试加大流量等。 缓存穿透:一般发生在应用重启,所有缓存失效时,以及短时间内大.
2020-11-16 21:43:50
188
翻译 基于springboot 快速搭建简单前后端分离项目-后台框架
springboot+spring DataJpa +mysql 搭建简单地前后端分离项目的后台框架
2020-08-11 22:56:30
15176
6
原创 1.算法入门必知必会:时间复杂度和空间复杂度
时间复杂度与系数无关如何判断一段代码的时间复杂度,就是直接看他会执行多少次一、常见的时间复杂度O(1) Constant Complexity 常数复杂度下面的都是常数复杂度,与系数无关。打印三次sysout他的时间复杂度也是O(1)int n = 1System.out.println("abc is"+n);int n = 2System.out.println("abc is"+n);System.out.println("bdc is"+n);System.out.
2020-08-07 11:24:55
2538
原创 win10安装Jenkins
安装所需要的环境:jdk、Tomcat一、下载Jenkins地址:https://www.jenkins.io/download/。选择一个对应的windows版本进行下载。二、安装Jenkins下载好之后解压,双击msi文件。进行安装。安装位置选择到tomcat的webapps目录下。安装好之后,就可以通过http://localhost:8080访问到如下页面然后去页面上的对应位置找打密码输入之后,点击继续。之后会看到如下界面我们选择社区推荐的插件安装进入如下界面,需
2020-07-30 11:05:35
345
原创 springboot 集成 jasypt 实现对配置文件非明文展示-详解
第一步:引入jasypt依赖<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>1.8</version></dependency>第二步:
2020-06-18 09:25:39
773
原创 关于org.springframework.boot.context.properties.bind.PlaceholdersResolver的解决
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.bind.PlaceholdersResolver因为jasypt实现了spring源码中的一个接口,所以我们可以直接通过一个springboot的starter来使用这个组件。但是需要注意版本问题,如果springboot使用的版本是1.X的,那么引入的jasypt的版本就不能超过2.0,不然就会报上面的错误。如下图所示.
2020-06-17 16:37:07
2384
3
转载 多维度分析主流消息队列技术差异
摘自https://www.cnblogs.com/imstudy/p/11064589.html1、引言对于即时通讯网来说,所有的技术文章和资料都在围绕即时通讯这个技术方向进行整理和分享,这一次也不例外。对于即时通讯系统(包括IM、消息推送系统等)来说,MQ消息中件间是非常常见的基础软件,但市面上种类众多、各有所长的MQ消息中件间产品,该怎么去选择?这是个问题!对于很多经验不足的开发者来说,一个公司内部用的IM聊天系统,总用户量也不过百十来人,动辄就是Kafka、MongoDB,美其名曰为了高
2020-05-25 15:28:49
249
原创 简单四步了解消息队列
一、What 消息队列是什么?“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的 源 中继到 它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。从百度百科的介绍中我们得知:消息队列是一个可以用来存放消息的容器,消息存放到这个容器中之后会被他所管理,直到他被成功的传递。即他可以存
2020-05-25 15:27:06
246
原创 java线程的6种状态分析
一、哪六种?NEWRUNNABLEBLOCKEDWAITINGTIMED_WAITINGTERMINATED二、官方源码怎么说?我们可以看到官方源码中对于线程的状态,使用了一个枚举类。在枚举类中定义了一个java线程所拥有的六种状态分别是什么,并且给出了简洁的解释以及一些线程转换相关的方法。请仔细阅读下面的代码片段。public enum State { ...
2020-04-14 20:57:14
337
原创 jvm指令码表
下面给大家列出的是常用的jvm指令码与对应操作符之间的关系及实际意义描述。 常量入栈指令 指令码 操作码(助记符) 操作数 描述(栈指操作数栈) 0x01 aconst_null null值入栈。 0x02 ...
2020-04-13 15:48:47
454
2
原创 JAVA程序运行原理过程分析
学习java使用java很久了,都知道java可以“一处编写,到处运行”。那么一个普通的java类到底是如何被java虚拟机执行的呢,我们可以一起来探究一下。在探究java运行原理之前,我们需要首先对一些概念有一定的了解。一、class文件java代码被执行的第一步就是首先由.java文件编译为.class文件,然后再由java虚拟机来根据class文件中的信息来进行执行代码,输出结果...
2020-04-13 11:56:33
452
原创 centos7.4上安装python3.6.4环境
第一步:下载python3.6.4jar包,并上传到centos服务器上(1)下载jar包,链接:https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz(2)在centos7.4上面创建目录 mkdir /home/pythonPackage 将下载好的tar文件上传到centos7.4服务器,如...
2018-12-18 21:34:07
265
1.1进程与线程.xmind
2020-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅