自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式缓存 --redis -- 大量数据储存及写(分片集群)

搭建分片集群主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决:海量数据存储问题高并发写的问题使用分片集群可以解决上述问题,如图:分片集群特征:集群中有多个master,每个master保存不同数据每个master都可以有多个slave节点master之间通过ping监测彼此健康状态客户端请求可以访问集群任意节点,最终都会被转发到正确节点散列插槽插槽原理Redis会把每一个master节点映射到0~16383共16384个插槽(hash slot)上,查看

2022-05-25 14:24:32 1142 1

原创 分布式缓存 --redis --哨兵机制(故障恢复)

Redis哨兵Redis提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。哨兵原理集群结构和作用哨兵的结构如图:哨兵的作用如下:监控:Sentinel 会不断检查您的master和slave是否按预期工作自动故障恢复:如果master故障,Sentinel会将一个slave提升为master。当故障实例恢复后也以新的master为主通知:Sentinel充当Redis客户端的服务发现来源,当集群发生故障转移时,会将最新信息推送给Redis的客户端集群监控原理Senti

2022-05-25 14:06:37 594

原创 分布式缓存 --redis -- 高并发(主从框架读写分离)

Redis主从搭建主从架构单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。主从数据同步原理全量同步主从第一次建立连接时,会执行全量同步,将master节点的所有数据都拷贝给slave节点,流程:这里有一个问题,master如何得知salve是第一次来连接呢??有几个概念,可以作为判断依据:Replication Id:简称replid,是数据集的标记,id一致则说明是同一数据集。每一个master都有唯一的replid,slav

2022-05-25 11:23:34 355

原创 分布式缓存 --Redis--持久化 (RDB 、 AOF)

分布式缓存-redisredis 9种数据结构由5种最基本的数据结构(String、List、Hash、Set、Sorted Set(zset)) 加 bitmap、geohash、hyperloglog、streams 组成。– 基于Redis集群解决单机Redis存在的问题Redis持久化Redis有两种持久化方案:RDB持久化AOF持久化RDB持久化RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把

2022-05-25 10:53:29 212

原创 分布式缓存 -- Redis -- 集群搭建(主从、哨兵、分片)

基于CentOS7下的Redis集群教程,包括:单机安装RedisRedis主从Redis分片集群单机安装Redis首先需要安装Redis所需要的依赖:yum install -y gcc tcl解压缩:tar -zxvf redis-6.2.4.tar.gz解压后:进入redis目录:cd redis-6.2.4运行编译命令:make && make install如果没有出错,应该就安装成功了。redis-cli redis-server

2022-05-25 09:57:26 625

原创 实时流式计算-- Kafka Stream

实时流式计算

2022-05-23 11:09:08 1360

原创 任务调度--SpringTask // 分布式任务调度--Xxl-Job

分布式任务调度

2022-05-23 09:49:44 2642 1

原创 中间件--Kafka

kafka MQ软件数据库:mysql oracle redis mongo ESMQ: activeMQ RabbitMQ RockectMQ zeroMQ Kafkakafka介绍Kafka 是一个分布式流媒体平台 这里的流指的是源源不断的数据kafka官网:http://kafka.apache.org/(1)流媒体平台有三个关键功能:发布和订阅记录流,类似于消息队列或企业消息传递系统。以容错的持久方式存储记录流。 kafka中的数据即使消费后也不会消失

2022-05-11 10:30:14 1206

原创 ELK-- elasticsearch -- DSL、RestClient查询文档

DSL查询文档elasticsearch的查询依然是基于JSON风格的DSL来实现的。DSL查询分类Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括:查询所有:查询出所有数据,一般测试用。例如:match_all全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。例如:match_querymulti_match_query #多域查询精确查询:根据精确词条值

2022-05-02 22:30:20 570

原创 ELK -- elasticsearch -- Index、Document的DSL语句及RestAPI的CIUD

