自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦想也许遥不可及,但重要的是追梦的过程,用博客记录自己的成长,记录自己一步一步向上攀登的印记

梦想也许遥不可及,但重要的是追梦的过程,用博客记录自己的成长,记录自己一步一步向上攀登的印记

  • 博客(218)
  • 资源 (7)
  • 问答 (2)
  • 收藏
  • 关注

原创 SpringBoot+OSS实现文件上传

spring boot+oss实现文件上传

2024-07-06 18:33:24 444

原创 Docker基础入门

我们平时需要关注各种版本的迭代,不同版本环境的兼容问题,可能某个代码在A的系统可以运行,但是在B的系统就无法运行,因为它们的环境配置可能是不一样的,这样就会很麻烦。:::infoDocker发展迅速的原因是因为它给出了一个标准化的解决方案——系统平滑移植,容器虚拟化技术。不同主机的环境配置可能都不一样,如果每次换一台机器,我们都要重新配置环境,那么就会很麻烦。软件可不可以带环境安装呢?安装的时候,把原始环境一模一样的复制过来,开发人员利用Docker可以消除协作编码时"在我的机器上可正常工作"的问题。

2024-06-09 16:14:52 1555 2

原创 苍穹外卖——微信登录,商品浏览

HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。发送HTTP请求接收响应数据为什么要在Java程序中发送Http请求?有哪些应用场景呢?当我们在使用扫描支付、查看地图、获取验证码、查看天气等功能时。

2024-06-09 13:41:24 909

原创 苍穹外卖——店铺营业状态设置

进到苍穹外卖后台,显示餐厅的营业状态,营业状态分为和,若当前餐厅处于营业状态,自动接收任何订单,客户可在小程序进行下单操作;若当前餐厅处于打烊状态,不接受任何订单,客户便无法在小程序进行下单操作。点击按钮时,弹出更改营业状态选择营业,设置餐厅为状态选择打烊,设置餐厅为状态。

2024-06-03 20:48:53 860

原创 苍穹外卖——菜品管理

1). 在新增数据时, 将createTime、updateTime 设置为当前时间, createUser、updateUser设置为当前登录用户ID。2). 在更新数据时, 将updateTime 设置为当前时间, updateUser设置为当前登录用户ID。如果都按照上述的操作方式来处理这些公共字段, 需要在每一个业务方法中进行操作, 编码相对冗余、繁琐,那能不能对于这些公共字段在某个地方统一处理,来简化开发呢?答案是可以的,我们使用AOP切面编程,实现功能增强,来完成公共字段自动填充功能。在实

2024-06-03 20:34:39 1157

原创 快速排序算法备考

我们知道快排在进行一次划分后,该元素的左边元素都比它小,右边都比它大。思路:想办法让右边元素大,左边元素小,而且尽量要把数组尽量平分,想到快排的划分思想,为了满足上述条件,右半部分的元素不能比左边元素个数少。主元素的元素数量超过数组长度的一半,如果数组有序,并且存在主元素,那么主元素一定在数组的中间位置。把数组A排成递增有序数列,排序后集合A1为[0,n/2-1],集合A2为[n/2n-1]第k小,说明左边有k-1个元素比它小,利用快排的划分思想,只要返回下标为k即可。右边:n/2~n-1。

2024-05-27 11:31:10 314

原创 PV操作大题强化

每个干饭人进入食堂后,需要做这些事:拿一个盆打荤菜,再拿一个盆打素菜,再拿一个盆打汤,再拿一个盆打饭,然后找一个座位坐下干饭,干完饭把盆还给食堂,然后跑路。上面这种做法,限制了人数上限,且先拿盆,再占座,一定不会发生死锁。事实上,如果座位的数量满足seat ≤ (N-1)/3,那么甚至可以不设置专门的信号量x,完全可以先占座,后拿盆,也一定不会死锁。在哲学家问题中,共有5个哲学家,如果我们限制“最多允许4个哲学家同时进餐",那么至少会有一个哲学家可以同时获得左右两只筷子,并顺利进餐,从而预防了死锁。

2024-05-12 16:31:48 770

原创 苍穹外卖——员工管理,分类管理

苍穹外卖项目

2024-04-09 20:01:45 602 1

原创 苍穹外卖——项目搭建

