- 博客(42)
- 收藏
- 关注
原创 SpringCloud之Zuul
Zuul包含了对请求的路由(用来跳转的)和过滤两个最主要功能:其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验,服务聚合等功能的基础。Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。
2022-12-18 19:22:11 247 1
原创 SpringCloud之Hystrix
Hystrix是一个应用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时,异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整个体系服务失败,避免级联故障,以提高分布式系统的弹性。
2022-12-18 14:06:33 950
原创 SpringCloud之Feign
Feign是声明式Web Service客户端,它让微服务之间的调用变得更简单,类似controller调用service。SpringCloud集成了Ribbon和Eureka,可以使用Feigin提供负载均衡的http客户端只需要创建一个接口,然后添加注解即可~
2022-12-18 00:41:31 625
原创 SpringCloud之Ribbon
Spring Cloud Ribbon 是基于Netflix Ribbon 实现的一套客户端负载均衡的工具。简单的说,Ribbon 是 Netflix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将 Netflix 的中间层服务连接在一起。Ribbon 的客户端组件提供一系列完整的配置项,如:连接超时、重试等。简单的说,就是在配置文件中列出 LoadBalancer (简称LB:负载均衡) 后面所有的及其,Ribbon 会自动的帮助你基于某种规则 (如简单轮询,随机连接等等) 去连接这些机器。
2022-12-17 17:56:31 154
原创 SpringCloud之Eureka
Springcloud 封装了Netflix公司开发的Eureka模块来实现服务注册与发现 (对比Zookeeper).Eureka采用了C-S的架构设计,EurekaServer作为服务注册功能的服务器,他是服务注册中心.
2022-12-17 12:34:38 452
原创 玩转若依项目
为了更直观地学习若以项目,本人使用一台笔记本加上笔记本开的三台虚拟机搭建若以管理系统(前后端不分离版本), 三台虚拟机IP分别设置为192.168.1.100/101/102, 其中100用以部署前端项目, 101和102用以部署后台项目
2022-12-13 02:25:36 304
原创 版本控制工具Git
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
2022-11-17 12:04:37 107
原创 运维之堡垒机
运维审计与风险控制系统也叫堡垒机,或者跳板机, 是运维端接入公司服务器的一个远程电脑 ,项目部署上线和运维都需要使用到堡垒机, 可以防止公司技术人员删库跑路.
2022-11-17 00:26:15 1482
原创 MySQL 索引及查询优化
通常我们使用MySQL慢查询和explain命令来定位mysql性能瓶颈的方法,定位出性能瓶颈的sql语句后,则需要对低效的sql语句进行优化。本文主要讨论MySQL索引原理及常用的sql查询优化。
2022-11-16 13:18:22 385
原创 乐观锁与悲观锁
乐观锁和悲观锁都是用于解决并发场景下的数据竞争问题,但是却是两种完全不同的思想。它们的使用非常广泛,也不局限于某种编程语言或数据库
2022-10-26 16:21:32 424
原创 分布式锁之Redis实现
分布式锁是一种跨进程的跨机器节点的互斥锁,可以保证多个进程对同一个共享资源的排他性. 本质上,分布式锁和一般线程锁都要满足一些锁的基本特性, 比如排他性,同一时刻只能有一个节点访问共享资源, 其次就是可重入性, 即允许一个已经获得锁的线程, 在没有释放锁之前, 重新去获得锁, 还有上锁和释放锁, 锁的失效机制(也就是死锁问题)等等
2022-10-26 15:36:30 792
原创 缓存穿透之布隆过滤器
布隆过滤器能够实现使用较少的空间来判断一个指定的元素是否包含在一个集合中, 布隆过滤器并不保存这些数据,所以只能判断是否存在,而并不能取出该元素, 使用情景:凡是判断一个元素是否在一个集合中的操作,都可以使用它
2022-10-26 14:43:00 590
原创 微服务之秒杀
预热中完成了秒杀商品sku库存数,spu随机码(布隆过滤器)保存在redis中的操作, 也完成了查询秒杀商品列表,和显示秒杀商品详情的方法, 下面要开始进行秒杀商品生成订单的操作, 如果用户选择商品规格(sku)提交订单,那么就要按照提交秒杀订单的业务流程处理, 秒杀提交订单和普通订单的区别。将秒杀成功信息发送到消息队列的原因:,秒杀成功信息用于统计秒杀数据,是秒杀结束后才需要统计的, 所以在秒杀并发高时,消息队列的发送可以延缓,在服务器不忙时,再运行(削峰填谷)
2022-10-18 08:56:05 511
原创 消息队列之RabbitMQ
RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。 RabbitMQ 用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
2022-10-17 18:18:24 681
原创 消息队列之Kafka
消息队列(Message Queue)简称MQ,也称:"消息中间件", 消息队列是采用"异步"的方式来传递数据完成业务操作流程的业务处理方式(要求两个微服务项目并不需要同时完成请求)
2022-10-17 15:10:16 802
原创 任务调度管理Quartz
Quartz是一个当今市面上流行的高效的任务调度管理工具, 所谓"调度"就是制定好的什么时间做什么事情的计划, 由OpenSymphony开源组织开发, 是java语言编写的,我们使用时需要导入依赖即可
2022-10-17 13:50:45 392
原创 SpringBoot单体(前后端分离)业务开发流程
本博文是基于单体(前后端分离)项目中的管理员模块中显示管理员部分着重梳理一遍使用Springboot在开发项目时实际的流程, 主要是包括Mapper层, Service层, Controller, 前后端整合四个部分
2022-10-07 20:31:01 991 1
原创 手写Web服务器(三)
基于HTTP协议协议,使用Java完成Web服务器的编写, 实现网络实时聊天, 通过手写Web服务器, 加深了对于String字符串相关API, IO流, 异常处理, 多线程, 线程池, 反射, 注解, HTTP协议的理解
2022-10-04 15:29:35 417
原创 手写Web服务器(二)
基于HTTP协议协议,使用Java完成Web服务器的编写, 实现网络实时聊天, 通过手写Web服务器, 加深了对于String字符串相关API, IO流, 异常处理, 多线程, 线程池, 反射, 注解, HTTP协议的理解
2022-10-04 11:30:15 564
原创 手写Web服务器(一)
基于HTTP协议协议,使用Java完成Web服务器的编写, 实现网络实时聊天, 通过手写Web服务器, 加深了对于String字符串相关API, IO流, 异常处理, 多线程, 线程池, 反射, 注解, HTTP协议的理解
2022-10-03 21:44:27 506
原创 手写网络聊天室
基于TCP协议,使用Java完成客户端和服务端的编写, 实现网络实时聊天. 通过此项目使得对于Java的IO, 多线程, 网络编程socket, 内部类, 集合容器, 异常处理机制等有了更加深刻的认识
2022-10-03 15:50:17 417
原创 远程字典服务Redis
Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API.与传统数据库不同的是 Redis 的数据 是存在内存中的 ,也就是它是内存数据库,所以读写速度⾮常快,因此 Redis 被⼴泛应⽤于缓存⽅向。
2022-09-30 20:55:42 408
原创 全文搜索引擎ElasticSearch
Elasticsearch和Redis, Mysql一样,不仅服务于Java语言,其它语言也可以使用, 它的功能也类似一个数据库,能高效的从大量数据中搜索匹配指定关键字的内容, 它将数据保存在硬盘中
2022-09-30 19:43:10 595
原创 微服务之网关Gateway
程序中的网关就是当前微服务项目对外界开放的统一入口所有外界的请求都需要先经过网关才能访问到我们的程序提供了统一入口之后,方便对所有请求进行统一的检查和管理
2022-09-30 18:13:15 787
原创 微服务之限流Sentinel
Sentinel英文翻译"哨兵\门卫", Sentinel也是Spring Cloud Alibaba的组件随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性
2022-09-30 15:16:59 531
原创 微服务之事务管理Seata
Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务, 也是Spring Cloud Alibaba提供的组件
2022-09-30 14:12:21 518
原创 微服务之RPC框架Dubbo
Dubbo就是RPC概念的实现,Dubbo是SpringCloudAlibaba提供的, 能够实现微服务相互调用的功能
2022-09-30 09:37:12 545
原创 微服务之注册中心Nacos
Nacos是阿里巴巴的产品,选择是SpringCloud中的一个组件,比Eureka组件功能更加丰富. 一个项目要想成为微服务项目体系的一部分必须将当前项目的信息注册到Nacos. 我们要添加一些配置,实现模块启动时注册到Nacos的效果
2022-09-29 21:01:25 570
原创 应用容器引擎Docker
在软件开发中,最麻烦的事情之一就是环境配置。在正常情况下,如果要保证程序能运行,我们需要设置好操作系统,以及各种库和组件的安装。而且还可能存在互不兼容的情况,再者不同开发环境上的库也需要额外的配置, Docker则很好地解决了这些问题
2022-09-19 20:18:52 575
原创 JVM内存增强之逃逸分析
随着 JIT 编译器的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化,所有的对象都分配到堆上也渐渐变得不那么“绝对”了。
2022-09-17 11:51:42 725
原创 JVM之类加载系统
学习类加载有助于我们更深入地理解 JAVA 类成员的初始化过程,运行过程。并可以为后续的线上问题的解决及调优提供一种基础保障
2022-09-17 10:42:24 1011
原创 认证授权之Token与JWT
JSONWebToken,是使用JSON格式表示多项数据的Token.它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证JWTToken的正确性,只要正确即通过验证。在使用JWT之前,需要在项目中添加相关的依赖,用于生成JWT和解析JWT
2022-09-08 00:46:31 1074
原创 手撕简易版MyBatis框架
MyBatis是一个基于动态代理的半自动化持久层框架, 简化过去程序员需要重复编写鼓噪无意义的JDBC代码,使得开发人员只需要关注sql语句的编写, 而不用过多的关注数据库连接问题。mybatis支持自定义 SQL、存储过程以及高级映射,可以通过sql映射文件实现sql语句的编写,支持动态sql,用条件判断进行查询可以实现sql复用
2022-09-07 23:56:43 738
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人