索引库操作索引库就类似数据库表,mapping映射就类似表的结构。我们要向es中存储数据,必须先创建“库”和“表”。mapping映射属性mapping是对索引库中文档的约束,常见的mapping属性包括:type:字段数据类型,常见的简单类型有:字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)数值:long、integer、short、byte、double、float、布尔:boolean日期:date对象:objectindex:是否

2022-05-02 15:03:11 282 1

原创 SpringCloud --分布式事务 -- Seata

分布式事务本地事务本地事务特征本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则:ACID事务的隔离级别1.读未提交(Read uncommitted)这种事务隔离级别下,select语句不加锁。此时,可能读取到不一致的数据,即“读脏 ”。这是并发最高,一致性最差的隔离级别。2.读已提交(Read committed)可避免 脏读 的发生。在互联网大数据量,高并发量的场景下,几乎 不会使用 上述两种隔离级别。3.可重复读(Repeatable read)M

2022-04-28 17:13:16 1820 1

原创 SpringCloud-- SpringCloudAlibaba--Nacos

使用nacosSpringCloudAlibaba•Nacos(Dynamic Naming and Configuration Service) 是阿里巴巴2018年7月开源的项目。•它专注于服务发现和配置管理领域 致力于帮助您发现、配置和管理微服务。Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理。•一句话概括就是Nacos = Spring Cloud注册中心 + Spring Cloud配置中心。安装nacosnacos安装包复制到没有中文没有空格的目录,然后解压缩进入na

2022-04-28 11:17:10 154

原创 SpringCloud --组件 -- SpringCloudConfig(配置中心)

集中配置组件SpringCloudConfigSpring Cloud Config简介​ 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client。​ Config S

2022-04-28 09:44:34 366

原创 SpringCloud--小知识点--跨域问题、bootstrap.yml、SpringBoot多环境配置切换

跨域问题什么是跨域问题跨域:域名不一致就是跨域,主要包括:www.taobao.com 发送了一个ajax请求 www.taobao.org域名不同: www.taobao.com 和 www.taobao.org 和 www.jd.com 和 miaosha.jd.com域名相同,端口不同:localhost:8080和localhost:8081跨域问题:浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题引起跨域问题有两个原因:1、域名不一样+2、ajax异步

2022-04-28 09:20:58 1846 1

原创 SpringCloud--组件--Gateway(网关)

Gateway网关Gateway-概述网关旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。在微服务架构中,不同的微服务可以有不同的网络地址,各个微服务之间通过互相调用完成用户请求,客户端可能通过调用N个微服务的接口完成一个用户请求。存在的问题: 1.客户端多次请求不同的微服务,增加客户端的复杂性 2.认证复杂,每个服务都要进行认证 3.http请求不同服务次数增加,性能不高网关就是系统的入口,封装了应用程序的内部结构,为客户端提供统一服务,一些与业务本身功能无关的公共逻

2022-04-27 21:33:04 294

原创 Spring Cloud --组件 -- Feign(远程调用)

微服务间的远程调用

2022-04-27 19:45:00 291

原创 Spring Cloud --组件 -- Hystrix(熔断器)

Hystrix 熔断器简介Hystix,中文意思是豪猪,全身是刺,看起来就不好惹,是一种保护机制。保护的微服务之间的调用Hystrix也是Netflix公司的一款组件。主页:https://github.com/Netflix/Hystrix/那么Hystix的作用是什么呢?具体要保护什么呢?Hystix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败。雪崩问题微服务中,服务间调用关系错综复杂,一个请求,可能需要调用多个微服务接口才能实现,会形成非

2022-04-27 15:16:41 373

原创 Spring Cloud --组件 --Ribbon(负载均衡)

Ribbon负载均衡@LoadBalanced注解,可实现负载均衡功能,这是什么原理呢?负载均衡原理SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。那么我们发出的请求明明是http://userservice/user/1,怎么变成了http://localhost:8081的呢?源码跟踪为什么我们只输入了service名称就可以访问了呢?之前还要获取ip和端口。显然有人帮我们根据service名称,获取到了服务实例的ip和端口。它就是LoadBala

2022-04-27 14:54:11 304

原创 SpringCloud --组件 --Eureka(注册中心)

