CodeSheep学习路线梳理汇总
仓库内容持续更新中... 自学之路漫又长,唯有不断总结,不断回味,不断分享,才能成长! 联系我可以【微信】私我 为什么会有这个开源仓库 本仓库取名 r2coding,即 Road To Coding,意为「编程自学之路」,是自学编程以来所用资源和分享内容的大聚合。 旨在为编程自学者提供一系列: 清晰的编程自学路线 各编程岗位方向的知识点梳理 靠谱的资源 高效的工具 务实的技术文章 方便自己也方便他人。仓库内容会保持持续更新,欢迎收藏品鉴! 本仓库内容地图 编程自学路线+知识大梳理 本仓库目前整理收录了6个大方向(岗位)的学习路线+知识点大梳理,分别为: Java后端开发 前端开发 C/C++后台开发 大数据开发 嵌入式开发 网络安全方向 后续本仓库也会持续更新和增加更多方向岗位的学习路线… Java后端开发详情链接 → 《Java后端开发学习路线+知识点大梳理》 注:图片上传后可能被压缩,如需无损版高清大图, ...
基于SpringCloudAliBaba技术栈的分布式选课系统
基于SpringCloud Alibaba 分布式微服务选课系统的性能优化 1.引言1.1编写目的 为了解决学生选课时系统崩溃 宕机的问题 特此编写本系统 实现选课系统的高可用与负载均衡 1.2背景 我们学校的选课系统人一多就会崩溃 分析原因还是因为一瞬间大量人涌入选课系统 系统扛不住高并发而宕机 本系统在此前期下 准备自己开发一款选课系统 使用sentinel作为服务熔断和降级框架 使用redisson作为分布式锁 使用Nginx+SpringCloud Gateway 做负载均衡``使用docker+k8s做持久化自动部署 保证几万学生在同一时间下 访问系统不会崩溃 宕机 使用JWT作为(Token)作为系统的身份校验 授权与认证 采用前后端分离的方式部署该系统,小组分工明确 1.3定义(列出本文件中用到的专门术语的定义和外文首字母组词的原词组。) 前端 后端 部署 测试运维 1.4参考资料 Spring官方文档: https://spring.io/ MyBatisPuls官方文档: https://baomidou.com/ Nacos官方文档: htt ...
流光记
流光记 从高中就喜欢这首歌了 到现在依然喜欢 ‘我有满心欢喜 只除过世界太挤 ‘ ’头顶月 眼中你‘ 作词 : 迟意作曲 : 潮汐-tide/银临编曲:向往/灰原穷混音:啊鲤录音师:within_轶名人声监唱:灰原穷海报:苏澈白画师:梅宫小厨PV:橘猫村呵一口气 就变个仙女还要你 贴上太白金星的胡须老街里跑过一圈 当周游天地回来能讲三百个传奇春和秋 雪和雨 排成小四季两个人 翻开书 没找到颜如玉明天远 更远是光阴住着背不完的诗句月亮舟楫 驮来天星屋檐下晚风 正搭讪蝉鸣可怜牛郎织女 还没到重逢佳期是不是喜鹊偷懒 不肯太殷勤?逛一圈东周演义山中魏晋唐宋元明清从那年同居长干里 琅琅到 ...
前后端分离导航栏管理项目
前后端分离导航栏管理项目 这个项目其实我很早之前就已经想做了 之前的导航站 无后端 是基于yaml配置文件来配置 如图所示:点我查看该导航站 现在想给它加一个后台 并支持注册登录 自己定制管理自己导航站的链接 顺便巩固一下这 两个月的所学知识~ 本系统是基于SpringBoot+Vue的前后端分离项目:可能用到的技术有 后端:SpringBoot MybatisPlus MySQL Redis Shiro 前端:Vue axios ElementUI 部署:Docker Linux 开发环境:IDEA DataGrip JDK1.8 后端接口开发(临时 ):数据库设计 初始设定四张表:group(组表) links(链接表) user(用户表) roles(角色表) sql文件create table roles( id int auto_increment primary key, role_name varchar(256) not null comment '区分普通用户和管理员的') commen ...
解决高并发下Redis连接失败redis.clients.jedis.exceptions.JedisConnectionException Attempting to read from a broken connection
引出问题 当前Redis配置项 测压环境 出现的问题: redis.clients.jedis.exceptions.JedisConnectionException: Attempting to read from a broken connection at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:314) ~[jedis-3.1.0.jar:na] at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:236) ~[jedis-3.1.0.jar:na] at redis.clients.jedis.BinaryJedis.quit(BinaryJedis.java:257) ~[jedis-3.1.0.jar:na] at org.springframework.data.redis.connection.jedis.JedisConnection.close(J ...
SpringCloudGateway+Nginx实现反向代理和负载均衡
正向代理与反向代理 Nginx.conf upstream : 负载均衡模块用于从”upstream”指令定义的后端主机列表中选取一台主机。nginx先使用负载均衡模块找到一台主机,再使用upstream模块实现与这台主机的交互。 要实现的效果图 复现步骤 准备一台nginx的服务器 配置上网关的地址(如果网关在本地 需内网穿透 暴露公网IP) /conf.d/gulimall.conf server { listen 80; server_name localhost;# proxy_pass http://gulimall ; 这里对应 nginx.conf 中 upstream 中的名字# 如果这里 proxy_pass 是ip格式的 则需要 配置这一项 proxy_set_header Host $host;# 因为 第一次访问nginx的时候 会丢失header 即 第一次访问nginx的时候域名信息 如果是域名格式的则不用(实测) location / { # p ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post$ hexo new "My New Post" More info: Writing Run server$ hexo server More info: Server Generate static files$ hexo generate More info: Generating Deploy to remote sites$ hexo deploy More info: Deployment
Day11-SpringCloud alibaba服务降级熔断框架Sentinel
俩贼能熬夜的人!! - —-2022.1.7 3:00:00 [toc] Sentinel介绍及下载安装 Sentinel 是什么?随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Apache Dubbo、gRPC、Quarkus 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。同时 Sentinel ...
Day10-SpringCloud alibaba 搭建Nacos+Nginx集群
给出总结: 访问nginx是随机访问某一台nacos注册中心 注册是注册到所有注册中心上 每一台上都有 踢下线某一台之后 那台还能正常工作cluster.conf 上还是显示三台记录 但是其他台cluster.conf 上已经没有该台的记录了 但是通过nginx负载均衡分发到不同服务器上 还能注册到该被踢下线的服务器 提出问题: 因为Nginx随机转发到某一台上 如果注册到某一台已经下线的nacos上应该咋办 ?? 求指点 如果以后我知道该咋办我会修改这篇博文~ 答:注册到了也没关系 (这里是能注册到某台下线的nacos上的)因为其他集群还活着能正常作为注册中心 三台服务器上的搭建 修改cluster.conf application.properties cluster.conf 每台服务器都要改 xxx.xxx.xxx:8848 # 第一台xxx.xxx.xxx:8848 # 第二台xxx.xxx.xxx:8848 # 第三台 application.properties (ps: 由于Nacos默认内网访问 若要公网部署就必须改改配置文件指定ip) 同 ...
Day9-SpringCloud alibaba服务注册与配置中心Nacos
学习自尚硅谷:学习地址 欢迎━(`∀´)ノ亻!大家去一键三连 周阳老师讲的真的很好!!!!!!!🤣🤣🤣 [toc] SpringCloud alibaba 服务限流降级:默认支持 Servlet、Feign、RestTemplate、Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。 服务注册与发现:适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。 分布式配置管理:支持分布式系统中的外部化配置,配置更改时自动刷新。 消息驱动能力:基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。 阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。 分布式任务调度:提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker(schedulerx-c ...
Day8-SpringCloud消息驱动Stream与链路追踪Sleuth
SpringCloud Stream 消息驱动 屏蔽底层消息中间件的差异 统一消息的编程模型(没有什么是套一层接口解决不了的~) 比方说我们用到了RabbitMQ和Kafka,由于这两个消息中间件的架构上的不同, 像RabbitMQ有exchange,kafka有Topic和Partitions分区, 这些中间件的差异性导致我们实际项目开发给我们造成了一定的困扰,我们如果用了两个消息队列的其中一种,后面的业务需求,我想往另外一种消息队列进行迁移,这时候无疑就是一个灾难性的,一大堆东西都要重新推倒重新做,因为它跟我们的系统耦合了,这时候springcloud Stream给我们提供了一种解耦合的方式。 Stream总体架构图 发送和接收消息流程生产者 pom.xml 引入依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-stream-rabb ...
Day7-SpringCloud分布式配置中心Config与消息总线Bus
分布式中的配置问题 微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的 SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。 SpringCloud Config分为服务端和客户端两部分。 服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口 客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息配置服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过git客户端工具来方便的管理和访问配置内容。 SpringCloud Config 能干嘛 SpringCloud Config 服务端获取Gitee配置 pom.xml <dependency> <gr ...
Day6-SpringCloud网关Gateway
2021.12.31 最后一更 ! 你好2022 Spring Cloud Gateway介绍 SpringCloud Gateway 是 Spring Cloud 的一个全新项目,基于 Spring 5.0+Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。 SpringCloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zuul 2.0以上最新高性能版本进行集成,仍然还是使用的Zuul 1.x非Reactor模式的老版本。而为了提升网关的性能,SpringCloud Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty。 Spring Cloud Gateway的目标提供统一的路由方式且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。 微服务总体架构图 路由 断 ...
Day5-SpringCloud服务熔断及Hystrix可视化面板
服务熔断 熔断机制概述 熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时, 会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。 当检测到该节点微服务调用响应正常后,恢复调用链路。 在Spring Cloud框架里,熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况, 当失败的调用到一定阈值,缺省是5秒内20次调用失败,就会启动熔断机制。熔断机制的注解是@HystrixCommand。 //=====服务熔断@HystrixCommand(fallbackMethod = "paymentCircuitBreaker_fallback",commandProperties = { @HystrixProperty(name = "circuitBreaker.enabled",value = "true"),// 是否开启断路器 @HystrixProperty(name = &qu ...
Day4-SpringCloud 初识Hystrix及服务降级
‘我一个人的信仰 像太阳 散发着炽热的光’ ‘大家圣诞节快乐!!😀😀😀’ 引出Hystrix — 分布式系统面临的问题 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。 关于服务雪崩 服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”. 对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟糕的是,这些应用程序还可能导致服务之间的延迟增加,备份队列,线程和其他系统资源紧张,导致整个系统发生更多的级联故障。这些都表示需要对故障和延迟进行隔离和管理,以便单个依赖关系的失败,不能取消整个应用程序或系统。 所以, 通常当你发现一个模块下的某个实例失败后,这时候这个模块依然还会接收流量,然后这个有问题的模块还调用了其他的模块,这样就会发生级联 ...