本项目(苍穹外卖)是专门为餐饮企业(餐厅、饭店)定制的一款软件产品,包括 系统管理后台 和 小程序端应用 两部分。其中系统管理后台主要提供给餐饮企业内部员工使用,可以对餐厅的分类、菜品、套餐、订单、员工等进行管理维护,对餐厅的各类数据进行统计,同时也可进行来单语音播报功能。小程序端主要提供给消费者使用,可以在线浏览菜品、添加购物车、下单、支付、催单等。接下来,通过功能架构图来展示管理端和用户端的具体业务功能模块。1). 管理端功能员工登录/退出 , 员工信息管理 , 分类管理 , 菜品管理 , 套餐管理 ,

2024-04-05 01:46:05 2039

原创 MybatisPlus学习总结

简介 | MyBatis-PlusMyBatis Plus是一个基于MyBatis的增强工具,它简化了MyBatis的使用,提供了一系列的增强功能,使开发更加方便快捷。无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持 Lambda 形式调用。

2024-03-28 20:20:29 1051

原创 计算机网络概述

三网融合:计算机网络,有线电视网络,电信网络计算机网络:是一个把的、具有的计算机系统,通过和连接起来,由功能完善的软件实现的系统计算机网络是的,的计算机集合互连:通过通信链路互联互通。

2023-08-24 15:43:40 485 2

原创 SpringCloud Sleuth分布式链路请求跟踪

分布式链路追踪之Spring Cloud Sleuth+Zipkin最全教程!pring Cloud Sleuth提供了一套完整的服务跟踪的解决方案在分布式系统中提供追踪解决方案并且兼容支持了zipkin(负责展现)Spring Cloud Sleuth实现了一种分布式的服务链路跟踪解决方案,通过使用Sleuth可以让我们快速定位某个服务的问题。简单来说,Sleuth相当于调用链监控工具的客户端,集成在各个微服务上,负责产生调用链监控数据。

2023-03-26 22:14:20 2409 10

原创 Spring Cloud:网关Gateway

不同的微服务一般来说会有不同的网络地址,客户端在访问的时候,如果需要记住这些地址的话,其实是很复杂的,而且也很难进行维护客户端会请求多个不同的服务,需要维护不同的请求地址,增加开发难度在某些场景下存在跨域请求的问题加大身份认证的难度,每个微服务需要独立认证因此,我们需要一个微服务网关,介于客户端与服务器之间的中间层,所有的外部请求都会先经过微服 务网关。1、易于监控2、易于认证3、减少了客户端与各个微服务之间的交互次数API网关是一个服务器,是系统对外的唯一入口。

2023-01-25 22:58:38 2322 8

原创 Spring Cloud:服务熔断Hystrix

Hystrix是由Netflflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失 败,从而提升系统的可用性与容错性。Hystrix主要通过以下几点实现延迟和容错。包裹请求:使用HystrixCommand包裹对依赖的调用逻辑,每个命令在独立线程中执行。这使用 了设计模式中的“命令模式”。跳闸机制:当某服务的错误率超过一定的阈值时,Hystrix可以自动或手动跳闸,停止请求该服务 一段时间。资源隔离:Hystrix为每个依赖都维护了一个小型的线程池(或者信号量)。

2023-01-14 23:21:49 3506 1

原创 OpenFeign服务接口调用

Netflix Feign 是 Netflix 公司发布的一种实现负载均衡和服务调用的开源组件。Spring Cloud 将其与 Netflix 中的其他开源服务组件(例如** Eureka、Ribbon 以及 Hystrix** 等)一起整合进 Spring Cloud Netflix 模块中,整合后全称为 Spring Cloud Netflix Feign。Feign 对Ribbon进行了集成,利用 Ribbon 维护了一份可用的服务列表信息,并且通过轮询实现了客户端的负载均衡。

2023-01-03 16:51:02 2700 45

原创 Ribbon负载均衡服务调用

Ribbon是 Netflflixfa 发布的一个负载均衡器,有助于控制 HTTP 和 TCP客户端行为。在 SpringCloud 中,Eureka一般配合Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon利用从Eureka中读取到的服务信息,在调用服务节点提供的服务时,会合理的进行负载。在SpringCloud中可以将注册中心和Ribbon配合使用,Ribbon自动的从注册中心中获取服务提供者的列表信息,并基于内置的负载均衡算法,请求服务。

2022-11-24 14:30:34 1492 9