Eureka注册中心是Netflix公司出品,英文直译:发现了,找到了!认识EurekaEureka做什么?Eureka负责管理、记录服务提供者的信息。服务调用者无需自己寻找服务,而是把自己的需求告诉Eureka,然后Eureka会把符合你需求的服务告诉你。同时,服务提供方与Eureka之间通过“心跳”机制进行监控,当某个服务提供方出现问题,Eureka自然会把它从服务列表中剔除。这就实现了服务的自动注册、发现、状态监控。原理图基本架构:renewal:续约Eureka-S

2022-04-27 12:09:29 287

原创 Spring Cloud --简介

初识SpringCloud微服务是一种架构方式,最终肯定需要技术架构去实施。微服务的实现方式很多,但是最火的莫过于Spring Cloud了。为什么?后台硬:作为Spring家族的一员,有整个Spring全家桶靠山,背景十分强大。技术强:Spring作为Java领域的前辈,可以说是功力深厚。有强力的技术团队支撑,一般人还真比不了群众基础好:可以说大多数程序员的成长都伴随着Spring框架,试问:现在有几家公司开发不用Spring?SpringCloud与Spring的各个框架无缝整合,对大家来说

2022-04-27 09:56:04 252

原创 分布式--SOA、微服务--服务调用方式

服务调用方式RPC和HTTP无论是微服务还是SOA,都面临着服务间的远程调用。那么服务间的远程调用方式有哪些呢?常见的远程调用方式有以下2种:RPC:Remote Produce Call远程过程调用,类似的还有RMI(remote method invoke)。自定义数据格式,基于原生TCP通信,速度快,效率高。早期的webservice(WS),现在热门的dubbo,都是RPC的典型代表.Http:http其实是一种网络传输协议,基于TCP,规定了数据传输的格式。现在客户端浏览器与服务

2022-04-27 09:49:08 451

原创 系统框架的演变

系统框架的演变及优缺点

2022-04-26 16:44:57 153

原创 中间件 -- RabbitMQ

RabbitMQ消息队列(message queue)消息中间件有很多:RabbitMQ是其中的一款同步和异步通讯微服务间通讯有同步和异步两种方式:同步通讯:就像打电话,需要实时响应。异步通讯:就像发微信,不需要马上回复。两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送微信可以同时与多个人收发微信,但是往往响应会有延迟。同步通讯同步方式,虽然调用可以实时得到结果,但存在下面的问题:总结:同步调用的优点:时效性较强,可以立即得到结果同步调用的问题:

2022-04-14 18:15:53 615

原创 MongoDB数据库

MongoDB1)MongoDB介绍对于社交类软件的功能,我们需要对它的交友/圈子功能特点做分析:每天发布圈子的动态为海量数据读多写少数据价值较低,对事物性要求不高……针对以上特点,我们来分析一下:mysql:关系型数据库,性能较差redis:内存成本高对于数据量大而言,显然不能够使用关系型数据库和内存数据库进行存储,我们需要通过MongoDB进行存储探花交友项目:mysql数据库:存储用户信息等重要数据redis数据:提高热点数据的查询速度mongodb:

2022-04-01 15:22:59 5690

原创 docker的安装及使用

1 Docker概述我们写的代码会接触到好几个环境:开发环境、测试环境以及生产环境等等。多种环境去部署同一份代码,由于环境原因往往会出现软件跨环境迁移的问题(也就是**“水土”不服**)我们可以将工程及此工程依赖的所有软件打包到一个容器中统一部署1.1 docker概念Docker 是一个开源的应用容器引擎Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。诞生于 2013 年初,基于 Go 语言实现, dotCloud

2022-03-25 19:40:21 3085

原创 git的安装及与idea的集成及使用方法

git简介1. 什么是版本控制本章节学习目标: 什么是版本控制 为什么要进行版本控制 常用的版本控制工具什么是版本控制版本控制(Revision control)是一种软件工程技巧籍以在开发的过程中,确保由不同人所编辑的同一档案(项目代码)都得到更新。为什么要版本控制查看以往的代码修改记录及变化恢复到历史某个时间的代码协同开发时,合并同一文件中不同开发者写的代码协同开发时定位修改代码的责任人统计工作任务量备份源代码项目分享常用的版本控制工具CVS:早期版本管

