五、微服务核心生态
文章平均质量分 97
清风微凉 aaa
这个作者很懒,什么都没留下…
展开
-
黑马-Cloud21版-面试篇13:Sentinel源码分析
例如,我们在order-service服务中,将的方法标记为一个资源。1)首先在order-service中引入sentinel依赖</</</2)然后配置Sentinel地址spring:cloud:sentinel:transport:dashboard: localhost:8089 # 这里我的sentinel用了8089的端口3)修改OrderService类的queryOrderById方法// 创建Entry,标记资源,资源名为resource1。原创 2024-09-02 00:58:31 · 1240 阅读 · 0 评论 -
黑马-Cloud21版-面试篇12:Nacos源码分析
protobuf的全称是Protocol Buffer,是Google提供的一种数据序列化协议,这是Google官方的定义:Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。可以简单理解为,是一种跨语言、跨平台的数据传输格式。与json的功能类似,但是无论是性能,还是数据大小都比json要好很多。原创 2024-09-02 00:58:20 · 1373 阅读 · 0 评论 -
黑马-Cloud21版-面试篇11:微服务常见面试题
这个题目主要考察对SpringCloud的组件基本了解:简单SpringCloud包含的组件很多,有很多功能是重复的。其中最常用组件包括:注册中心组件:Eureka、Nacos等负载均衡组件:Ribbon远程调用组件:OpenFeign网关组件:Zuul、Gateway服务保护组件:Hystrix、Sentinel服务配置管理组件:SpringCloudConfig、Nacos。原创 2024-09-02 00:58:05 · 2195 阅读 · 0 评论 -
黑马-Cloud21版-高级篇10:RabbitMQ-高级篇
既然通过回调机制来实现,就要编写回调函数。ReturnCallback:指消息到了交换机,但是路由的过程中失败了。每个RabbitTemplate只能配置一个RabbitTemplate是spring帮我们创建的,这个bean一定是一个单例的bean,整个容器只有一个,每个RabbitTemplate只能配置一个ReturnCallback,所以就不能每次在发消息时来配。原创 2024-09-02 00:57:53 · 621 阅读 · 0 评论 -
黑马-Cloud21版-高级篇09:多级缓存
多级缓存0.学习目标1.什么是多级缓存传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,如图:存在下面的问题:请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈Redis缓存失效时,会对数据库产生冲击多级缓存就是充分利用请求处理的每个环节,分别添加缓存,减轻Tomcat压力,提升服务性能:浏览器访问静态资源时,优先读取浏览器本地缓存访问非静态资源(ajax查询数据)时,访问服务端请求到达Nginx后,优先读取Nginx本地原创 2024-09-02 00:57:39 · 1136 阅读 · 0 评论 -
黑马-Cloud21版-高级篇08:分布式缓存
基于Redis集群解决单机Redis存在的问题。原创 2024-09-02 00:57:25 · 713 阅读 · 0 评论 -
黑马-Cloud21版-高级篇07:分布式事务
说明:在刚才呢我们已经学习了cap的定理,我们知道在分布式系统下因为分区不可避免,所以你不得不在一致性和可用性之间做出一个选择,但是这两个特性都非常重要,我一个都不想放弃那该如何办呢???解决:BASE理论(基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态。Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。原创 2024-09-02 00:57:15 · 562 阅读 · 0 评论 -
黑马-Cloud21版-高级篇06:微服务保护:初识Sentinel,流量控制,隔离和降级,授权规则,规则持久化
什么是雪崩问题?微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩。是一种预防措施。超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。Sentinel是阿里巴巴开源的一款微服务流量控制组件。丰富的应用场景。原创 2024-09-02 00:57:01 · 660 阅读 · 0 评论 -
黑马-Cloud21版-实用篇05:分布式搜索引擎03:数据聚合,自动补全,数据同步,集群
默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。默认的拼音分词器存在的问题不会分词: “如家酒店还不错” 的全拼首字母放在一块了,说明这句话没有被分词而是作为整体出现了。每个字都分词:“如家酒店还不错” 的每一个字都形成了拼音,这没什么用还不如形成全品呢,比如 rujia。没有汉字只剩拼音:大部分用的还是使用中文搜索而不是拼音搜索,有拼音只是锦上添花但你不能把汉字扔了。原创 2024-09-02 00:56:39 · 856 阅读 · 0 评论 -
黑马-Cloud21版-实用篇05:分布式搜索引擎02:DSL查询文档、搜索结果处理、RestClient查询文档、黑马旅游案例
分布式搜索引擎02在昨天的学习中,我们已经导入了大量数据到elasticsearch中,实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。所以今天,我们研究下elasticsearch的数据搜索功能。我们会分别使用DSL和RestClient实现搜索。0.学习目标1.DSL查询文档elasticsearch的查询依然是基于JSON风格的DSL来实现的。1.1.DSL查询分类Elasticsearch提供了基于JSON的DSL(Domain原创 2024-09-02 00:56:27 · 914 阅读 · 0 评论 -
黑马-Cloud21版-实用篇05:分布式搜索引擎01:es的概念以及安装es、kibana,索引库操作,文档操作,java代码操作索引库,java代码操作文档
分布式搜索引擎01– elasticsearch基础0.学习目标1.初识elasticsearch说明:随着业务的发展我们的数据量越来越庞大,传统的这种mysql数据库就渐渐的难以满足我们复杂的业务需求了,所以在微服务架构下一般都会用到一种分布式搜索的技术,今天就开始学习分布式搜索当中最为流行的一种elasticsearch。1.1.了解ES1.1.1.elasticsearch的作用elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需原创 2024-09-02 00:56:09 · 637 阅读 · 0 评论 -
黑马-Cloud21版-实用篇04:RabbitMQ的基本使用:初识MQ、快速入门、SpringAMQP
基本消息队列的消息发送流程:建立connection创建channel利用channel声明队列利用channel向队列发送消息基本消息队列的消息接收流程:建立connection创建channel利用channel声明队列定义consumer的消费行为handleDelivery()利用channel将消费者与队列绑定多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息。原创 2024-09-02 00:55:38 · 880 阅读 · 0 评论 -
黑马-Cloud21版-实用篇03:Docker概念,基本操作(镜像 容器 数据卷),Dockerfile自定义镜像,Docker-Compose集群部署,私服镜像仓库
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个真实目录。宿主机文件系统中的真实目录-------对应数据卷-------对应容器内部的目录在容器内部的目录写东西,那么这些东西会立即写到宿主机文件系统里。反过来在宿主机文件系统里对某个文件进行了修改,也会立即反映到容器内的这样一个目录中去。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。原创 2024-09-02 00:55:17 · 830 阅读 · 0 评论 -
黑马-Cloud21版-实用篇02:Nacos配置管理、集群,Feign远程调用、Feign的抽取优化,Gateway服务网关、网关中的跨域问题
使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象(远程调用的结果是json类型会自动转化为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式。原创 2024-09-02 00:54:52 · 914 阅读 · 0 评论 -
黑马-Cloud21版-实用篇01:微服务学习路线,单体、分布式、微服务架构的演变,服务拆分和RestTemplate,Eureka注册中心(模拟启动),Ribbon负载均衡,Nacos注册中心
单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。原创 2024-09-02 00:54:31 · 772 阅读 · 0 评论 -
SpringCloud(17~21章):Alibaba入门简介、Nacos服务注册和配置中心、Sentinel实现熔断与限流、Seata处理分布式事务
17 SpringCloud Alibaba入门简介17.1 why会出现SpringCloud alibabaSpring Cloud Netflix项目进入维护模式https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now说明Spring Cloud Netflix Projects Entering Maintenance Mode什么是维护模式将模块置于维护模式,意味着 S原创 2024-01-15 11:22:23 · 1253 阅读 · 0 评论 -
SpringCloud(10~16章):Hystrix断路器、zuul路由网关、Gateway新一代网关、Config分布式配置中心、Bus消息总线、Stream消息驱动、Sleuth分布式链路跟踪
10. Hystrix断路器虽然现在Hystrix服务降级框架SpringCloud官方停止更新了,但是它的设计理念非常优秀,服务降级 服务熔断 服务限流等等它的一些列思想是后面框架借鉴的必备良药。所以我们需要深入地了解一下Hystrix。虽然现在官网推荐使用resilience4j,但是它在国外用的比较多。在国内主要是使用Hystrix,或者sentienl(阿里的)消费侧服务侧都可以使用,一般在消费侧使用。10.1 概述10.1.1 分布式系统面临的问题分布式系统面临的问题复杂原创 2024-01-15 11:22:08 · 1201 阅读 · 0 评论 -
SpringCloud(5~9章):Eureka服务注册与发现,Zookeeper服务注册与发现,Consul服务注册与发现,Ribbon负载均衡服务调用,OpenFeign服务接口调用
5. Eureka服务注册与发现5.1 大纲图5.2 Eureka基础知识问题:为什么要使用服务注册中心,直接使用80消费者调用8081生成者不就行了???答:单个的消费者调用没有问题,如消费者有很多就需要统一进行管理了。举例:一个病人去私人医院一对一的专家服务,中间不用横着一个门诊挂号。如果病人有很多,那么这个微服务是否还能提供,这个专家还有没有余号,今天到底有多少个病人通过这个专家号,我们需要监控权限流量的管控等等,这时医院就需要有一个门诊即服务注册中心。5.2.1 什么是服务治理原创 2024-01-15 11:21:12 · 1035 阅读 · 0 评论 -
SpringCloud(1~4章):课前说明、理论入门、boot和cloud版本选择、组件替换、微服务架构编码构建(简写依赖版本号,跳过单元测试,Services窗口,热部署,封装协议,工程重构)
0. 课前说明0.1 课程内容SpringCloud + SpringCloud alibaba0.2 技术要求java8+maven+git、github+Nginx+RabbitMQ+SpringBoot2.00.3 课程大纲零基础:1~4章初级:5~9章中级:10~16章高级:17~21章1. 微服务架构零基础理论入门(小白必看)1.1 大纲1.2 理论介绍1.2.1 微服务架构概述1)什么是微服务微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,原创 2024-01-15 11:20:55 · 994 阅读 · 0 评论 -
Nginx基础+高级(2022版):待更新
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。原创 2024-01-15 11:19:58 · 788 阅读 · 0 评论 -
Nginx的简单学习(2019版):基本概念,安装、常用命令和配置文件,各种应用场景的配置(反向代理 负载均衡 动静分离 集群),原理(master和worker 连接数)
代理也被叫做网络代理,是一种比较特殊的网络服务,允许一个终端(通常指客户端)通过这个服务与另一个终端(通常指服务器端)进行非直接的连接。例如:一些网关、路由器等网络设备都具备网络代理的功能。代理服务有利于保障网络终端的隐私或者安全,可以在一定程度上阻止网络攻击(因为通过代理,可以隐藏真正的服务器端/客户端)。单台nginx的问题:高可用:当主服务器nginx宕机了,会自动切换到备份nginx服务器,由备份服务器进行分发请求。2台nginx服务器都会用到一个软件keepalived。原创 2024-01-15 11:19:43 · 881 阅读 · 0 评论 -
RabbitMQ:概念和安装,简单模式,工作,发布确认,交换机,死信队列,延迟队列,发布确认高级,其它知识,集群
1. 消息队列1.0 课程介绍1.1.MQ 的相关概念1.1.1.什么是MQMQ(message queue:消息队列),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不用依赖其他服务。上下游传递消息:例如qq号,同学A发消息给同学B,那么A同学就是上游 ,B同学就是下原创 2024-01-15 11:18:49 · 2244 阅读 · 1 评论 -
SpringBoot--CRUD测试案例:模拟后端人员开发,时间参数赋值,分页插件,文件上传阿里云,配置文件注入属性2种,登录校验:会话 jwt 过滤器fastJ 拦截器,全局异常处理器,事务,AOP
1. 概述本次案例模拟公司后端人员开发场景:当前案例的前端工程,前端人员已经帮我们开发好了,我们只需要关注服务端接口的开发。1.1 页面原型产品经理绘制的的页面原型的展示效果:成品展示:完成部门管理和员工管理的所有功能。2. 准备工作2.1 需求说明2.2 环境搭建:2.2.1 准本数据库表创建数据库tlias:略(使用SQLyog)在数据库中创建部门和员工表:在询问窗口中执行sql脚本即可-- 部门管理create table dept( id in原创 2024-01-15 11:17:33 · 1059 阅读 · 0 评论 -
003 第一季SpringBoot2核心技术-核心功能2:数据访问、单元测试、指标监控、原理解析:@Value、命令行参数、手动获取bean、自定义starter
说明:在SpringBoot中想要操作数据库完成增删改差,按照以往的经验:说明:导入jdbc场景会自动引入以下依赖:问题:导入MySQL的数据库驱动:用谁的数据库就导入谁的驱动。DataSourceTransactionManagerAutoConfiguration: 事务管理器的自动配置JdbcTemplateAutoConfiguration: JdbcTemplate的自动配置,可以来对数据库进行crud()可以修改这个配置项@ConfigurationProperties(pref原创 2024-01-15 11:16:50 · 1292 阅读 · 0 评论 -
002 第一季SpringBoot2核心技术-核心功能1:配置文件,Web开发:静态资源、请求参数、响应数据、Tymelef、拦截器、文件上传、异常处理、3大原生组件注入、切换tomact、定制化原理
SpringBoot2核心技术-核心功能:原创 2023-03-09 20:12:06 · 2282 阅读 · 0 评论 -
001 第一季SpringBoot2核心技术-基础入门:分类,概念,入门案例:主启动类、配置文件,bulid插件,自动配置原理:起步依赖、web依赖、包扫描、读取prop文件、热部署,boot项目
SpringBoot2学习路线说明说明:SpringBoot2分为核心技术和响应式编程2大类。SpringBoot2核心技术:SpringBoot2响应式编程:SpringBoot2核心技术SpringBoot2响应式编程SpringBoot2核心技术-基础入门SpringBoot2核心技术-核心功能...原创 2022-04-07 19:15:26 · 2514 阅读 · 0 评论