原创 怎样减少报表开发中的存储过程

存储过程有它的优势所在,但存在的弊端也很明显,放到报表应用中,有些还会被成倍放大到不可忍受,但技术总在进步,润乾报表的SPL计算层,就是存储过程很好的替代技术,它类似“库外存储过程”,有着比存储过程更好的过程控制等复杂计算的能力,还没有它身上的坏毛病,润乾报表本身又是报表行业的头部厂商,专注报表20多年,累积用户数不胜数,价格又很亲民,1W一套,3W一年随便用,有了润乾报表,这些存储过程带来的困扰就都迎刃而解了。

2022-11-15 11:07:38 3140 52

原创 Eureka服务注册与发现

注册中心可以说是微服务架构中的"通讯录",它记录了服务和服务之间地址的映射关系。在分布式架构中, 服务会注册到这里(注册中心),当服务需要调用其它服务时,就这里找到服务的地址,进行调用。到底什么是服务治理?SpringCloud封装了Netflix公司开发的Eureka模块来实现服务治理。在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂、所以需要进行服务治理,管理服务与服务之间依赖关联,以实现服务调用,负载均衡、容错等,实现服务发现与注册。

2022-11-11 15:37:12 4157 59

原创 SpringCloud入门案例

com.zyh.springcloud.controller.PaymentControllercom/zyh/springcloud/service/PaymentService.javacom/zyh/springcloud/service/impl/PaymentServiceImpl.javacom/zyh/springcloud/mapper/PaymentMapper.java (将cloud-provider-payment8001工程下的entities包下的两个实体类复制

2022-11-04 10:15:59 1918 5

原创 Linux学习(9)——Linux组管理和权限管理

rwx作用到文件中rwx作用到目录给abc文件的所有者读写执行的权限,给所在组读执行权限,给其他组读执行权限给abc文件的所有者除去执行的权限,文件的所有组增加写的权限给abc文件的所有用户增加读的权限chgrp newGroup 文件/目录 [修改文件/目录所在组]

2022-10-31 09:53:07 1627 2

原创 Java 结构化数据处理开源库 SPL

现代Java应用架构越来越强调数据存储和处理分离,以获得更好的可维护性、可扩展性以及可移植性,比如火热的微服务就是一种典型。这种架构通常要求业务逻辑要在Java程序中实现,而不是像传统应用架构中放在数据库中。应用中的业务逻辑大都会涉及结构化数据处理。数据库(SQL)中对这类任务有较丰富的支持,可以相对简易地实现业务逻辑。但Java却一直缺乏这类基础支持,导致用Java实现业务逻辑非常繁琐低效。结果,虽然架构上有各种优势,但开发效率却反而大幅下降了。

2022-10-26 12:37:26 3792 61

原创 Spring Cloud基本介绍

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

2022-10-24 16:25:19 3642 30

原创 Spring Cloud:微服务基础知识

而且,我们应尽量避免统一的、集中式的服务管理机制,对具体的一个来说,应该要根据业务上下文,选择合适的语言、工具来进行构建。在企业发展的初期,一般公司的网站流量都比较小,只需要一个应用,将所有的功能代码打包成一个服务,部署到服务器上就能支撑公司的业务。随着互联网的发展,网站应用的规模不断扩大,常规的应用架构已无法应对,分布式服务架构以及微服务架构势在必行,亟需一个治理系统确保架构有条不紊的演进。在分布式架构下,当部署的服务越来越多,重复的代码就会越来越多,对于容量的评估,小服务资源的浪费等问题比较严重。

2022-10-21 20:01:53 8324 72

原创 RabbitMQ:发布确认高级

在application.properties全局配置文件中添加spring.rabbitmq.publish-confirm-type属性,这个属性有以下几种值。交换机收到两条信息,但是消费者只能消费一条消息,因为第二条消息的路由key和交换机的binding key不一样,也没有其他队列可以接收这条消息,所以就被丢弃了。正常运行结果如图所示,如果rabbitmq出现故障的话,那么结果是不会显示出来的,我们可以通过回调接口来监测运行结果。

2022-10-17 13:35:35 2325 18

原创 RabbitMQ:延迟队列

一般队列中的元素总是希望能够早点被取出来进行处理,但是延迟队列中的元素则是希望可以在指定时间内被取出和处理,延迟队列中的元素都是带有时间属性的。延迟队列就是用来存放需要在指定时间被处理的元素的队列延迟队列就是想要消息延迟一段时间后被处理,TTL可以让消息在延迟一段时间后变成死信。变成死信的消息都会被投递到死信队列中,这样的话,只要消费者一直消费死信队列里面的消息就可以了,因为里面的消息都是希望被马上处理的消息。

2022-10-17 13:29:17 2397 5

原创 RabbitMQ:死信队列

队列中不能被消费的消息称为死信队列有时候因为特殊原因,可能导致队列中的某些信息无法被消费,而队列中这些不能被消费的消息在后期没有进行处理,就会变成死信队列,死信队列中的消息称为死信。应用场景:未来保证订单业务的消息数据不丢失,我们需要使用到RabbitMQ的死信队列机制,当消息消费发生异常的时候,我们就把消息投入到死信队列中,比如说用户买东西,下单成功后去支付,但是没有在指定时间支付的时候就会自动失效。死信队列,英文缩写:DLX。

2022-10-12 14:57:11 8523 77

原创 RabbitMQ:发布确认模式

生产者把信道设置成为confirm(确认)模式,一旦信道进入confirm模式,所有在这个信道上面发布的消息都会被指定唯一的一个ID(ID从1开始).一旦消息被投递到所有匹配的队列以后,broker就会发送一个确认给生产者(包含ID),这样使得生产者知道消息已经正确到底目的队列了。如果消息和队列是可持久化的,那么确认消息就会在消息被写入磁盘以后发出,broker回传给生产者的确认消息中delivery-tag包含了确认消息的序列号。

2022-10-09 15:00:48 2342 7

原创 RabbitMQ:Topics主题/通配符模式

Topic类型与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符Routingkey 一般都是有一个或多个单词组成,多个单词之间以”.”分割,例如: item.insert通配符规则:#:匹配0个或者多个词*:刚好可以匹配一个词。

2022-10-07 22:46:48 1603 3

原创 RabbitMQ:路由模式

在路由工作模式中,我们需要配置一个类型为direct的交换机,并且需要指定不同的路由键(routing key),把对应的消息从交换机路由到不同的消息队列进行存储,由消费者进行消费。P:生产者,向交换机发送消息的时候,会指定一个routing keyX:Exchange(交换机),接收生产者的消息,然后把消息传递给和routing key完全匹配的队列C1:消费者,它所在队列指定了需要routing key为error的信息。

2022-10-06 15:24:19 4045 7

原创 RabbitMQ:发布订阅模式

P:生产者,发送消息给交换机C:消费者,接收消息X:交换机,一方面接收生产者发送的消息,另一方面知道怎么处理消息,是否应将其附加到特定队列?是否应将其附加到多个队列中?或者它应该被丢弃。其规则由交换类型定义。Queue:消息队列,接收消息,缓存消息每个消费者都监听自己的队列生产者把消息发送给broker,然后交换机把消息转发到绑定此交换机的每个队列,每个绑定交换机的队列都将接收到消息。

2022-10-06 14:39:22 3749 1

原创 RabbitMQ:工作队列模式

任务队列)背后的主要思想是避免立即执行资源密集型任务并等待其完成。相反,我们将任务安排在以后完成。我们将_任务_封装为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当您运行多个工作线程时,任务将在它们之间共享。这个概念在 Web 应用程序中特别有用,因为在 Web 应用程序中,不可能在较短的 HTTP 请求窗口中处理复杂的任务。

