自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AlgoRain的博客

更多技术文章可以访问我的个人博客 www.rain1024.com

  • 博客(103)
  • 资源 (1)
  • 收藏
  • 关注

原创 Mac版VisualVM启动提示You are running VisualVM using Java Runtime Environment ( JRE ) . Please use

今天更新了VisualVM 2.0.5,启动的时候提示找不到jdk引用,于是到包内部的visualvm.conf中修改jdk引用地址。visualvm.conf的路径/Applications/VisualVM.app/Contents/Resources/visualvm/etc/visualvm.conf将visualvm_jdkhome修改为类似以下的路径就可以了visualvm_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_181.

2021-01-14 14:12:53 31 1

原创 分布式锁的锁优化

在去除原有synchronized单机锁后,在关键步骤添加分布式锁来对具体业务进行锁定,然而由于锁定范围大,导致锁竞争增加,不断发生锁等待,如果不进行优化,可能会让线程队列增大甚至阻塞,而且在等待时长超过设定的阈值时,线程将超时返回。在此,初步对锁进行优化,如何理解分布式锁与单机锁的应用范围和实现机制,分布式锁与单机锁并不冲突,单机锁类似于海选初赛,而分布式锁则相当于决赛,单机锁用于在当前服务器中,控制所有线程的访问,当最终有线程得到访问数据库或其他唯一性的可操作数据的中间件,再由分布式锁来控制所有进入最

2021-01-04 17:26:28 37

原创 数据库读写分离时,主从延时导致数据不一致的解决方案

数据库读写分离时,主从延时导致数据不一致的解决方案引入主从架构,数据读写分离,目的是为了解决业务快速发展,请求量变大,并发量变大,从而引发的数据库的读瓶颈。不过当引入新一个架构解决问题时,势必会带来另外一个问题,数据库读写分离之后,主从延迟从而导致数据不一致的情况。数据库系统架构主备架构公司业务发展的前期,由于数据访问量小,这时我们可以直接采用单库的架构,承载所有的访问请求。不过因为存在单点的问题。若数据库出现故障,这段期间业务将会不可用。这时我们可以增加一个备库,实时同步主库的数据一旦

2021-01-04 09:30:56 31

原创 关于Pagehelper分页失效不起作用的问题-与Feign有关

关于Pagehelper分页失效不起作用的问题-与Feign有关今天偶尔在项目里试pagehelper分页分页功能时,怎么都不会生效,不管怎么设置pageNum,pageSize都是将所有内容输出,在网上搜索了一些也没有效果,大多都是maven依赖引入有问题,但我的maven依赖已经设置为全局统一。<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>page

2020-12-03 20:52:50 84

原创 测试单节点Kafka在Zookeeper关闭后的运行状态和请求响应状态

测试单节点Kafka在Zookeeper关闭后的运行状态和请求响应状态Kafka版本:2.11-2.1.0zookeeper版本:3.5.5系统版本:centos7.6这个问题是在一次面试的时候面试官问的,当时确实懵了,只能模糊的去描述zookeeper关闭后的kafka 状态,自己并不非常肯定,回来之后一直想亲自试验一下,今天刚好搭了一个单节点的Kafka和单节点的zookeeper,之后有时间再去分别测试集群版环境的响应情况。先说结论:当Zookeeper关闭后,不影响Kafka正常生产和消费

2020-11-30 15:35:46 22

转载 重写的六大风险

重写的六大风险因最近一直在重写公司一套系统,看到这篇文章时觉得说得很好,里面的观点和建议说得非常有价值,值得在重写过程中被注意。在转载过程中对文章进行了部分修改,使得文章更加切实我最近的重写历程。原文转载至:https://mp.weixin.qq.com/s/2uzq0Q_WcgH-hacTYsqgJQ尽管重写必然会给团队带来风险,但我们经常还是不顾一切地踏上重写的旅程。重写带有一种欺骗性的诱惑,其逻辑看上去是这样:这个系统已经应用于生产环境,我们显然知道它是如何工作的,因此只要将其移植到一

2020-11-30 09:15:38 24

原创 SpringCloud-Gateway对multipart/form-data等其他POST请求类型的body体进行多次打开

本次代码仅在以下版本中测试通过<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId&gt

2020-11-10 14:18:32 177

原创 Kafka的主题删除机制

