自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 微服务项目实战-黑马头条(十三):持续集成

持续集成( Continuous integration , 简称 CI )指的是,频繁地(一天多次)将代码集成到主干持续集成的组成要素一个自动构建过程, 从检出代码、 编译构建、 运行测试、 结果记录、 测试统计等都是自动完成的, 无需人工干预。一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库,一般使用SVN或Git。一个持续集成服务器, Jenkins 就是一个配置简单和使用方便的持续集成服务器。

2024-05-08 15:07:29 711

原创 微服务项目实战-黑马头条(十二):热点文章-实时计算

Kafka Stream是Apache Kafka从0.10版本引入的一个新Feature。它是提供了对存储于Kafka内的数据进行流式处理和分析的功能。Kafka Stream提供了一个非常简单而轻量的Library,它可以非常方便地嵌入任意Java应用中,也可以任意方式打包和部署除了Kafka外,无任何外部依赖充分利用Kafka分区机制实现水平扩展和顺序性保证通过可容错的state store实现高效的状态操作(如windowed join和aggregation)

2024-04-29 09:40:19 696

原创 微服务项目实战-黑马头条(十一):热点文章-定时任务、xxl-Job分布式任务调度

当前软件的架构已经开始向分布式架构转变,将单体结构拆分为若干服务,服务之间通过网络交互来完成业务处理。在分布式架构下,一个服务往往会部署多个实例来运行我们的业务,如果在这种分布式系统环境下运行任务调度,我们称之为分布式任务调度。将任务调度程序分布式构建,这样就可以具有分布式系统的特点,并且提高任务的调度处理能力:1、并行任务调度并行任务调度实现靠多线程,如果有大量任务需要调度,此时光靠多线程就会有瓶颈了,因为一台计算机CPU的处理能力是有限的。

2024-04-27 21:54:17 678

原创 微服务项目实战-黑马头条(十):用户行为

黑马头条项目整个项目开发涉及web展示和大数据分析来给用户推荐文章,如何找出哪些文章是热点文章进行针对性的推荐呢?这个时候需要进行大数据分析的准备工作,埋点。所谓“埋点”,是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如用户某个icon点击次数、阅读文章的时长,观看视频的时长等等。

2024-04-26 15:36:44 652

原创 微服务项目实战-黑马头条(九):平台管理

这部分黑马未提供视频讲解,

2024-04-26 10:59:59 969

原创 微服务项目实战-黑马头条(八):App端-文章ES搜索、MongoDB搜索记录和关键词联想

文章目录一、今日内容介绍1.1 App端搜索-效果图1.2 今日内容二、搭建ElasticSearch环境2.1 拉取镜像2.2 创建容器2.3 配置中文分词器 ik2.4 使用postman测试三、app端文章搜索3.1 需求分析3.2 思路分析3.3 创建索引和映射3.4 数据初始化到索引库3.4.1 导入es-init到heima-leadnews-test工程下3.4.2 查询所有的文章信息,批量导入到es索引库中3.4.3 测试3.5 文章搜索功能实现3.5.1 搭建搜索微服务3.5.2 搜索接口

2024-04-23 11:23:14 1099 3

原创 微服务项目实战-黑马头条(七):自媒体端-kafka及异步通知文章上下架

消息中间件对比特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高(主从)高(主从)非常高(分布式)非常高(分布式)功能特性成熟的产品、较全的文档、各种协议支持好并发能力强、性能好、延迟低MQ功能比较完善,扩展性佳只支持主要的MQ功能,主要应用于大数据领域消息中间件对比-选择建议消息中间件建议Kafka。

2024-04-22 11:03:13 1015

原创 kafka的配置

文章目录一、生产者配置二、消费者配置一、生产者配置NAMEDESCRIPTIONTYPEDEFAULTVALID VALUESIMPORTANCEbootstrap.servershost/port列表,用于初始化建立和Kafka集群的连接。列表格式为host1:port1,host2:port2,…,无需添加所有的集群地址,kafka会根据提供的地址发现其他的地址(你可以多提供几个,以防提供的服务器关闭)listhighkey.serializer实现 o

2024-04-21 22:44:06 604

原创 微服务项目实战-黑马头条(六):自媒体端-延迟任务审核文章流程

定时任务:有固定周期的,有明确的触发时间延迟队列:没有固定的开始时间,它常常是由一个事件触发的,而在这个事件触发之后的一段时间内触发另一个事件,任务可以立即执行,也可以延迟应用场景:场景一:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单;如果期间下单成功,任务取消场景二:接口对接出现网络问题,1分钟后重试,如果失败,2分钟重试,直到出现阈值终止上述流程:1.首先作者发布文章后,就采用异步的方式将文章交给延迟任务微服务。

