分布式架构
文章平均质量分 84
有头发的程序猿!
哪有不可逾越的大山,只有想而不敢的苟且。
后续会更新MQ,springCloud,vue,python,人不懒则路不会断,兢兢业业总好过碌碌无为。
展开
-
随手记录第十五话 -- Spring Boot 3.2.3+Grafana+Prometheus+Loki实现一套轻量级监控加日志收集系统
在当今的软件开发中,监控和日志收集是至关重要的环节。它们帮助我们了解系统额运行状况、发现潜在问题,并及时进行优化和故障排除。本文将介绍如何使用结合来构建一套轻量级的监控和日志收集系统。原创 2024-08-28 11:55:23 · 1091 阅读 · 0 评论 -
随手记录第五话 -- SpringCache搭配Redis的实现以及设置每个key的过期时间
Spring 从3.1 开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager 接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发;Cache 接口为缓存的组件规范定义,包含缓存的各种操作集合;Cache 接口下Spring 提供了各种xxxCache 的实现;如RedisCache , EhCacheCache , ConcurrentMapCache 等;...原创 2022-08-18 18:59:11 · 1946 阅读 · 0 评论 -
随手记录第四话 -- elasticsearch基于docker安装以及SpringBoot集成使用
Elasticsearch 是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化。Elasticsearch 是一个基于 Lucene 库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。Elasticsearch 是用 Java 开发的,并在 Apache 许可证下作为开源软件发布。...原创 2022-08-17 17:06:05 · 863 阅读 · 0 评论 -
随手记录第三话 --你见过哪些神乎其乎的存储方式?
作为一个后端开发,那必要的存储肯定是要的。随着业务的不同,数据类型也是各种各样,接口需要也是各种各样,存储的方式也就慢慢的多了起来。本文主要记录工作中不同的业务场景下,不同的存储方式。...原创 2022-08-17 15:11:48 · 171 阅读 · 0 评论 -
随手记录第二话 -- 高并发情况下秒杀、抢红包都有哪些实现方式?
前面说了那么多,这里总结一下前端页面控制,点击按钮控制服务端缓存控制分布式处理订单主动、惰性、定期过期这里还记录一个骚操作,例如抢红包或者抽奖算法为避免每次请求都去走计算,可以提前生成号每个位置的概率或者金额,通过redislist的随机或者顺序取,然后位置空了,则重新计算后缓存如果还有其他的方式实现的,欢迎评论区留言哦以上就是本章的全部内容了。随手记录第一话–Java中的单点登录都有哪些实现方式?随手记录第三话–学习中?旧书不厌百回读,熟读精思子自知https。.........原创 2022-07-21 17:29:53 · 853 阅读 · 0 评论 -
随手记录第一话 -- Java中的单点登录都有哪些实现方式?
在早期开发中,一家公司可能只有一个Server,什么业务都写在一起,也就是早期的Servlet。随着业务的发展,逐渐的新增了很多的业务Server,这时候每个Server都要进行注册登录的话,那对用户来说简直是奔溃级的体验。一次注册、一次登录并不困难,但如果每次都登录,应该没什么用户会选择这个系列的产品了吧!单点登录实现的难点,其实就是任意服务怎么实现根据token串获取用户信息共享,这里记录一下之前用到过的实现方式redis缓存,毫无疑问肯定是最常见的mongo、mysql等db存储,公共库。......原创 2022-07-20 17:54:45 · 1632 阅读 · 0 评论 -
SpringCloud第五话 -- Gateway实现负载均衡、熔断、限流
本文主要记录gateway实现路由转发,负载均衡,熔断和限流环境准备parent包gateway依赖springcloud版本管理2.yaml配置3.路由转发和负载均衡测试启动不同端口的user服务,然后通过gateway调用3.2 返回结果输出可以正常路由转发和负载均衡,默认策略是轮询熔断:就是通过在转发过程中失败的,从而采取的降级策略。良好的返回提示给前端。本来是想通过直接配置重定向的,奈何已经不更新了,没法兼容。直接采用一刀切算了。开启gateway和user服务访问后,然后停掉u原创 2022-07-08 17:02:17 · 4842 阅读 · 2 评论 -
SpringCloud第四话 -- OpenFeign实现模板化远程通信
本文主要记录Springboot集成OpenFeign实现模板化远程通信。对本文中内容有不了解的,建议先看前面的文章,底部有导航基于,一个order服务一个user服务1.2 yaml配置order调用端,配置的超时设置注释掉了,后面文章分享熔断限流用user服务仅需要注册远程调用依赖于注册中心,这里用的是nacos,其他的eureka也可以的客户端代码1.4.服务端暴露接口1.5.测试日志以上就是本章的全部内容了。上一篇:SpringCloud第三话 – 基于Nacos实现注册原创 2022-07-07 18:09:04 · 391 阅读 · 0 评论 -
SpringCloud第三话 -- 基于Nacos实现注册中心以及远程服务调用
本文主要记录基于Nacos实现服务注册中心和远程服务调用基于,order服务和user服务1.2 yaml配置order服务application.ymluser服务application.yml1.4 添加启动注解,需要注册到Nacos的服务都需要添加1.3 启动服务,查看控制台控制台地址,账号密码都是,查看服务列表服务详情图如果未配置,ip则显示外网ip,也会用于服务调用2.2 客户端调用代码2.3 服务端暴露接口2.4 服务调用测试访问客户端调用接口,截图原创 2022-07-07 16:29:22 · 699 阅读 · 0 评论 -
SpringCloud第二话 -- 基于Nacos实现配置中心
如果不满足上篇文章的eureka注册中心,那么本文记录的Nacos是不二之选。本文主要记录Springboot基于Nacos实现配置中心官网说明:Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。基于liunx centos7,镜像nacos/nacos-server:v2.1.0如果需要配置本地数据库的可以参考这篇文章访问,账号密码都是添加一个orderservice-dev.yaml配置,内容如下。原创 2022-07-07 15:59:34 · 965 阅读 · 5 评论 -
SpringCloud第一话 -- Eureka服务注册中心
如果在某个分布式系统中想要解决上述问题,那么这篇文章就是精华之处。回顾一下以前的常用手段:那么服务注册与发现就油然而生。Eureka是什么?Eureka是springcloud的核心模块之一,它是一个基于RestFul的服务,用于实现中间层服务发现和故障转移,Eureka对于微服务来说是非常重要的。有了Eureka后,在服务中通信只需要使用对应的服务表示,不再需要再配置文件中配一堆地址了,功能类似于dubbo的注册中心zookeeper。Eureka原理Eureka采用C/S的架构设计,所有的客户端都原创 2022-07-06 17:43:11 · 721 阅读 · 0 评论 -
mybatis第二话 - mybatis,多数据源的快乐你懂吗?
7.4 @Transactional注解测试**`大功告成,两个数据库都没有提交`**以上就是本章的全部内容了。上一篇:[mybatis第一话 - mybatis,缘分让我们相遇](https://blog.csdn.net/qq_35551875/article/details/122603585)下一篇:[mybatis第三话 - mybatis的高端用法你会吗?](https://blog.csdn.net/qq_35551875/article/details/122603797原创 2022-02-18 14:15:00 · 318 阅读 · 0 评论 -
mysql第十话 - Mybatis+Springboot3.2.3(2.5.6)之ShardingSphere-JDBC分表分库实战
官网直通车:Apache ShardingSphere 产品定位为 Database Plus,旨在构建异构数据库上层的标准和生态。它关注如何充分合理地利用数据库的计算和存储能力,而并非实现一个全新的数据库。ShardingSphere 站在数据库的上层视角,关注他们之间的协作多于数据库自身。ShardingSphere 已于 2020 年 4 月 16 日成为 Apache 软件基金会的顶级项目。原创 2022-04-20 18:14:11 · 2126 阅读 · 1 评论 -
MongoDB第二话 -- MongoDB高可用集群实现
本文主要记录MongoDB集群的搭建坏境准备:liunx centos7,docker-compose,镜像mongo:4.2.21。一主一从一仲裁,在一台机实现了2.启动容器3.初始化集群_id:对应的replSet 名称host:如果需要程序连接,需要填宿主机IParbiterOnly:true 表示该节点为仲裁节点5.模拟master节点挂掉停掉master节点,进入slave节点容器中查看状态可以看到原来的slave节点已经变成了PRIMARY主节点集群未初始化......原创 2022-06-29 11:07:12 · 568 阅读 · 0 评论 -
MongoDB第一话 -- Docker安装MongoDB以及Springboot集成MongoDB
本文主要记录MongoDB的安装及使用MongoDB是一个基于分布式文件存储的数据库,是非关系型数据库,是面向集合存储。易使用,易部署,存储非常方便。因为是面向集合存储,结构完全自定义,不需要维护关系,可以通过字段来检索。基于liunx centos7,docker-compsoe,镜像mongo.4.2.212.2 启动容器2.3 控制台界面访问ip:8081进入控制台,数据忽略基于springboot2.6.83.2 yml配置3.3 基于集合方式的存储和mysql一样,只不过不支持原创 2022-06-28 18:07:32 · 585 阅读 · 0 评论 -
MQTT第二话 -- emqx高可用集群实现
本文主要记录mqtt-emqx的高可用集群搭建基于liunx centos7,docker-comspoe,emqx:4.4.4。设置固定内网ip时,可以先通过获取指定网络的网段1.3 集群控制台界面集成代码在上篇文章MQTT第一话 – Docker安装emqx以及Springboot集成emqx有了,这里就不贴了。mqtt client连接是单地址连接的,所以集群可由nginx转发,需要注意加心跳检测,转发地址填内网IP,不需要对外开放。以上就是本章的全部内容了。上一篇:MQTT第一话 – Doc原创 2022-06-28 10:57:54 · 1775 阅读 · 0 评论 -
RocketMQ第三话 -- RocketMQ高可用集群搭建
本文主要记录RocketMQ两主两从的集群搭建liunx centos7,docker-compose,镜像apache/rocketmq:4.9.3master2和salve2复制上面内容,需要主要的是:brokerName、brokerId、brokerRole、listenPort这几个参数的不同2.3 启动2.4 java中连接测试只有配置不一样,其他无需修改2.5 控制台节点都启动的情况下,消费了一些消息,是分布消费的1.特别注意配置文件的不同和相同处2.内存大小控制,虚拟机测试原创 2022-06-27 17:42:18 · 415 阅读 · 0 评论 -
RabbitMQ第三话 -- RabbitMQ高可用集群搭建
本文主要记录RabbitMQ的高可用集群搭建。liunx centos7,docker-compose,镜像rabbitmq:3.9-management,两个节点5672和56733.初始化集群进入容易内部执行,指定某一台机器为master,master不需要执行该操作也可以使用shell脚本4.web管理控制台访问15672或者15673均为以下界面,则搭建成功RabbitMQ第二话 – Springboot基于四种Exchange......原创 2022-06-23 16:31:31 · 394 阅读 · 0 评论 -
RabbitMQ第二话 -- Springboot基于四种Exchange(Direct、Fanout、Topic、Heders、延时队列)的实现和多虚拟主机下的生产消费者实现
本文主要分享RabbitMQ exchange类型的功能和使用、RabbitMQ延时队列、一个springboot服务发送消息到多虚拟主机exchange交换机,负责分发消息,为解决消息不同的业务场景,也提供了不同的交换机类型。RabbitMQ exchange、DirectExchange、FanoutExchange、TopicExchange、HeadersExchange、RabbitMQ延时队列、多虚拟主机实现RabbitMQ第三话 – RabbitMQ高可用集群搭建.........原创 2022-06-23 15:29:34 · 579 阅读 · 0 评论 -
Zookeeper第四话 -- zookeeper高可用集群搭建
本文主要记录zookeeper集群在docker中的搭建。环境:centos7,zookeeper3.7,端口分别为2181、2182、2183。启动集群操作指令进入任意一台机容器内部其他的注意点:zookeeper的session过期默认40秒,如果客户端的超时时间小于该时间,会返回报错!以上就是本章的全部内容了。上一篇:Zookeeper第三话 – Springboot基于zk+dubbo实现远程服务调用下一篇:RabbitMQ第一话 – docker安装RabbitMQ...原创 2022-06-16 13:15:00 · 423 阅读 · 0 评论 -
Zookeeper第三话 -- Springboot基于zk+dubbo实现远程服务调用
本文主要记录springboot + zk + dubbo完成远程通信服务。坏境配置:zookeeper3.7、dubbojar包3.0.6就一个接口,一个实现,这里贴一下service接口类2.yaml配置3.pom文件基于springboot 2.5.64.service实现5.客户端controller接口6.启动服务需要添加注解,最后出现此日志视为成功以上就是本章的全部内容了。上一篇:Zookeeper第二话 – Springboot基于zk watch机制实现备用机...原创 2022-06-14 11:44:57 · 425 阅读 · 0 评论 -
Zookeeper第二话 -- Springboot基于zk watch机制实现公用配置和备用节点
Zookeeper第二话 -- Springboot基于zk watch机制实现公用配置和备用节点鉴于zk的监听还可以实现很多的功能,本内容为测试zk写出,这里仅供参考。下节分析zk的集群搭建。以上就是本章的全部内容了。上一篇:Zookeeper第一话 – docker安装zookeeper以及Springboot集成zk下一篇:Zookeeper第三话 – Springboot基于zk+dubbo实现远程服务调用......原创 2022-06-13 17:25:09 · 574 阅读 · 0 评论 -
Zookeeper第一话 -- docker安装zookeeper以及Springboot集成zk
zookeeper是一个分布式协调组件,为分布式应用提供一致性服务的软件。提供的功能包括:配置维护、域名服务、分布式同步等zookeeper服务中含有临时节点和永久的节点。临时节点当客户端和服务端断开以后,会自动删除该节点。永久节点则不会。zookeeper服务中提供了分布式独享锁,选举、队列的接口。此外zookeeper提供了观察者回调,为继续等待获取分布式锁提供了监控的能力(1.监听节点的数据变化。2.监听子节点的增减变化)。基于这个监听机制可以实现配置统一管理。......原创 2022-06-12 13:32:46 · 310 阅读 · 0 评论 -
Redis第四话 -- redis高性能原理(多路复用)和高可用分析(备份、主从)
Redis第四话 -- redis高性能原理(多路复用)和高可用分析(备份、主从)至此,三主三从的搭建到此完毕。Redis的整个内容至此就结束了,真怀念学习时候的状态!以上就是本章的全部内容了。上一篇:Redis第三话 – Springboot集成Redis以及常用API和客户端介绍)下一篇:Zookeeper第一话 – docker安装Zookeeper以及在Java中使用书山有路勤为径,学海无涯苦作舟......原创 2022-06-09 17:34:17 · 258 阅读 · 0 评论 -
Redis第三话 – Springboot集成Redis以及常用API和客户端介绍
Redis第三话 – Springboot集成Redis以及常用API和客户端介绍本文主要记录在Springboot中集成Redis的使用。基于springboot 版本2.5.6,parent包就不贴了。上一篇:Redis第二话 – Redis的高端操作(发布订阅、事务、LUA脚本)下一篇:Redis第四话 – redis分布式集群(主从,哨兵)和网络模型分析(多路复用,单Reactor模型)黑发不知勤学早,白首方悔读书迟......原创 2022-06-02 16:39:04 · 535 阅读 · 0 评论 -
Redis第二话 -- Redis的高端操作(发布订阅、事务、LUA脚本)
Redis第二话 -- Redis的高端操作(发布订阅、事务、LUA脚本)上一篇:Redis第一话 – Redis介绍以及基于Docker安装Redis下一篇:Redis第三话 – Java中使用Redis以及常用API汇总)不见只今汾水上,唯有年年秋雁飞原创 2022-05-31 17:45:09 · 291 阅读 · 0 评论 -
Redis第一话 -- Redis介绍以及基于Docker安装Redis
Redis第一话 -- Redis介绍以及基于Docker安装Redis总结数据结构选择问题:基于数据的存取时,要选择最合适、最快速、最方便取值的结构数据大小问题:因为Redis是单线程安全的,存储大数据又需要一次性取值的情况下一定要选择合适的数据结构。上一篇:通信框架之Netty第五话 - 一文了解RPC通信原理并使用Netty实现一个PRC下一篇:Redis第二话 – Java中使用Redis以及常用API汇总问渠那得清如许,为有源头活水来原创 2022-05-23 18:04:55 · 278 阅读 · 0 评论 -
通信框架之Netty第五话 - 一文了解RPC通信原理并使用Netty实现一个PRC
通信框架之Netty第五话 - 一文了解RPC通信原理并使用Netty实现一个PRC本内容仅供了解RPC源码,请勿做其他用途!!!上一篇:通信框架之Netty第四话 - Netty深入了解之简易群聊功能的实现下一篇:Redis第一话 – Redis介绍以及基于Docker安装Redis书卷多情似故人,晨昏忧乐每相亲原创 2022-05-17 17:59:13 · 770 阅读 · 2 评论 -
通信框架之Netty第四话 - Netty深入了解之简易群聊功能的实现
上述内容仅供了解使用,正式开发下肯定是要考虑多台机器的,可能channel不在同一台机,这个时候就要使用到分布式中间件了。预告:在微服务崛起的时代,服务调用肯定必不可少,RPC通信问题也随之展开,下文将使用Netty来了解什么是RPC以上就是本章的全部内容了。上一篇:通信框架之Netty第三话 - Netty的使用以及使用Netty改造Tomcat下一篇:通信框架之Netty第五话 - 一文了解RPC通信原理并使用Netty实现一个PRC不见只今汾水上,唯有年年秋雁飞原创 2022-05-10 12:45:00 · 285 阅读 · 0 评论 -
mysql第九话 - mysql主从复制集群实现
前因:为提升数据库性能,实现读写分离。本文主要记录了Mysql主从复制集群的搭建过程(一主一从)。# 1.预先准备* liunx服务器一台,或者两台 。只为演示就在一台机操作了,目录分别为`mysql-master`和`master-slave`* docker容器化技术,docker-compose,不熟悉的可先了解[mysql第一话 - mysql基于docker的安装及使用](https://blog.csdn.net/qq_35551875/article/details/123600168原创 2022-04-15 15:10:39 · 138 阅读 · 0 评论