2022-10-03 14:43:24 3955 53

原创 RabbitMQ:简单模式(Hello World)

先来看看RabbitMQ架构图Broker:接收和分发消息的应用, RabbitMQ Server 就是 Message Broker: 出于多租户和安全因素设计的,把 AMQP 的基本组件划分到一个虚拟的分组中,类似 于网络中的 namespace 概念。当多个不同的用户使用同一个 RabbitMQ server 提供的服务时,可以划分出 多个 vhost ,每个用户在自己的 vhost 创建 exchange / queue 等Connection。

2022-10-01 15:24:25 906 1

原创 Spring整合RabbitMQ

RunWith注解的作用:让测试在spring容器环境下执行,如果测试类没有这个注解,会导致service,dao等注入失败。在resources目录下面创建rabbitmq.properties属性配置文件。在resources目录下面创建rabbitmq.properties属性配置文件。

2022-09-27 15:19:59 1217 6

原创 RabbitMQ工作模式

多个消费者共同消费同一个队列中的消息,可以实现快速消费,避免消息积压,但是多个消费者消费队列的消息的时候,是互斥的,同一个消息只能被一个消费者消费,不可以被多个消费者消费。应用:对于一些任务比较多的情况,使用工作队列可以提高任务处理的速度P:生产者,向交换机发送消息的时候,会指定一个routing keyX:Exchange(交换机),接收生产者的消息,然后把消息传递给和routing key完全匹配的队列C1:消费者,它所在队列指定了需要routing key为error的信息。