2022-03-19 21:27:36 2092

原创 SSM框架 -- SpringMVC&Spring&Mybatis整合

SSM整合S:springmvc S:spring m:mybatis意义:Web层:springmvcService层:spring(对象的创建 aop事务)Dao层:mybatis步骤:整合(自己能写出来):1 单独测试service层 让spring先跑起来 坐标 配置文件(application) UserSerivice--UserServiceImpl--findAll()2 单独测试dao层 让mybatis先跑起来

2022-03-13 20:16:07 1315

原创 SSM框架 -- SpringMVC -- 异常处理器、拦截器

SpringMVC一 springmvc的统一异常处理器定义统一异常处理步骤1 创建错误页面2 创建类实现接口HandlerExceptionResolver3 配置异常处理器(交给spring容器管理)MyExceptionpackage cn.itcast.exception;import org.springframework.web.servlet.HandlerExceptionResolver;import org.springframework.web.servlet.

2022-03-13 20:13:21 600

原创 SSM框架 -- SpringMVC

SpringMVCSpringMVC简介1: avaEE三层结构Web层:接受页面的请求参数servlet 封装参数到javabean 给页面做响应jsp service层: 处理业务 处理事务 spring框架dao层:用来和数据库进行交互 mybatis框架 springmvc框架是对web层的封装 市面又称它为mvc框架作用:将逻辑,业务,视图相分离的一种思想 各自专注于做自己的事情M: model(模型) javabeanV: VIEW(视图) jsp

2022-03-13 17:46:28 660

原创 Mybatis框架 -- 逆向工程(自动生成pojo(实体)、mapper(接口)以及mapper.xml(映射))

Mybatis逆向工程Mybatis是目前非常流行的持久层框架,其逆向工程更是大大缩减了我们的开发时间。所谓mybatis逆向工程,就是Mybatis会根据我们设计好的数据表,自动生成pojo(实体)、mapper(接口)以及mapper.xml(映射)官网地址:https://mybatis.org/generator/环境搭建1 创建工程并导入依赖创建mybatis-generator工程并导入依赖<dependencies> <dependency>

2022-03-13 15:49:05 1905

原创 SSM框架 -- Spring -- 声明式事务

Spring 声明式事务一 Spring的事务Spring的事务控制可以分为编程式事务控制和声明式事务控制(aop)。编程式开发者直接把事务的代码和业务代码耦合到一起,在实际开发中不用。声明式开发者采用配置的方式来实现的事务控制,业务代码与事务代码实现解耦合,使用的AOP思想。1.1 编程式事务【了解】spring提供了操作事务的api,让开发者可以去使用提供好的api开发使用事务1)PlatformTransactionManager–事务管理器是spring事务管理器核心接口,

2022-03-10 22:32:00 414

原创 SSM框架 -- Spring -- aop&jdbcTemplate

Spring AOP&jdbcTemplate1 sping的aop 1:aop的底层--动态代理(理解) 2: 使用spring提供好的aop做业务增强( xml 半xml半注解 ) 2 spring提供的dao操作数据库的手段--JDBCTemplate一 转账案例​ 业务代码和事务代码进行拆分,通过动态代理的方式,对业务方法进行事务的增强。这样就不会对业务层产生影响,解决了耦合性的问题啦!(在不修该原方法的基础上,对原方法进行增强)常用的动

2022-03-10 21:49:57 207

原创 Spring中集成Juint

Spring整合Junit(固定模板)Junit是一个单元测试工具类,我们只需要在普通方法上打上 @Test 标记 的地方法就可以直接运行程序了…思考:每次运行的代码都需要加载配置文件,都需要从容器中获取对象,能不能将这些spring的功能交给spring来统一解决,junit只负责测试运行程序得到结果即可整合步骤1. 导入springJunit的坐标2. 声明加载配置文件的核心运行器(SpringJunit4ClassRunner)3. 加载指定的配置文件或配置类4. 使用@Autowi