2024-04-21 17:27:39 669

原创 微服务项目实战-黑马头条(五):自媒体端-自动审核流程

文章目录一、自媒体文章自动审核流程二、内容安全第三方接口2.1 概述2.2 准备工作2.3 文本内容审核接口2.4 图片审核接口2.5 项目集成三、app端文章保存接口3.1 表结构说明3.2 分布式id3.3 思路分析3.4 feign接口四、自媒体文章自动审核功能实现4.1 表结构说明4.2 实现4.3 feign远程接口调用方式4.4 单元测试4.5 服务降级处理五、发布文章提交审核集成5.1 同步调用与异步调用5.2 Springboot集成异步线程调用六、文章审核功能-综合测试6.1 服务启动列表

2024-04-20 22:36:37 727

原创 微服务项目实战-黑马头条(四):自媒体端-素材管理与文章管理

文章目录一、自媒体前后端搭建1.1 后台搭建1.2 前台搭建二、自媒体端-素材管理2.1 素材上传2.2.1 需求分析2.2.2 素材管理-图片上传-表结构2.2.3 实现思路2.2.4 接口定义2.2.5 自媒体微服务集成heima-file-starter2.2.6 具体实现2.2 素材列表查询2.2.1 接口定义2.2.2 功能实现三、自媒体端-文章管理3.1 查询所有频道3.1.1 需求分析3.1.2 表结构3.1.3 接口定义3.1.4 功能实现3.1.5 测试3.2 查询自媒体文章3.2.1 需

2024-04-19 11:14:40 577

原创 微服务项目实战-黑马头条(三):APP端文章详情

文章目录一、文章详情-实现思路1.1 传统实现方式1.2 静态模版+分布式文件系统二、FreeMaker模板引擎2.1 FreeMaker 介绍2.2 环境搭建&&快速入门2.2.1 创建测试工程2.2.2 配置文件2.2.3 创建模型类2.2.4 创建模板2.2.5 创建controller2.2.6 创建启动类2.2.7 测试2.3 FreeMaker基础2.3.1 基础语法种类2.3.2 集合指令(`List`和`Map`)2.3.3 if指令2.3.4 运算符2.3.5 空值处理2.

2024-04-17 23:18:27 918

原创 微服务项目实战-黑马头条(二):APP端主页文章列表

加载首页加载更多加载最新接口路径请求方式POSTPOSTPOST参数响应结果接口的参数类:ArticleHomeDto// 最大时间 Date maxBehotTime;// 最小时间 Date minBehotTime;// 分页size Integer size;// 频道ID String tag;// 最大时间 Date maxBehotTime;// 最小时间 Date minBehotTime;// 分页size Integer size;

2024-04-09 18:23:18 1035

原创 微服务项目实战-黑马头条(一):环境搭建 + APP登录功能【前端静态资源+nginx反向代理+网关+过滤器】

heima-leadnews-service的pom文件解析引导类UserApplicationimport org} }} }} }MapperScan;

2024-04-08 17:22:37 990

原创 微服务高级篇(五):可靠消息服务

如何确保RabbitMQ消息的可靠性?开启生产者确认机制,确保生产者的消息能到达队列开启持久化功能,确保消息未消费前在队列中不会丢失开启消费者确认机制为auto,由spring确认消息处理成功后完成ack开启消费者失败重试机制,并设置MessageRecoverer,多次重试失败后将消息投递到异常交换机,交由人工处理。

2024-03-26 17:06:47 1055 2

原创 微服务高级篇(四):多级缓存:Nginx本地缓存 --- Redis缓存 --- 进程缓存