2022-09-26 15:18:27 1627 3

原创 rabbitmq入门

✨ rabbitmq入门1.工程搭建1.1步骤分析1.2创建工程1.3添加依赖2.编写生产者3.编写消费者4.入门案例总结5.AMQP5.1基本介绍5.2rabbitmq运转流程📃个人主页:不断前进的皮卡丘🌞博客描述:梦想也许遥不可及,但重要的是追梦的过程,用博客记录自己的成长,记录自己一步一步向上攀登的印记🔥个人专栏:消息中间件专栏1.工程搭建1.1步骤分析官网https://www.rabbitmq.com/tutorials/tutorial-one-java.html需求:使用简单

2022-09-25 19:18:43 853

原创 rabbitmq安装

(根据自身需求及匹配关系,下载对应rpm包)rabbitmq-server-3.8.1-1.el7.noarch.rpm。链接:https://pan.baidu.com/s/1S31oVSB-ki_FjQZinsIvjw?可以采用yum安装方式:yum install socat,我们这里采用rpm安装方式。rabbitmq安装依赖于socat,所以需要下载socat。在安装rabbitmq之前需要先安装socat,否则,报错。(根据自身需求及匹配关系,下载对应rpm包)

2022-09-25 11:32:24 614 1

原创 消息中间件概述

MQ(Message Queue),消息队列(MQ)是一种应用程序对应用程序的通信方法消息队列是一种先进先出的数据结构消息传递:指的是程序直接通过消息发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是拥有远程调用的技术不同进程之间传递消息的时候,两个进程之间耦合度过高,一个进程的改变就会引发另外一个进程的改变。为了让它们不会互相干扰,我们需要在两个进程之间抽离出一个模块,两个进程之间传递的消息通过消息队列来传递。单独修改某一个进程不会影响另外一个。

2022-09-24 14:38:51 1062

原创 Nginx配置——负载均衡

浏览器地址栏输入地址 http://xxx/edu/a.html,负载均衡效果,平均 8080和 8081 端口中。对nginx的配置文件进行修改。

2022-09-22 15:38:27 1067 2

原创 Nginx配置实例——反向代理

然后通过xftp连接Linux,在tomcat8080安装目录下的webapps中新建文件夹edu。同样,在tomcat8081安装目录中的webapps创建新的文件夹,然后传输文件。修改完nginx的配置文件以后,记得重新加载一下nginx的配置文件。然后把压缩文件分别解压到这两个目录下(参照前面的演示)然后向edu中传输文件。

2022-09-22 12:46:53 1554

原创 Nginx常用命令和配置文件

从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约。这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

2022-09-22 08:46:09 327 1

MySQL可视化工具SQLyog安装

MySQL可视化工具SQLyog安装,点击就可安装

2022-06-09

R语言编程基础第五章课后习题操作题

R语言编程基础第五章课后习题操作题b

2022-05-05

servlet+jsp练手小项目

servlet+jsp练手小项目,适合初学者进行项目的练手,可以帮助我们熟悉servlet+jsp的项目流程,掌握转发,重定向,路径等问题,有助于后面框架的学习,而且项目并不复杂,主要是锻炼大家的思路,让我们可以熟悉servlet和jsp

2022-04-06

javaweb笔记+狂神+知识总结

Java+javaweb笔记+狂神+知识总结

2022-04-01

mysql8.0的驱动

MySQL8.0的驱动

2022-03-29

jakarta.servlet.jsp.jstl-api-2.0.0.jar

Tomcat10对应的JSTL标签库的jar包

2022-03-23

taglibs-standard-impl-1.2.5.zip

Tomcat9的JSTL标签库对应的jar

2022-03-23

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

TA关注的人

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