分布式
文章平均质量分 84
分布式架构相关技术
恒哥~Bingo
继续学习~~~
展开
-
使用动态代理+Netty+Zookeeper+Protobuff手撸一个RPC框架
RPC是一种计算机之间的远程调用技术,客户端能够在不知道服务器底层的通信架构的情况下调用服务器端的方法,就像调用自身的方法一样。那RPC的底层是如何实现的呢?本文会带大家自己完成一个RPC框架。原创 2022-12-12 15:58:13 · 1433 阅读 · 1 评论 -
Redis并发问题(雪崩、击穿、穿透)
Redis作为目前最火的NoSQL数据库,在大量互联网企业作为重要的核心技术,Redis作为数据库的缓存,在高并发情况下也会出现各种问题,下面我们来了解这些问题以及解决方案,这些也是程序员面试时的高频问题。原创 2022-10-31 10:58:26 · 1336 阅读 · 2 评论 -
使用Lua+Redis+OpenResty实现电商首页并发优化
在Nginx中使用Lua脚本实现MySQL和Redis的读写,提高首页的并发性能。原创 2022-06-16 16:28:02 · 598 阅读 · 0 评论 -
Lua+Redis+OpenResty实现电商详情页
Lua+Redis+OpenResty实现电商详情页原创 2022-04-15 14:07:15 · 3371 阅读 · 0 评论 -
Lua学习(三)与Nginx整合
Openresty简介OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。OpenResty通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各原创 2022-04-06 15:39:52 · 470 阅读 · 0 评论 -
Lua学习(二)与Redis整合
Lua脚本简介Redis 在 2.6 版本中推出了脚本功能,允许开发者将 Lua 语言编写的脚本传到 Redis 中执行。使用 Lua 脚本的优点有如下几点:减少网络开销:本来需要多次请求的操作,可以一次请求完成,从而节约网络开销;原子操作:Redis 会将整个脚本作为一个整体执行,中间不会执行其它命令;复用:客户端发送的脚本会存储在 Redis 中,从而实现脚本的复用。Redis执行Lua脚本使用redis-cli登录Redis后就可以执行脚本简单的Lua脚本eval "return原创 2022-04-06 15:38:24 · 1084 阅读 · 0 评论 -
Lua学习(一)基础入门
Lua简介Lua 是由巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于1993年开发的一种轻量、小巧的脚本语言,用标准 C 语言编写,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua的特性轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能原创 2022-04-06 15:36:50 · 587 阅读 · 0 评论 -
Kafka基础整理
Kafka入门原创 2022-03-17 15:40:50 · 3084 阅读 · 0 评论 -
阿里的数据同步神器——Canal
数据增量同步工具 Canal原创 2022-02-18 17:15:12 · 18389 阅读 · 2 评论 -
Netty框架的高级概念
Netty高级概念原创 2022-02-18 16:10:17 · 513 阅读 · 0 评论 -
Netty框架的基本使用
Netty高性能网络通信框架原创 2022-02-18 16:05:57 · 2098 阅读 · 0 评论 -
Java知识点汇总
aa bb cc原创 2021-01-13 16:16:05 · 16133 阅读 · 13 评论 -
Java经典面试题汇总200道
超详细的Java知识点汇总Java经典面试题汇总Java 基础1. JDK 和 JRE 有什么区别?2. == 和 equals 的区别是什么?3. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?4. final 在 java 中有什么作用?5. java 中的 Math.round(-1.5) 等于多少?6. String 属于基础的数据类型吗?7. java 中操作字符串都有哪些类?它们之间有什么区别?8. String str="i"与 String str=原创 2021-03-03 11:35:00 · 5973 阅读 · 4 评论 -
SpringCloud Alibaba(七)Seata 分布式事务
Seata简介在传统的单体项目中,我们使用@Transactional注解就能实现基本的ACID事务了。但是前提是:1) 数据库支持事务(如:MySQL的innoDB引擎)2) 所有业务都在同一个数据库中执行随着微服务架构的引入,需要对数据库进行分库分表,每个服务拥有自己的数据库,这样传统的事务就不起作用了,那么我们如何保证多个服务中数据的一致性呢?这样就出现了分布式事务,而Seata就是为微服务架构而生的一种高性能、易于使用的分布式事务解决方案。Seata 中有三个基础组件:Tra原创 2021-06-14 15:27:08 · 1730 阅读 · 10 评论 -
SpringCloud Alibaba 入坑(六)@SentinelResource注解
目录前言@SentinelResource限流处理处理降级总结前言上一篇 SpringCloud Alibaba 入坑(五)Sentinel高级流控规则本章我们来学习Sentinel的一个重要注解:@SentinelResource@SentinelResourceSentinel提供了@SentinelResource来处理限流、熔断降级注解的配置基于AOP实现,需要添加Aspect配置@Configurationpublic class SentinelAspectConfig.原创 2020-12-18 16:53:10 · 442 阅读 · 4 评论 -
SpringCloud Alibaba 入坑(五)Sentinel高级流控规则
目录前言流控模式直接关联链路流控效果快速失败Warm Up排队等待总结前言上一篇 SpringCloud Alibaba 入坑(四)Sentinel基本流控规则上篇文章介绍了Sentinel的基本流控规则,本章我们将学习流控的更多高级玩法。流控模式打开流控的高级选项,可以看到流控模式和流控效果两个选项。直接默认的流控模式是直接,流控效果是快速失败。如果看过上篇文章就比较好理解,直接就是直接访问上面的资源,快速失败就是效果是访问失败直接出现限流的文字。关联我们再看看关联是什么,微.原创 2020-12-07 16:54:21 · 486 阅读 · 1 评论 -
SpringCloud Alibaba 入坑(四)Sentinel基本流控规则
目录前言什么是流控流控入门基本流控规则流控测试总结前言上一篇 SpringCloud Alibaba 入坑(三)Sentinel入门上篇文章介绍了Sentinel的基本用法,本章我们开始学习重点:Sentinel的流控规则什么是流控流控就是流量控制,那么为什么要进行流控呢?因为大型互联网应用都会有大量的用户流量,当遇到了某些特殊的时间节点,如:双十一秒杀、春节抢票等,大量的流量突然涌入系统,远远超过了服务器的处理能力,服务器可能直接宕机,造成整个系统不可用。那么对这种问题,我们就需要.原创 2020-12-07 11:13:05 · 563 阅读 · 0 评论 -
SpringCloud Alibaba 入坑(三)Sentinel入门
目录前言服务雪崩Sentinel是啥?Sentinel VS Hystrix安装Sentinel使用Sentinel总结前言上一篇 SpringCloud Alibaba 入坑(二)Nacos 配置中心上篇文章介绍了nacos作为配置注册中心,本文将介绍下组件Sentinel的用法。服务雪崩微服务架构中经常会出现多个服务级联调用的情况,如下图所示:A作为服务提供者,B作为服务消费者,B调用A,C又调用B,D又调用C,如果A出现问题,那么可能导致B调用失败,B出现问题又会导致C调用失.原创 2020-12-03 14:57:46 · 713 阅读 · 3 评论 -
SpringCloud Alibaba 入坑(二)Nacos 配置中心
文章目录前言nacos配置中心介绍使用步骤总结前言SpringCloud Alibaba 入坑(一)Nacos 服务注册与发现上篇文章介绍了nacos作为服务注册中心的用法,本文将介绍下nacos作为配置中心的用法。nacos配置中心介绍入坑Spring Cloud Alibaba后发现的nacos确实很强大,简单易用不说,除了做服务注册中心外,还能起来配置中心的作用,类似Spring Cloud Config的作用。不过Config需要将配置文件保存到git仓库中,nacos可以.原创 2020-12-02 10:49:36 · 591 阅读 · 0 评论 -
SpringCloud Alibaba 入坑(一)Nacos 服务注册与发现
SpringCloud Alibaba 入坑(一)Nacos 服务注册与发现第一章 Nacos 服务注册与发现文章目录SpringCloud Alibaba 入坑(一)Nacos 服务注册与发现前言SpringCloud Alibaba的主要组件使用步骤1.安装Nacos2.创建父项目3. 服务提供者4. 服务消费者5.测试总结前言随着SpringCloud Netflix组件的停止更新,大多数国内的互联网公司把目光转向Spring Cloud Alibaba,so,果断入坑,下面把学习的原创 2020-12-01 12:44:25 · 908 阅读 · 1 评论 -
SpringCloud 简介
微服务架构互联网应用架构演进 随着互联网的发展,用户群体逐渐扩大,网站的流量成倍增长,常规的单体架构已无法满足请求压力和业务的快速迭代,架构的变化势在必行。下面我们就以系统网的架构演进为例,从最开始的单体架构分析,一步步的到现在的微服务架构。单体应用架构 在诞生之初,系统的用户量、数据量规模都比较小,项目所有的功能模块都放在一个工程中编码、编译、打包并且部署在一个Tomcat容器中的架构模式就是单体应用架构,这样的架构既简单实用、便于维护,成本又低,成为了那个时代的主流架构方式。优点:原创 2021-04-05 19:05:04 · 1052 阅读 · 2 评论 -
JWT单点登录
项目开发视频:SpringCloud微服务开发入门手把手开发基于SpringBoot的员工管理系统亿度云盘~Java小白入门实战超详细的Java知识点汇总单点登录是什么SSO(Single Sign On)SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。为什么需要单点登录以前分布式系统的多个相关的应用系统,都需要分别进行登录,非常繁琐。原来登录的过程:1)用户输入账号密码2)提交到后台验证,成功后将用户存在Session中3)需要进行登录状态判原创 2021-02-24 10:09:04 · 4294 阅读 · 5 评论 -
使用Sharding-JDBC实现分库分表
超详细的Java知识点路线图Sharding-JDBC分库分表1. 概述1.1. 分库分表是什么某电商平台涉及了店铺、商品的相关业务,设计如下 数据库:通过以下SQL能够获取到商品相关的店铺信息、地理区域信息:SELECT p.*,r.[地理区域名称],s.[店铺名称],s.[信誉] FROM [商品信息] pLEFT JOIN [地理区域] r ON p.[产地] = r.[地理区域编码] LEFT JOIN [店铺信息] s ON p.id = s.[所属店铺]WHERE p.id原创 2021-06-28 16:18:35 · 1391 阅读 · 0 评论 -
微信支付的实现
电商支付流程支付过程涉及的角色用户商户电商平台微信用户支付流程下单选择支付方式扫码支付跳转订单页面微信支付开发流程https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5开发过程生成订单将订单插入平台数据库中(未支付状态)在微信下单订单,微信返回付款url将url包装到二维码用户扫码,支付微信收到钱后,通知平台,调用平台的接口平台收到支付成功消息后,更新订单状态,修改库存页面进行跳转原创 2021-02-23 17:05:19 · 1146 阅读 · 0 评论 -
SpringBoot整合RabbitMQ实现数据同步
项目开发视频:SpringCloud微服务开发入门手把手开发基于SpringBoot的员工管理系统亿度云盘~Java小白入门实战前言这篇文章主要介绍Rabbitmq的一个应用场景,以及如何使用SpringBoot进行整合。场景介绍假设某个电商系统中有商品服务负责MySQL中商品的增删改查,同时还有搜索服务负责Elasticsearch实现商品的搜索,Elasticsearch中的数据需要和MySQL中的数据进行同步。这就需要两个服务之间进行通信,使用RabbitMQ可以实现。业务流程:原创 2021-01-29 17:22:14 · 1627 阅读 · 1 评论 -
RabbitMQ的五种消息队列
项目开发视频:SpringCloud微服务开发入门手把手开发基于SpringBoot的员工管理系统亿度云盘~Java小白入门实战前言RabbitMQ的几种消息队列模型是学习的重点哦,赶快学起来吧!五种消息模型RabbitMQ提供了多种消息模型,官网上第6种是RPC不属于常规的消息队列。属于消息模型的是前5种:Hello World 模型,简单的一对一工作队列模型 ,一个生产者将消息分发给多个消费者发布/订阅模型 ,生产者发布消息,多个消费者同时收取路由模型 ,生产者通过关键字发原创 2021-01-29 16:45:03 · 1897 阅读 · 0 评论 -
RabbitMQ的安装
项目开发视频:SpringCloud微服务开发入门手把手开发基于SpringBoot的员工管理系统亿度云盘~Java小白入门实战前言还不会MQ吗?赶快学起来!本文将介绍消息队列的概念和作用,还有RabbitMQ的安装和基本使用。消息队列概念消息队列(Message Queue)简称MQ,简单来说就是一种消息的容器,作用是采用FIFO(先入先出)的方式实现程序之间(服务、进程、线程)的消息通信。消息队列的作用MQ的作用有:1)解耦分布式系统都由N个系统组成,系统之间需要互相调用,如A原创 2021-01-28 16:47:21 · 867 阅读 · 0 评论 -
SpringBoot整合Elasticsearch
项目开发视频:SpringCloud微服务开发入门手把手开发基于SpringBoot的员工管理系统亿度云盘~Java小白入门实战前言本文介绍在SpringBoot项目中如何使用Elasticsearch来实现搜索。SpringBoot整合ES添加依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId>原创 2021-01-28 14:55:46 · 921 阅读 · 0 评论 -
Elasticsearch的安装和基本使用
项目开发视频:SpringCloud微服务开发入门手把手开发基于SpringBoot的员工管理系统亿度云盘~Java小白入门实战前言Elasticsearch作为主流的搜索引擎,在分布式系统中占据着不可或缺的地位,文章重点介绍它的安装和使用。Elasticsearch介绍Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源原创 2021-01-28 14:17:54 · 1454 阅读 · 0 评论 -
SpringBoot整合Redis实现声明式缓存
项目开发视频:SpringCloud微服务开发入门手把手开发基于SpringBoot的员工管理系统亿度云盘~Java小白入门实战前言掌握了Redis的几大数据类型后,本章我们将学习在Java项目中如何使用Redis实现缓存。编程式缓存通过SpringBoot整合Redis的方式来实现缓存商品。1)导入Redis依赖<dependency> <groupId>org.springframework.boot</groupId> <a原创 2021-01-27 16:57:27 · 561 阅读 · 0 评论 -
Redis事务+分布式锁+持久化策略+淘汰策略
事务持久化策略淘汰策略事务Redis提供的事务是将多个命令打包,然后一次性、按照先进先出的顺序(FIFO)有序的执行。在执行过程中不会被打断(在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中),当事务队列中的所以命令都被执行(无论成功还是失败)完毕之后,事务才会结束。multi 启动事务exec 提交事务discard 放弃事务watch 监视一个或多个键,如果监视期间有其他客户端修改键的值,将会失败应用场景:商品秒杀,假设缓存中商品数量为10,有100原创 2021-01-28 10:19:01 · 2426 阅读 · 5 评论 -
Redis入门HelloWorld
Redis简介Redis是一个高性能的内存数据库,以key-value方式存储数据,可以作为缓存使用。Redis的特点:性能高支持多种存储类型丰富的特性(发布订阅、事务、过期策略等)支持持久化单线程Redis安装和使用安装RedisLinux安装先安装gcc编译器,可以用来编译c、c++等代码yum -y install gcc //-y表示自动安装安装Rediswget http://download.redis.io/releases/redis-3.2.5.tar.gz /原创 2021-01-27 16:56:57 · 362 阅读 · 0 评论