Kafka的主题删除机制命令删除在Kafka中当一个主题不再使用的时候,可以选择将其删除,以此来释放磁盘,文件句柄等资源,删除过程其实很简单,使用kafka-topics.sh脚本中的delete指令就可以。bin/kafka-topics.sh --zookeeper localhost:2181/kafka --delete --topic topic-delete在删除完毕后,会有相应的提示信息,提示信息与broker端配置参数delete.topic.enable有关,必须将delete.

2020-09-14 15:43:10 118

原创 Java性能调优分享

Java性能调优分享这次分享还是之前在公司对项目进行性能调优时,前期的调研,以及积累的一些经验,之前公司产品面对的用户并发量较小,所以测试通过后直接上线,不需要根据其他维度来进行分析优化,后来领导对我负责的系统提出了并发的要求,想知道系统能承受的并发量是多少,时延会达到多长,根据这些需求,进行一系列压测。1.为什么要做性能优化系统角度一款线上产品如果没有经过性能测试,那它就好比是一颗定时炸弹,你不知道它什么时候会出现问题,你也不清楚它能承受的极限在哪儿。有些性能问题是时间累积慢慢产生的,到了

2020-09-09 20:08:30 73

原创 《Remus: High Availability via Asychronous Virtual Machine Replication》译文

通过异步虚拟机复制实现高可用性涉及资料推测性执行的概念:https://zhuanlan.zhihu.com/p/33145828Xen的概念:https://baike.baidu.com/item/Xen系统脏页及页缓存的概念https://juejin.im/post/5d59638c518825291e3dd77fHypervisorhttps://zhuanlan.zhihu.com/p/34320333摘要让应用程序在硬件故障中幸存下来是一项代价很高的工作,通常.

2020-08-30 20:45:23 146

原创 使用两种多线程模式消费kafka数据

