- 博客(101)
- 收藏
- 关注
原创 Apache Hadoop 完全分布式集群搭建(自备三台虚拟机,仅供学习使用)
Apache Hadoop 完全分布式集群搭建环境搭建准备软件和操作系统版本Hadoop框架是采用Java语言编写,需要java环境(jvm)JDK版本:JDK8版本Hadoop搭建方式单机模式:单节点模式,非集群,生产不会使用这种方式单机伪分布式模式:单节点,多线程模拟集群的效果,生产不会使用这种方式完全分布式模式:多台节点,真正的分布式Hadoop集群的搭建(生产环境建议使用这种方式)三台虚拟机(静态IP,关闭防火墙,修改主机名,配置免密登录,集群时间同步)可以自己去百
2021-07-12 18:21:32
583
1
原创 Hadoop简介
Hadoop简介Hadoop 是一个适合大数据的分布式存储和计算平台。狭义上说Hadoop就是一个框架平台,广义上讲Hadoop代表大数据的一个技术生态圈,包括很多其他软件框架Hadoop生态圈技术栈Hadoop(HDFS + MapReduce + Yarn)Hive 数据仓库工具HBase 海量列式非关系型数据库Flume 数据采集工具Sqoop ETL工具Kafka 高吞吐消息中间件…Hadoop的特点Apache Hadoop版本
2021-07-02 10:57:56
2907
原创 Elastic search之介绍和安装
Elastic search之介绍和安装Elasticsearch是一个需要安装配置的软件。ELK技术栈说明Elastic有一条完整的产品线:Elasticsearch、Logstash、Kibana等,前面说的三个就是大家常说的ELK技术栈(开源实时日志分析平台)。Logstash 的作用就是一个数据收集器,将各种格式各种渠道的数据通过它收集解析之后格式化输出到Elasticsearch ,最后再由Kibana 提供的比较友好的 Web 界面进行汇总、分析、搜索。ELK 内部实际就是个管道结构
2021-03-04 17:15:37
394
1
原创 全文检索之Lucene
全文检索之Lucene什么是全文检索数据分类我们生活中的数据总体分为两种:结构化数据和非结构化数据。 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据:指不定长或无固定格式的数据,如邮件,word 文档等磁盘上的文件结构化数据搜索常见的结构化数据也就是数据库中的数据。 在数据库中搜索很容易实现,通常都是使用 sql语句进行查询,而且能很快的得到查询结果。为什么数据库搜索很容易? 因为数据库中的数据存储是有规律的,有行有列而且数据格式、数据长度都是固
2021-02-21 22:10:11
250
原创 SpringCloud(九)Spring Cloud Config 分布式配置中心
SpringCloud(九)Spring Cloud Config 分布式配置中心分布式配置中心应用场景往往,我们使用配置文件管理一些配置信息,比如application.properties单体应用架构,配置信息的管理、维护并不会显得特别麻烦,手动操作就可以,因为就一个工程;微服务架构,因为我们的分布式集群环境中可能有很多个微服务,我们不可能一个一个去修改配置然后重启生效,在一定场景下我们还需要在运行期间动态调整配置信息,比如:根据各个微服务的负载情况,动态调整数据源连接池大小,我们希望配置内容发
2021-02-21 22:05:15
134
原创 SpringCloud(八)网关组件之GateWay
SpringCloud(八)网关组件之GateWay网关:微服务架构中的重要组成部分局域网中就有网关这个概念,局域网接收或者发送数据出去通过这个网关,比如用Vmware虚拟机软件搭建虚拟机集群的时候,往往我们需要选择IP段中的一个IP作为网关地址。老夫最近学习的GateWay–>Spring Cloud GateWay(它只是众多网关解决方案中的一种)GateWay简介Spring Cloud GateWay是Spring Cloud的一个全新项目,目标是取代Netflix Zuul,它基于
2021-02-20 22:31:53
375
原创 SpringCloud(七)远程调用组件之Feign
SpringCloud(七)远程调用组件之Feign在之前的案例中,服务消费者调用服务提供者的时候使用RestTemplate技术。 @GetMapping("/getProduct/{id}") public Products getProduct(@PathVariable Integer id){ //拼写URL地址 String url = "http://szx-service-product/product/selectProductById/"
2021-02-19 22:22:07
226
原创 SpringCloud(六)熔断器之Hystrix
SpringCloud(六)熔断器之Hystrix属于一种容错机制微服务中的雪崩效应当山坡积雪内部的内聚力抗拒不了它所受到的重力拉引时,便向下滑动,引起大量雪体崩塌,人们把这种自然现象称作雪崩。微服务中,一个请求可能需要多个微服务接口才能实现,会形成复杂的调用链路。服务雪崩效应:是一种因“服务提供者的不可用”(原因)导致“服务调用者不可用”(结果),并将不可用逐渐放大的现象。扇入:代表着该微服务被调用的次数,扇入大,说明该模块复用性好扇出:该微服务调用其他微服务的个数,扇出大,说明业
2021-02-18 20:44:34
148
原创 SpringCloud(五)负载均衡之Ribbon
SpringCloud(五)负载均衡之Ribbon关于负载均衡负载均衡一般分为服务器端负载均衡和客户端负载均衡所谓服务器端负载均衡,比如Nginx、F5这些,请求到达服务器之后由这些负载均衡器根据一定的算法将请求路由到目标服务器处理。所谓客户端负载均衡,比如我们要说的Ribbon,服务消费者客户端会有一个服务器地址列表,调用方在请求前通过一定的负载均衡算法选择一个服务器进行访问,负载均衡算法的执行是在请求客户端进行。Ribbon是Netflix发布的负载均衡器。Eureka一般配合Ribbon进行
2021-02-12 20:13:54
185
原创 SpringCloud(四)注册中心之Eureka
SpringCloud(四)注册中心之Eureka第一代 Spring Cloud 核心组件从形式上来说,Feign一个顶三,Feign = RestTemplate + Ribbon + Hystrix常用的服务注册中心:Eureka、Nacos、Zookeeper、Consul关于服务注册中心注意:服务注册中心本质上是为了解耦服务提供者和服务消费者。服务消费者 --> 服务提供者服务消费者 --> 服务注册中心 --> 服务提供者对于任何一个微服务,原则上都应存在或者
2021-02-07 20:25:17
518
1
原创 SpringCloud(三)了解了概念,现在来验证一下,玩个小案例
SpringCloud(三)了解了概念,现在来验证一下,玩个小案例案例说明按照普通方式模拟一个微服务之间的调用,后续将一步步使用Spring Cloud的组件对案例进行改造。需求:完整业务流程图:案例数据库环境准备CREATE TABLE products( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(50), #商品名称 price DOUBLE, flag VARCHAR(2), #上架状态 goods_desc VARCH
2021-02-04 22:58:37
129
1
原创 SpringCloud(二)啥玩意是SpringCloud呢
SpringCloud(二)啥玩意是SpringCloud呢Spring Cloud 是什么**[百度百科]**Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风
2021-02-03 22:52:19
183
原创 SpringCloud(一)啥玩意是微服务
SpringCloud(一)啥玩意是微服务互联网应用架构演进随着互联⽹的发展,⽤户群体逐渐扩大,⽹站的流量成倍增⻓,常规的单体架构已⽆法满⾜请求压⼒和业务的快速迭代,架构的变化势在必⾏。下⾯我们就以拉勾网的架构演进为例,从最开始的单体架构分析,⼀步步的到现在的微服务架构。淘宝:LAMP,Linux、Apache、MySQL、PHP单体应用架构在诞⽣之初,⽤户量、数据量规模都⽐较⼩,项目所有的功能模块都放在一个工程中编码、编译、打包并且部署在一个Tomcat容器中的架构模式就是单体应用架构,这样的架
2021-02-03 22:49:07
120
原创 SpringBoot(六)实操玩一下
SpringBoot(六)实操玩一下新增德鲁伊连接池<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.3</version></dependency>#配置端口号server.port=8090#MySQL数据库连接配置spring.dataso
2021-02-02 20:17:40
101
原创 SpringBoot(五)视图技术(Thymeleaf)
SpringBoot(五)视图技术(Thymeleaf)前端模板引擎技术的出现,使前端开发人员无需关注后端业务的具体实现,只关注自己页面的呈现效果即可,并且解决了前端代码错综复杂的问题、实现了前后端分离开发。Spring Boot框架对很多常用的模板引擎技术(如:FreeMarker、Thymeleaf、Mustache等)提供了整合支持Spring Boot不太支持常用的JSP模板,并且没有提供对应的整合配置,这是因为使用嵌入式Servlet容器的Spring Boot应用程序对于JSP模板存在一些限
2021-02-01 23:00:16
812
原创 SpringBoot(四)SpringBoot整合Redis
SpringBoot(四)SpringBoot整合Redis<!-- redis依赖包 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>#配置连接Redis#主机地址spring.redis
2021-02-01 22:58:58
82
原创 SpringBoot(三)SpringBoot整合MyBatis
SpringBoot(三)SpringBoot整合MyBatisMyBatis 是一款优秀的持久层框架,Spring Boot官方虽然没有对MyBatis进行整合,但是MyBatis团队自行适配了对应的启动器,进一步简化了使用MyBatis进行数据的操作因为Spring Boot框架开发的便利性,所以实现Spring Boot与数据访问层框架(例如MyBatis)的整合非常简单,主要是引入对应的依赖启动器,并进行数据库相关参数设置即可创建与数据库表相对应的实体类public class Comme
2021-02-01 22:58:05
389
1
原创 SpringBoot(二)依赖管理和自动配置
SpringBoot(二)依赖管理和自动配置传统的Spring框架实现一个Web服务,需要导入各种依赖JAR包,然后编写对应的XML配置文件等,相较而言,Spring Boot显得更加方便、快捷和高效。那么,Spring Boot究竟如何做到这些的呢?接下来分别针对Spring Boot框架的依赖管理、自动配置通过源码进行深入分析依赖管理问题:(1)为什么导入dependency时不需要指定版本?在Spring Boot入门程序中,项目pom.xml文件有两个核心依赖,分别是spring-boot
2021-02-01 22:56:18
438
原创 SpringBoot(一)基本应用(项目创建、配置文件、自定义类等等)
SpringBoot(一)基本应用约定优于配置Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring.
2021-01-31 16:05:09
720
原创 RabbitMQ(十)RabbitMQ集群
RabbitMQ(十)RabbitMQ集群rabbitmq有3种模式,但集群模式是2种。详细如下:单一模式:即单机情况不做集群,就单独运行一个rabbitmq而已。之前我们一直在用普通模式:默认模式,以两个节点(A、B)为例来进行说明当消息进入A节点的Queue后,consumer从B节点消费时,RabbitMQ会在A和B之间创建临时通道进行消息传输,把A中的消息实体取出并经过通过交给B发送给consumer当A故障后,B就无法取到A节点中未消费的消息实体如果做了消息持久化,那么得等
2021-01-26 22:21:50
275
原创 RabbitMQ(九)死信队列AND延迟队列
RabbitMQ(九)死信队列AND延迟队列死信队列DLX(Dead Letter Exchanges)死信交换机/死信邮箱,当消息在队列中由于某些原因没有被及时消费而变成死信(dead message)后,这些消息就会被分发到DLX交换机中,而绑定DLX交换机的队列,称之为:“死信队列”消息没有被及时消费的原因:消息被拒绝(basic.reject/ basic.nack)并且不再重新投递 requeue=false消息超时未消费达到最大队列长度spring-rabbitmq-p
2021-01-26 22:18:12
125
原创 RabbitMQ(八)RabbitMQ的过期时间TTL
RabbitMQ(八)RabbitMQ的过期时间TTLTime To Live:生存时间、还能活多久,单位毫秒在这个周期内,消息可以被消费者正常消费,超过这个时间,则自动删除(其实是被称为dead message并投入到死信队列,无法消费该消息)RabbitMQ可以对消息和队列设置TTL通过队列设置,队列中所有消息都有相同的过期时间对消息单独设置,每条消息的TTL可以不同(更颗粒化)设置队列TTLspring-rabbitmq-producer.xml<!--重新配置队列--
2021-01-26 22:17:18
291
原创 RabbitMQ(七)RabbitMQ还有消费端限流
RabbitMQ(七)RabbitMQ还有消费端限流在沙漠中行走,3天不喝水,突然喝水,如果使劲喝,容易猝死,要一口一口慢慢喝我们 Rabbitmq 服务器积压了成千上万条未处理的消息,然后随便打开一个消费者客户端,就会出现这样的情况: 巨量的消息瞬间全部喷涌推送过来,但是单个客户端无法同时处理这么多数据,就会被压垮崩溃所以,当数据量特别大的时候,我们对生产端限流肯定是不科学的,因为有时候并发量就是特别大,有时候并发量又特别少,这是用户的行为,我们是无法约束的所以我们应该对消费端限流
2021-01-26 22:16:34
180
原创 RabbitMQ(六)谈一谈RabbitMQ的消息成功确认机制
RabbitMQ(六)谈一谈RabbitMQ的消息成功确认机制在实际场景下,有的生产者发送的消息是必须保证成功发送到消息队列中,那么如何保证成功投递呢?事务机制发布确认机制事务机制AMQP协议提供的一种保证消息成功投递的方式,通过信道开启 transactional 模式并利用信道 的三个方法来实现以事务方式 发送消息,若发送失败,通过异常处理回滚事务,确保消息成功投递channel.txSelect(): 开启事务channel.txCommit() :提交事务channe
2021-01-25 12:24:49
263
原创 RabbitMQ(五)用Spring玩一下RabbitMQ
RabbitMQ(五)用Spring玩一下RabbitMQ五种消息模型,在企业中应用最广泛的就是最后一种:定向匹配topicSpring AMQP 是基于 Spring 框架的AMQP消息解决方案,提供模板化的发送和接收消息的抽象层,提供基于消息驱动的 POJO的消息监听等,简化了我们对于RabbitMQ相关程序的开发。生产端工程<dependencies> <dependency> <groupId>org.springframewo
2021-01-25 12:23:58
76
原创 RabbitMQ(四)玩一玩RabbitMQ的持久化
RabbitMQ(四)玩一玩RabbitMQ的持久化消息的可靠性是RabbitMQ的一大特色,那么RabbitMQ是如何避免消息丢失?消费者的ACK确认机制,可以防止消费者丢失消息万一在消费者消费之前,RabbitMQ服务器宕机了,那消息也会丢失想要将消息持久化,那么 路由和队列都要持久化 才可以生产者public class Sender { public static void main(String[] args) { //获得连接
2021-01-25 12:23:24
155
原创 RabbitMQ(三)聊一聊RabbitMQ的模式
RabbitMQ(三)聊一聊RabbitMQ的模式RabbitMQ模式RabbitMQ提供了6种消息模型,但是第6种其实是RPC,并不是MQ,因此我只写了前5种5种消息模型,大体分为两类:1和2属于点对点3、4、5属于发布订阅模式(一对多)点对点模式:P2P(point to point)模式包含三个角色:消息队列(queue),发送者(sender),接收者(receiver)每个消息发送到一个特定的队列中,接收者从中获得消息队列中保留这些消息,直到他们被消费或超时特点
2021-01-25 12:22:41
179
原创 RabbitMQ(二)安装来玩一下
RabbitMQ(二)安装来玩一下想要安装RabbitMQ,必须先安装erlang语言环境,类似安装tomcat,必须先安装JDK安装rpm -ivh erlang-21.3.8.16-1.el7.x86_64.rpmrpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpmrpm -ivh rabbitmq-server-3.8.6-1.el7.noarch.rpm启动后台管理插件rabbitmq-plugins enable rabbitmq_manage
2021-01-25 12:20:03
82
原创 RabbitMQ(一)简单来个自我介绍
RabbitMQ(一)简单来个自我介绍MQ(Message Queue)消息队列消息队列中间件,是分布式系统中的重要组件主要解决,异步处理,应用解耦,流量削峰等问题从而实现高性能,高可用,可伸缩和最终一致性的架构使用较多的消息队列产品:RabbitMQ,RocketMQ,ActiveMQ,ZeroMQ,Kafka等异步处理用户注册后,需要发送验证邮箱和手机验证码;将注册信息写入数据库,发送验证邮件,发送手机,三个步骤全部完成后,返回给客户端应用解耦场景:订单系统需要通知库存系统如果库
2021-01-25 12:18:41
235
原创 FastDFS(四)玩个案例练练手
FastDFS(四)玩个案例练练手搭建图片服务器Nginx模块安装 (Storage)tar -zxvf fastdfs-nginx-module_v1.16.tar.gz修改 config 文件,将文件中的 /usr/local/ 路径改为 /usr/ngx_addon_name=ngx_http_fastdfs_moduleHTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"NGX_ADDON_SRCS="$NGX_ADDON_SRCS
2021-01-23 15:00:41
99
原创 FastDFS(三)Java实现文件上传下载
FastDFS(三)Java实现文件上传下载<dependencies> <!--fastdfs的java客户端--> <dependency> <groupId>net.oschina.zcx7878</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.27.0.0&
2021-01-23 14:59:51
155
原创 FastDFS(二)安装及使用
FastDFS(二)安装及使用安装安装gcc(编译时需要)yum install -y gcc gcc-c++安装libevent(运行时需求)yum -y install libevent安装 libfastcommonlibfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS运行所需要的一些基础库。上传 libfastcommon-master.zip 到 /usr安装解压zip包的命令: yum install -y unzip解压包:
2021-01-23 14:59:07
178
原创 FastDFS(一)分布式文件系统
FastDFS(一)分布式文件系统什么是文件系统文件数据是如何存储的??分布式文件系统一台电脑存储量有限,并且并发吞吐量也有限,如何提高性能?一吨货物,我要运送到吐鲁番:1个人运,不敢想象50个人运,太难了500个人运,每个人都很轻松这里面有集群的概念,也有分布式的概念,二者不要混淆分布式:不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署不同的服务器上。解决高并发的问题集群:同一个业务部署在多台服务器上,提高系统的高可用栗子:
2021-01-23 14:58:23
235
原创 Redis(十)小案例实战(秒杀哦~~~~)
Redis(十)小案例实战(秒杀哦~~~~)非分布式环境下秒杀,分布式高并发情况下会出现问题<packaging>war</packaging><properties> <!--配置运行环境--> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.encoding>UTF-8&l
2021-01-20 21:28:59
245
原创 Redis(九)Jedis
Redis(九)Jedis<dependencies> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.1.0</version> </dependency></dependencies>连接
2021-01-20 21:27:53
264
1
原创 Redis(八)配置文件【来自于翻译软件。。。。】
Redis(八)配置文件# Redis 配置文件示例# 注意单位: 当需要配置内存大小时, 可能需要指定像1k,5GB,4M等常见格式## 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 1024*1024*1024 bytes## 单位是对大小写不敏感的 1GB 1Gb 1
2021-01-18 22:55:20
70
原创 Redis(七)主从复制
Redis(七)主从复制就是 redis集群的策略配从(库)不配主(库):小弟可以选择谁是大哥,但大哥没有权利去选择小弟读写分离:主机写,从机读一主二仆准备三台服务器,并修改redis.confbind 0.0.0.0启动三台redis,并查看每台机器的角色,都是masterinfo replication测试开始首先,将三个机器全都清空,第一台添加值mset k1 v1 k2 v2其余两台机器,复制(找大哥)slaveof 192.168.204.141 6379
2021-01-18 22:54:17
145
1
原创 Redis(六)发布订阅
Redis(六)发布订阅进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。例如:微信订阅号订阅一个或多个频道127.0.0.1:6379> subscribe cctv1 cctv5 vvtv6 #订阅频道Reading messages... (press Ctrl-C to quit)1) "subscribe"2) "cctv1"3) (integer) 11) "subscribe"2) "cctv5"3) (integer) 21)
2021-01-18 22:53:24
40
原创 Redis(五)事务
Redis(五)事务可以一次执行多个命令,是一个命令组,一个事务中,所有命令都会序列化(排队),不会被插队;一个队列中,一次性,顺序性,排他性的执行一系列命令三特性:隔离性:所有命令都会按照顺序执行,事务在执行的过程中,不会被其他客户端送来的命令打断没有隔离级别:队列中的命令没有提交之前都不会被实际的执行,不存在“事务中查询要看到事务里的更新,事务外查询不能看到”这个头疼的问题不保证原子性:冤有头债有主,如果一个命令失败,但是别的命令可能会执行成功,没有回滚三步走:开启multi入队
2021-01-18 22:52:44
109
原创 Redis(四)持久化
Redis(四)持久化RDBRedis DataBase在指定的时间间隔内,将内存中的数据集的快照写入磁盘;默认保存在/usr/local/bin中,文件名dump.rdb;自动备份redis是内存数据库,当我们每次用完redis,关闭linux时,按道理来说,内存释放,redis中的数据也会随之消失为什么我们再次启动redis的时候,昨天的数据还在,并没有消失呢?正是因为,每次关机时,redis会自动将数据备份到一个文件中 :/usr/local/bin/dump.rdb接下来我们就来全
2021-01-17 20:51:25
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人