![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
微服务
文章平均质量分 93
一万年可长否
一个平平无奇的学习人
本人主要发布一些个人学习笔记,如有错误,请批评指正。
展开
-
微服务项目实战-黑马头条(十三):持续集成
持续集成( Continuous integration , 简称 CI )指的是,频繁地(一天多次)将代码集成到主干持续集成的组成要素一个自动构建过程, 从检出代码、 编译构建、 运行测试、 结果记录、 测试统计等都是自动完成的, 无需人工干预。一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库,一般使用SVN或Git。一个持续集成服务器, Jenkins 就是一个配置简单和使用方便的持续集成服务器。原创 2024-05-08 15:07:29 · 749 阅读 · 0 评论 -
微服务项目实战-黑马头条(十二):热点文章-实时计算
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 · 735 阅读 · 0 评论 -
微服务项目实战-黑马头条(十一):热点文章-定时任务、xxl-Job分布式任务调度
当前软件的架构已经开始向分布式架构转变,将单体结构拆分为若干服务,服务之间通过网络交互来完成业务处理。在分布式架构下,一个服务往往会部署多个实例来运行我们的业务,如果在这种分布式系统环境下运行任务调度,我们称之为分布式任务调度。将任务调度程序分布式构建,这样就可以具有分布式系统的特点,并且提高任务的调度处理能力:1、并行任务调度并行任务调度实现靠多线程,如果有大量任务需要调度,此时光靠多线程就会有瓶颈了,因为一台计算机CPU的处理能力是有限的。原创 2024-04-27 21:54:17 · 775 阅读 · 0 评论 -
微服务项目实战-黑马头条(十):用户行为
黑马头条项目整个项目开发涉及web展示和大数据分析来给用户推荐文章,如何找出哪些文章是热点文章进行针对性的推荐呢?这个时候需要进行大数据分析的准备工作,埋点。所谓“埋点”,是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如用户某个icon点击次数、阅读文章的时长,观看视频的时长等等。原创 2024-04-26 15:36:44 · 673 阅读 · 0 评论 -
微服务项目实战-黑马头条(九):平台管理
这部分黑马未提供视频讲解,原创 2024-04-26 10:59:59 · 1045 阅读 · 0 评论 -
微服务项目实战-黑马头条(八):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 · 1215 阅读 · 3 评论 -
微服务项目实战-黑马头条(七):自媒体端-kafka及异步通知文章上下架
消息中间件对比特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高(主从)高(主从)非常高(分布式)非常高(分布式)功能特性成熟的产品、较全的文档、各种协议支持好并发能力强、性能好、延迟低MQ功能比较完善,扩展性佳只支持主要的MQ功能,主要应用于大数据领域消息中间件对比-选择建议消息中间件建议Kafka。原创 2024-04-22 11:03:13 · 1040 阅读 · 0 评论 -
kafka的配置
文章目录一、生产者配置二、消费者配置一、生产者配置NAMEDESCRIPTIONTYPEDEFAULTVALID VALUESIMPORTANCEbootstrap.servershost/port列表,用于初始化建立和Kafka集群的连接。列表格式为host1:port1,host2:port2,…,无需添加所有的集群地址,kafka会根据提供的地址发现其他的地址(你可以多提供几个,以防提供的服务器关闭)listhighkey.serializer实现 o原创 2024-04-21 22:44:06 · 762 阅读 · 0 评论 -
微服务项目实战-黑马头条(六):自媒体端-延迟任务审核文章流程
定时任务:有固定周期的,有明确的触发时间延迟队列:没有固定的开始时间,它常常是由一个事件触发的,而在这个事件触发之后的一段时间内触发另一个事件,任务可以立即执行,也可以延迟应用场景:场景一:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单;如果期间下单成功,任务取消场景二:接口对接出现网络问题,1分钟后重试,如果失败,2分钟重试,直到出现阈值终止上述流程:1.首先作者发布文章后,就采用异步的方式将文章交给延迟任务微服务。原创 2024-04-21 17:27:39 · 706 阅读 · 0 评论 -
微服务项目实战-黑马头条(五):自媒体端-自动审核流程
文章目录一、自媒体文章自动审核流程二、内容安全第三方接口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 · 881 阅读 · 0 评论 -
微服务项目实战-黑马头条(四):自媒体端-素材管理与文章管理
文章目录一、自媒体前后端搭建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 · 630 阅读 · 0 评论 -
微服务项目实战-黑马头条(三):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 · 945 阅读 · 0 评论 -
微服务项目实战-黑马头条(二):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 · 1063 阅读 · 0 评论 -
微服务项目实战-黑马头条(一):环境搭建 + APP登录功能【前端静态资源+nginx反向代理+网关+过滤器】
heima-leadnews-service的pom文件解析引导类UserApplicationimport org} }} }} }MapperScan;原创 2024-04-08 17:22:37 · 1305 阅读 · 0 评论 -
微服务高级篇(五):可靠消息服务
如何确保RabbitMQ消息的可靠性?开启生产者确认机制,确保生产者的消息能到达队列开启持久化功能,确保消息未消费前在队列中不会丢失开启消费者确认机制为auto,由spring确认消息处理成功后完成ack开启消费者失败重试机制,并设置MessageRecoverer,多次重试失败后将消息投递到异常交换机,交由人工处理。原创 2024-03-26 17:06:47 · 1097 阅读 · 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 · 1450 阅读 · 0 评论 -
微服务高级篇(三):分布式缓存+Redis集群
slave节点宕机恢复后可以找master节点同步数据那master节点宕机怎么办?一、服务状态监控主观下线:如果某sentinel节点发现某实例未在规定时间响应,则认为该实例主观下线。客观下线:若超过指定数量(quorum)的sentinel都认为该实例主观下线,则该实例客观下线。quorum值最好超过Sentinel实例数量的一半。二、选举master。原创 2024-03-22 18:54:57 · 1268 阅读 · 0 评论 -
微服务高级篇(二):分布式事务+Seata架构
但是全局锁是由seata管理的,而非seata管理的事务要和seata管理的事物修改一个数据时,就不需要使用全局锁,这样又会回到脏写问题。AT模式其实对这个问题也会处理,由于保存快照时会生成两个快照【修改前快照、修改后快照】,当事务1要回滚时比对修改后快照,发现数据被非seata管理的事物修改了,就给通知人工处理。:一个事务A修改完数据释放DB锁,事务B又获得DB锁修改数据后释放锁,此时A出错,获得DB锁根据快照恢复数据,会导致事务B对数据的修改丢失。前两种模式都要加锁来保证隔离性,性能会变差;原创 2024-03-20 21:23:39 · 974 阅读 · 1 评论 -
微服务高级篇(一):微服务保护+Sentinel
记得要启动nacos方法参见此文章。原创 2024-03-19 19:28:02 · 709 阅读 · 0 评论 -
微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-下
演示:# 自定义拼音分词器PUT /test},"py": {},"name": {"id": 1,"name": "狮子""id": 2,"name": "虱子""query": {"match": {"name": "掉入狮子笼咋办"拼音分词器通常在创建索引库时使用,搜索时使用普通分词器即可。原创 2024-03-18 21:36:08 · 1178 阅读 · 1 评论 -
微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-中
响应结果类:由搜索框得到的查询结果类。请求参数类:搜索框中有哪些参数。原创 2024-03-15 20:32:34 · 1288 阅读 · 0 评论 -
微服务技术栈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 · 760 阅读 · 0 评论 -
微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(四):消息队列MQ
异步通信的缺点:依赖于Broker的可靠性、安全性、吞吐能力;架构复杂了,业务没有明显的流程线,不好追踪管理;在官网 https://www.rabbitmq.com/ 中,选择文件 -> 入门,可看见案例demo。上述传递的都是String类型的,而实际需要传递Object类型的数据,因此我么需要对消息进行转换。同步调用的问题:耦合度高;异步通信的优点:耦合度低;实现消费者1接收中国的所有消息,消费者2接收所有的新闻。同步调用的优点:时效性较强,可以立即得到结果;下面演示:官网的基本消息队列模型。原创 2024-03-09 18:07:38 · 1287 阅读 · 0 评论 -
微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(三):Docker
Docker安装与配置阿里云镜像加速镜像是将应用程序程序需要的系统函数库、环境、配置、依赖打包而成。镜像是分层结构,每层称为一个Layer。方式一# 指定基础镜像# 配置环境变量,JDK的安装目录# 拷贝jdk和java项目的包# 安装JDK# 配置环境变量# 暴露端口# 入口,java项目的启动命令方式二:利用其他人制作好的镜像(如java:8-alpine)# 指定基础镜像# 暴露端口# 入口,java项目的启动命令。原创 2024-03-09 14:26:48 · 781 阅读 · 0 评论 -
微服务技术栈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 · 954 阅读 · 1 评论 -
微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(一):RestTemplate远程调用、Eureka注册中心、Ribbon负载均衡
第一种方式是针对全体,即order服务访问任何微服务都是一样的负载均衡规则;第二种方式是针对具体的,即order服务访问某个具体的微服务的负载均衡规则。原创 2023-12-13 10:49:51 · 127 阅读 · 0 评论