使用两种多线程模式消费数据KafkaProducer是线程安全的,然而 KafkaConsumer却是非线程安全的。 Kafka Consumer中定义了一个 acquire(方法,用来检测当前是否只有一个线程在操作,若有其他线程正在操作则会抛出 Concurrentmodifcationexception异常:java.util.ConcurrentModificationException: KafkaConsumer is not safe for multi-threaded access.K

2020-05-31 15:05:29 298

原创 使用hutool-poi在未安装Office或wps软件的电脑中生成Excel的xls后缀消失问题

使用hutool-poi在未安装Office或wps软件的电脑中生成Excel的xls后缀消失问题由于项目中存在日志导出功能,会将查找的日志数据生成Excel文件并下载,在开发和测试过程中,该功能并未出现问题。而当现场环境使用一台未安装Office或wps软件的电脑去下载日志文件时,生成的xls文件后缀消失。当安装wps软件后再下载便会出现xls后缀。首先可以排除代码中后缀生成问题,因为是直...

2020-04-21 19:37:10 206

原创 sbt配置源报错:Error during sbt execution: java.lang.RuntimeException: Expected one of local, maven-local,

Error during sbt execution: java.lang.RuntimeException: Expected one of local, maven-local, maven-central, scala-tools-releases, scala-tools-snapshots, sonatype-oss-releases, sonatype-oss-snapshots, j...

2020-04-13 17:17:52 645

原创 SpringBoot中@ConfigurationProperties对于多层嵌套参数的正确加载方法

SpringBoot中@ConfigurationProperties对于多层嵌套参数的正确加载方法今天想重构一下Kafka代码,将之前用@Value引入的一些参数全部替换掉,因为可读性和维护性太差,这是以前的样子。 @Value("${spring.kafka.bootstrap-servers}") private String servers; @Value("${sp...

2020-04-10 22:12:19 3213 2

原创 引入redis做为dubbo注册中心时报错

引入redis做为dubbo注册中心时报错信息如下,代码结构和maven依赖时复制官方示例的,原来是官方示例没有引入jedis依赖,加入即可<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId&gt...

2020-03-25 18:02:54 148 3

原创 微服务架构的多种部署模式

微服务架构的多种部署模式声明:本文主要内容来自《微服务架构设计模式》部署包含两个互相关联的概念:流程和架构。部署流程包括一些由开发人员和运维人员执行的过程,以便将软件发布到生产环境。部署架构定义了该软件运行的环境结构。以微服务架构开发的程序,经常涉及到多个服务组成,后端的网关模块,用户模块,日志模块,业务模块等,还有前端Node.js模块。以笔者所在公司为例,每次部署服务时都要互相之间沟...

2020-03-21 22:21:51 233

原创 关于mybatis-plus中Service和Mapper的分析

在后端开发过程中,如果有用到mybatis-plus,肯定会发现在其内部存在着两种数据库操作接口,Iservice和BaseMapper,如果只是用增删改查会发现两者的功能是一致的,除了方法名称有所不同,其他的基本相似。对此,我颇为好奇,便打开两个接口的源码进行对比。先演示一下基本开发中的继承关系,手动创建的Service继承于ServiceImpl,并加载自己创建的Mapper@Servic...

2020-03-19 15:12:16 604

原创 JAVA开发MQTT程序总结

JAVA开发MQTT总结MQTT 介绍它是一种 机器之间通讯 machine-to-machine (M2M)、物联网 Internet of Things (IoT)常用的一种轻量级消息传输协议适用于网络带宽较低的场合包含发布、订阅模式,通过一个代理服务器(broker),任何一个客户端(client)都可以订阅或者发布某个主题的消息,然后订阅了该主题的客户端则会收到该消息mq...

2020-02-24 18:13:01 375

原创 通过NAS对分布式系统CAP理论的理解

通过NAS对分布式系统CAP理论的理解CAP原则又称CAP定理,指的是在一个分布式系统中:Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。CAP理论在微服务架构中是经常被研究的问题,我在之前看书的时候却总是忘记这套理论,因为它在具体设计系统时CAP原则并不能全部实现,三者之间不同组合让人倍感迷惑,...

2020-02-23 16:50:46 170

原创 《HeadFirst设计模式》第八章模版方法模式-读书笔记

《HeadFirst设计模式》第八章模版方法模式-读书笔记案例代码链接:https://github.com/rainweb521/My-tutorial/tree/master/Design_patterns1. 找相同1.1在冲泡咖啡和茶的时候有以下两种操作步骤咖啡冲泡法把水煮沸用沸水冲泡咖啡把咖啡倒进杯子加糖和牛奶茶冲泡法把水煮沸用沸水浸泡茶叶把茶倒进杯子加柠...

2019-11-11 08:56:03 67

原创 《HeadFirst设计模式》第七章适配器模式与外观模式-读书笔记

案例代码链接:https://github.com/rainweb521/My-tutorial/tree/master/Design_patterns什么是适配器因为现实中到处都有适配器。比方说: 如果你需要在欧洲国家使用美国制造的笔记本电脑,你可能需要使用个交流电的适配器,适配器的作用:它位于美式插头和欧式插座的中间,它的工作是将欧式插座转换成美式插座,好让美式插头可以插进这个插座得到电力...

2019-11-02 18:04:36 176

原创 《新参者》读书笔记

趁着内心的震撼还没有过去,写下这篇读书笔记。《新参者》最开始用微信读书看了一段电子版的,人物关系的巧妙联系,剧情看似毫无联系却又有着千丝万缕的关联,这让我赶紧去买了纸质版的去正式的阅读。用了两天的时间看完,我以为还会是悬疑精彩的推理小说,最后洞悉出犯罪者的真实动机。然而随着剧情的不断展开,那股温情,执拗,懊悔,感动不断在我内心交织。从仙贝店儿子善意的谎言,到料亭店夫妻的无奈之举,陶器店微...

2019-11-02 18:01:29 319

原创 《HeadFirst设计模式》第六章命令模式-读书笔记

《HeadFirst设计模式》第六章命令模式-读书笔记1.背景1.1 用餐厅来分析从餐厅开始说起,以此来解释命令模式的流程。订单封装了准备餐点的请求女招待接受订单,然后调用订单的orderUp()方法厨师准备餐点这样,顾客和女招待是解耦的,一天内,不同的顾客有不同的订单,女招待知道所有的订单都支持orderUp()方法,每次调用这个方法就是了。女招待和厨师也是解耦的,订单封装了餐...

2019-10-26 06:44:48 109

原创 《HeadFirst设计模式》第五章单件模式-读书笔记

《HeadFirst设计模式》第五章单件模式-读书笔记1. 什么是单件在我们的系统中,有一些对象其实我们只需要一个,比如说:线程池、缓存、对话框、注册表、日志对象、充当打印机、显卡等设备驱动程序的对象。事实上,这一类对象只能有一个实例,如果制造出多个实例就可能会导致一些问题的产生,比如:程序的行为异常、资源使用过量、或者不一致性的结果。使用单例模式的好处:对于频繁使用的对象,可以省略创建...

2019-10-21 10:38:38 61

原创 《HeadFirst设计模式》第三章-装饰者模式-读书笔记

《设计模式》第三章-装饰者模式-读书笔记背景这一次是星巴兹咖啡,他们需要新的订单系统,原来的设计太过冗余,直接使用一个饮料抽象类作为父类,其他要增加调料的过程用子类继承父类,之后再实现,这样就变得特别繁琐,根本没有办法去维护。违反了之前规定的设计原则:>多用组合,少用继承。针对接口编程,不针对实现编程。第一种解决方案实现过程直接重写Beverage类,把所有...

2019-10-14 10:54:59 90

原创 Gateway网关简介及使用

Gateway网关简介及使用1. 什么是 API 网关(API Gateway)分布式服务架构、微服务架构与 API 网关在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计、开发、测试、部署和管理。这时,各个独立部署单元可以用不同的开发测试团队维护,可以使用不同的编程语言和技术平台进行设计,这就要求必须使用一种语言和平 台无关的服务协议作为各个单元间的通讯方式。AP...

2019-10-09 20:54:32 75557 6

原创 《HeadFirst设计模式》第二章观察者模式-读书笔记

《HeadFirst设计模式》第二章观察者模式-读书笔记1. 背景这次的引子是关于气象站的应用,案例中要建立一个应用,有三种天气预报的展现形式,使用一个WeatherObject对象获得最新测量到的天气数据,然后对三个布告板进行实时更新。并且以后可能会新加入其他的布告板,需要系统有很高的扩展性。WeatherData对象知道如何跟物理气象站联系,以取得更新的数据。WeatherData对象会...

2019-09-27 16:04:11 113

原创 《HeadFirst设计模式》第一章策略模式-读书笔记

《HeadFirst设计模式》第一章策略模式-读书笔记1. 前言工作以后,代码不单是写完就可以的,复用,维护也是很重要的,以前自己写代码都是以功能为目的,不考虑其他的只在一个类里全部写完就行,但这样以后会暴露出更多的问题,与其乱写,不如不写,多留一些时间去构思整个流程,而不是说干就干。设计模式是很早之前就接触到的概念,但出于用不到就不学的观念,一直都没有去认真的学习,这次下定决心去学一遍...

2019-09-22 17:42:08 96

原创 大规模校园网日志的用户行为分析—(理论分析)

大规模校园网日志的用户行为分析—(理论分析)思路想法:校园网中存在大量的上网日志,用户的上网日志信息是非常有用的在它里面记录了用户访问网站的行为轨迹、 用户终端信息、位置信息、浏览网页时长等重要信息,可以说是一座巨大的数据金矿。但是校园网日志可能并没有利用起来,如果能对数据进行清洗,开发,分析,挖掘,从中提取出有价值的数据,有助于校园网的优化,管理。技术点:日志信息的实时流提取,会用到kafk...

2019-07-29 14:43:31 372

原创 Oracle统计多种数据并以Map格式返回数据

Oracle统计多种数据并以Map格式返回数据在开发中遇到一个问题,需要查询并统计出多个字段在不同条件下的数据,以前可能只是单纯的返回某几个字段数据,在经过一番查找和自己的调试过后总结出来以下的办法,代码都是经过测试并运行的,应该没有问题,其中count就是对数据进行计数,也可以使用sum来对数据进行累加。case when 后面是判断条件,可以使用and来继续连接其他条件,最后使用end结尾 ...

2019-05-23 19:54:17 1475

原创 基于HDFS大数据存储开发的视频教程

基于HDFS大数据存储开发的视频教程链接如下基于HDFS大数据存储开发的视频链接地址今天做为我的第一次录视频教程还是有很多犹豫的,担心自己的技术,也担心自己的普通话,但既然决定了还是去慢慢克服,遇到问题再解决问题吧,在这次视频里以及今后的视频里我不会把全套都准备好,我想一步一步的来实现,去还原真实开发过程中遇到的问题,同大家站在相同的起点去做这个事情,而不是站在一个高点(用一套已经完整成熟...

2019-05-19 23:35:08 234

原创 成品示例代码

成品示例代码GitHub地址链接gitee地址链接本书代码均在Eclipse SDK Version: 3.6.0 或者是MyEclipse Enterprise Workbench Version: 7.5调试通过,将软件JDK安装在D:\Program Files\Java ,将Eclipse软件安装在D:\Program Files\eclipse,将MyEclipse 软件安装在D:...

2019-04-08 00:56:53 655

原创 Spring与微服务

Spring与微服务微服务的理念在微服务的概念逐步形成之前,绝大部分基于Web的应用都是使用单体架构的风格来进行构建的。在单体架构中,应用程序作为单个可部署的软件制品交付,所有的UI,业务,数据库访问等逻辑程序都被打包在一个应用程序中并部署在一个应用程序服务器上。虽然应用程序可能是作为单个工作单元部署,但大多数情况下,会有多个开发团队开发这个应用程序。每个开发团队负责应用程序的不同部分,随着...

2019-03-31 18:04:41 145

原创 新奥实习

新奥实习不知不觉两个星期过去了,也有一个多月没写博客,最近很忙但都在忙其他事情,工作反而比较轻松,来的前两周先是了解公司产品,后来开始做测试,写测试样例再测试,发现bug提交给面板中,组里的安排能一步一步的深入了解公司产品,光看是解决不了问题的,还是得从测试做起知道什么功能什么模块,以后入手开发也可以快速熟练,这周开始看成熟的产品的代码,整个大数据清洗,存储,分析过程都要学会,还是有些挑战的,不...

2018-12-18 10:10:05 682

原创 在线答题-问卷调查小系统(附源码)

在线答题-问卷调查小系统前段时间公司要开一个安全会议,要现场在线答题,网上的问卷调查网站很多,但涉及到公司内部信息,并且题型还需要自定义,所以打算自己做一个,要求就是直接输入姓名,手机号,公司就能进行答题,题目由题库中随机出10道有单选和多选,技术上比较好实现,有问题的可以看一下代码,而且我对输入的姓名,手机号都严格限制不能随便输入。答完题后会显示答对题数,并将所有题目正确和错误的答案显示出来。...

2018-11-05 15:56:49 26383 4

原创 Java实现Kafka生产者消费者功能

Java实现Kafka生产者消费者功能好久没有更新博客,最近学的东西很多,但一直忙的没有时间去写,先补充一篇kafka的,最基本的功能使用,不得不感叹大数据确实难,即使只说一个简单的功能,之前也需要铺垫很多完成的功能,比如这篇博客的前提是,你已经安装了虚拟机,里面配置了Hadoop生态组件zookeeper,安装配置了kafka,学会使用Maven,springboot等些技术,而不是直接拿来代...

2018-10-28 12:43:09 19228 2

原创 使用MapReduce对日志数据进行简单的清理和总结

使用MapReduce对日志数据进行简单的清理和总结首先使用MapReduce对日志进行分割,将time,ip,url提取出来,在用reduce进行一个整合,根据ip地址的出现次数,打印到hdfs中。在整合中我使用了bean结构来存储数据,bean继承了WritableComparable接口。使用时先将BaiduLog和LogBean两个类导入项目,并配置相应的Maven依赖,然后导出项目的...

2018-09-19 09:42:45 2458

原创 我在亚信实习的日记(结束)

亚信实习的第一天其实是第二天,上上周五待了半天就请假了,所以就不算了,从今天开始算作第一天。怎么说呢,自己的心态还是发生了很多的变化,从犹豫,抗拒,排斥,到接受,面对,学习,生活哪有那么顺利,什么都是自己喜欢的,自己想要的,既然喜欢编程,何不静下心来感受一下,如果连刚开始都坚持不了,以后还怎么继续,况且不去实习,怎么知道自己适不适合,只凭想是想不出来的。租到了房子,有了住处心里就有底了,天通苑...

2018-09-17 21:52:18 5820 7

原创 使用Java调用HDFS的API进行文件基本操作

使用Java调用HDFS的API进行文件基本操作本样例主要是代码,其中包括了Java进行上传,下载,删除,创建文件夹,遍历文件夹等操作,代码环境基于MacOS,IDEA,使用Maven来配置依赖包,后面我会放出代码,和pom.xml。Hadoop是2.6 CDH版本。代码中的hmaster是我配置的虚拟机IP地址,需要修改为你的虚拟机IP地址。HDFSUtil.javapack...

2018-08-12 17:33:57 2149

原创 使用MapReduce统计天气数据中的最高气温

使用MapReduce统计天气数据中的最高气温例子是从Hadoop权威指南上改写的,需要先将代码生成jar包,然后将测试样例和jar包上传到HDFS中,使用命令运行,最终会得出每年的最高气温统计结果,运行命令不写出来了。代码也很简单,就是分别写出map和reduce的操作,map中对数据进行一个分割,提取,将结果传给reduce进行统计。package com.rain.mapre...

2018-08-03 19:07:23 2075 2

《Hadoop权威指南》书中的源码和数据

Hadoop权威指南第四版中的代码还有实验数据,是从官网找到的

2018-08-08

空空如也

空空如也

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

TA关注的人 TA的粉丝

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