修改nginx.conf:注意events {http {# lua 模块.lua;;# c模块.so;;server {# 监听反向代理来的请求:/api/item# 响应类型,这里返回json# 响应数据由 lua/item.lua这个文件来决定root html;root html;修改item.lua获取id=10003的参数,将10003使用..拼接并返回给页面-- 获取路径参数-- 返回结果。

2024-03-25 16:38:17 1374

原创 微服务高级篇(三):分布式缓存+Redis集群

slave节点宕机恢复后可以找master节点同步数据那master节点宕机怎么办?一、服务状态监控主观下线:如果某sentinel节点发现某实例未在规定时间响应,则认为该实例主观下线。客观下线:若超过指定数量(quorum)的sentinel都认为该实例主观下线,则该实例客观下线。quorum值最好超过Sentinel实例数量的一半。二、选举master。

2024-03-22 18:54:57 1246

原创 微服务高级篇(二):分布式事务+Seata架构

但是全局锁是由seata管理的,而非seata管理的事务要和seata管理的事物修改一个数据时,就不需要使用全局锁,这样又会回到脏写问题。AT模式其实对这个问题也会处理,由于保存快照时会生成两个快照【修改前快照、修改后快照】,当事务1要回滚时比对修改后快照,发现数据被非seata管理的事物修改了,就给通知人工处理。:一个事务A修改完数据释放DB锁,事务B又获得DB锁修改数据后释放锁,此时A出错,获得DB锁根据快照恢复数据,会导致事务B对数据的修改丢失。前两种模式都要加锁来保证隔离性,性能会变差;

2024-03-20 21:23:39 892 1

原创 微服务高级篇(一):微服务保护+Sentinel

记得要启动nacos方法参见此文章。

2024-03-19 19:28:02 704

原创 微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-下

演示:# 自定义拼音分词器PUT /test},"py": {},"name": {"id": 1,"name": "狮子""id": 2,"name": "虱子""query": {"match": {"name": "掉入狮子笼咋办"拼音分词器通常在创建索引库时使用,搜索时使用普通分词器即可。

2024-03-18 21:36:08 1161 1

原创 微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-中

响应结果类:由搜索框得到的查询结果类。请求参数类:搜索框中有哪些参数。

2024-03-15 20:32:34 1276

原创 微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-上

elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。2004年Shay Banon基于Lucene开发了Compass2010年Shay Banon 重写了Compass,取名为Elasticsearch。官网地址: https://www.elastic.co/cn/

2024-03-11 09:10:00 758

原创 微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(四):消息队列MQ

异步通信的缺点:依赖于Broker的可靠性、安全性、吞吐能力;架构复杂了,业务没有明显的流程线,不好追踪管理;在官网 https://www.rabbitmq.com/ 中,选择文件 -> 入门,可看见案例demo。上述传递的都是String类型的,而实际需要传递Object类型的数据,因此我么需要对消息进行转换。同步调用的问题:耦合度高;异步通信的优点:耦合度低;实现消费者1接收中国的所有消息,消费者2接收所有的新闻。同步调用的优点:时效性较强,可以立即得到结果;下面演示:官网的基本消息队列模型。

2024-03-09 18:07:38 1273

原创 微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(三):Docker

Docker安装与配置阿里云镜像加速镜像是将应用程序程序需要的系统函数库、环境、配置、依赖打包而成。镜像是分层结构,每层称为一个Layer。方式一# 指定基础镜像# 配置环境变量,JDK的安装目录# 拷贝jdk和java项目的包# 安装JDK# 配置环境变量# 暴露端口# 入口,java项目的启动命令方式二:利用其他人制作好的镜像(如java:8-alpine)# 指定基础镜像# 暴露端口# 入口,java项目的启动命令。

2024-03-09 14:26:48 775

原创 微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(二):Nacos注册中心、Feign远程调用、Gateway服务网关

import cn@MapperScan("cn.itcast.order.mapper") @SpringBootApplication // 引入feign客户端,加载指定包中的类,并全局配置 @EnableFeignClients(clients = UserClient . class , defaultConfiguration = DefaultFeignConfiguration . class) public class OrderApplication {

2024-02-05 18:06:00 928 1

原创 微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(一):RestTemplate远程调用、Eureka注册中心、Ribbon负载均衡

第一种方式是针对全体,即order服务访问任何微服务都是一样的负载均衡规则;第二种方式是针对具体的,即order服务访问某个具体的微服务的负载均衡规则。

2023-12-13 10:49:51 108

原创 SSM框架(七):MyBatisPlus

MyBatisPlus是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率。和。

2023-12-12 10:42:19 152

原创 SSM框架(六):SpringBoot技术及整合SSM

【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目。

2023-12-03 17:44:39 731

原创 SSM框架(五):Maven进阶

可选依赖是自己用的依赖可以设置为是否给其他人用,解释:这里的optional设置为true表示maven_03_pojo依赖只能自己用,不能被其他人用。排除依赖是不想用 引用的这个依赖 的下一级依赖,解释:exclusions表示不想用maven_04_dao下的log4j和mybatis依赖。第二步:在本地的maven的setting.xml(apache-maven-3.3.9\conf下)文件中配置,访问私服的仓库的用户名和密码。其次:想要配置访问中央服务器的地址,这里可以改为阿里的。

2023-12-02 23:06:29 960

原创 SSM框架(四):SSM整合 案例 + 异常处理器 +拦截器

定义异常编码Code.class//状态码定义业务异常//自定义异常处理器,用于封装异常信息,对异常进行分类定义系统异常//自定义异常处理器,用于封装异常信息,对异常进行分类// 构造方法拦截异常并处理import com。

2023-12-01 17:45:34 265

原创 SSM框架(三):SpringMVC

<plugins><plugin></plugin><plugin></plugin></plugins>

2023-11-28 22:13:49 537

原创 SSM框架(二):AOP和事物

导入坐标定义dao接口和实现类定义通知类:定义切入点,绑定切入点与通知的关系//通知类必须配置成Spring管理的bean@Component//设置当前类为切面类类@Aspect//设置切入点,要求配置在方法上方//设置在切入点pt()的前面运行当前操作(前置通知)开启Spring对AOP注解驱动的支持//开启注解开发AOP功能在业务层接口的方法或者接口类(表示里面所有方法都事务管理)上添加事务管理注解/*** 转账操作* @param out 传出方。

2023-11-21 20:40:53 82

原创 SSM框架(一):Spring 容器

创建容器的两种方式获取bean的三种方式配置bean依赖注入。

2023-11-20 17:19:33 126

原创 Java web(七):Vue&Element

Vue 是一套前端框架,免除原生JavaScript中的DOM操作,简化书写。基于MVVM(Model-View-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上。vue的使用需要引入脚本在webapp目录下建一个js/vue.js。

2023-11-07 15:11:27 147

原创 Java web(六):Filter&Listener&AJAX

过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。过滤器一般完成一些通用的操作:权限控制、统一编码处理 、 敏感字符处理 等实现Filter接口添加WebFilter注解,并配置拦截路径实现doFilter方法@WebFilter("/*") // 拦截所有页面@Override// 1.当出现以下资源可以放行//判断访问资源路径是否和登录注册相关// 获取当前访问的资源路径//循环判断//找到了//放行//break;return;

2023-11-04 17:39:54 683

原创 Java web(五):会话技术

注意:1. 服务器正常关闭,session不会销毁;2. 当浏览器关闭后再次访问服务器,由于前后两次不是同一个会话,所以第二次打开浏览访问的session与前一个不同。Session是基于Cookie实现的,不同浏览器请求的不同的Session(通过Cookie的id区分)注意:每生成一个验证码要加上名字辨识,因为生成一个二维码会有缓存,不加辨识无法生成一个新的code。上述第一种销毁方式要写进webapp/WEB-INF/web.xml中。在JSP页面如何获取Cookie?

2023-11-04 09:32:28 114

原创 Java web(四):JSP

JSP(全称:Java Server Pages):Java 服务端页面。是一种动态的网页技术,其中既可以定义 HTML、JS、CSS等静态内容,还可以定义 Java代码的动态内容,也就是 JSP = HTML + Java。

2023-11-03 16:14:44 168

原创 Java web(三):Http、Tomcat、Servlet

官网:https://tomcat.apache.org/方式一:方式二:request接受来自浏览器的请求数据4.2 通用方式获取请求参数4.3 请求参数中文乱码问题4.4 请求转发五、ResponseResponse设置响应数据注意:虚拟目录问题,一般来说服务器使用(不需要加上虚拟目录),浏览器使用(需要加上虚拟目录)五、项目小实战【用户登录注册】 and

2023-11-02 21:19:51 118

原创 Java web(二)MyBatis

MyBatis是一款持久层框架,用于简化JDBC开发。JavaEE三层架构:表现层[页面展示]、业务层[逻辑处理]、持久层[负责将数据保存到数据库]。由于JDBC存在一些缺点:硬编码(例如,参数、SQL语句写入到代码中)、操作繁琐(手动设置参数和封装结果集),MyBatis就会设置配置文件、自动完成繁琐操作来解决上述问题。

2023-10-31 16:04:41 114

原创 Java web(一)Maven

compile:编译clean:清理test:测试package:打包install:安装,将当前项目安装到本地仓库中按住Shift+右键,选择在此处打开Powershell窗口,进入控制台,使用mvn 上述命令。

2023-09-19 16:12:21 450

结合JSP、servlet、EI、JSTL的增删改查项目

结合JSP、servlet、EI、JSTL的增删改查项目

2023-11-03

空空如也

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

TA关注的人

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