2022-03-10 17:28:06 146

原创 SSM框架--Spring---ioc(控制反转)&di(依赖注入)

Spring核心技术点: ioc di aop 声明式事务 ioc的底层实现(理解)spring提供的ioc技术帮助我们解决了程序的高耦合问题,让我们不再花费时间去关心程序的高耦合耦合关系耦合:在编程语言中,就是计算机代码之间的依赖关系代码之间的依赖关系如果很高就意味着程序高耦合,不利于后期项目的扩展开发,因此我们需要给程序松耦合高耦合—松耦合–低耦合需求 :自定义ioc的代码,实现更加松耦合的程序代码实现:webTestpublic class webTest {

2022-03-10 17:26:13 454

原创 JDBC--通过Java来访问MySQL数据库

JDBC概述JDBC: Java DataBase Connectivity---- java数据库的连接是一种专门用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问,它由一组用Java语言编写的接口组成java代码要想操作各种数据库就得使用JDBC,这是规范JDBC的由来JDBC规范定义接口,具体的实现由各大数据库厂商来实现 ,JDBC是Java访问数据库的标准规范。真正怎么操作数据库还需要具体的实现类,也就是数据库驱动(第三方JAR包)。每个数据库厂商根据自家数据库方

2022-02-12 21:53:38 376

原创 面试题-MYSQL-事务(TCL)的隔离性(四大特性)

数据库提供的技术(事务)(TCL分类)在实际的业务开发中,有些业务操作要多次访问数据库。一个业务要发送多条SQL语句给数据库执行。需要将多次访问数据库的操作视为一个整体来执行,要么所有的SQL语句全部执行成功。如果其中有一条SQL语句失败,就进行事务的回滚,所有的SQL语句全部执行失败。例如转账: 1 tom 1000 2 rose 1000 完成转账这个业务需要操作2次数据库 1.从tom的帐号上减去500 update account set money =

2022-02-12 21:25:17 281

原创 MYSQL性能优化--索引

2022-02-12 21:20:09 471

原创 MYSQL函数

MYSQL函数为了简化操作,mysql提供了大量的函数给程序员使用(比如你想输入当前时间,可以调用now()函数)函数可以出现的位置:插入语句的values()中,更新语句中,删除语句中,查询语句中。菜鸟教程:https://www.runoob.com/mysql/mysql-functions.html1.1 MYSQL字符串函数返回第一个字符的 ASCII 码函数:ASCII(s)描述:返回字符串 s 的第一个字符的 ASCII 码。实例:SELECT ASCII(CustomerNa

2022-02-09 23:19:57 134

原创 面试题--java基础知识--垃圾回收GC

垃圾回收算法标记算法对象被判定为垃圾的标准没有被其他对象引用引用计数算法(存在循环引用问题)可达性分析算法通过判断对象的引用链是否可达来决定对象是否可以被回收回收算法标记清除算法标记:从根集合进行扫描,对存活的对象进行标记清除:对堆内存从头到尾进行线性遍历,回收不可达对象内存缺点:碎片化严重复制算法分为对象面和空闲面对象在对象面上创建存活的对象被从对象面复制到空闲面将对象面所有对象内存清除特点 :1、适用于对象存活率低的场景2、解决碎片化问题3、顺序分配内存,

2022-02-04 20:32:32 396

原创 面试题--java基础知识--JVM

谈谈你对java的理解平台无关性 :一次编译,到处运行GC:垃圾回收机制 不需要手动释放堆内存语言特性 :泛型 反射 lambda表达式面向对象 :封装 继承 多态类库 :集合 并发库 网络库异常处理平台无关性:Compile Once Run Anywhere(一次编译,到处运行)如何实现Java源码首先被编译成字节码,再由不同平台的JVM进行解析,Java在不同平台运行时不需要进行重新编译,Java虚拟机在执行字节码的时候,把字节码转换成具体平台上的机器指令。JVM如何

2022-02-03 22:03:42 629

空空如也

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

TA关注的人

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