微服务技术
文章平均质量分 89
学习微服务技术
但盼风雨来 能留你在此
这个作者很懒,什么都没留下…
展开
-
SpringBoot——原理
其实不管是springboot程序还是spring程序,启动过程本质上都是在做容器的初始化,并将对应的bean初始化出来放入容器。在spring环境中,每个bean的初始化都要开发者自己添加设置,但是切换成springboot程序后,自动配置功能的添加帮助开发者提前预设了很多bean的初始化过程,加上各种各样的参数设置,使得整体初始化过程显得略微复杂,但是核心本质还是在做一件事,初始化容器。...原创 2022-08-13 18:03:20 · 1544 阅读 · 0 评论 -
SpringBoot——开发实用(二)
info端点描述了当前应用的基本信息,可以通过两种形式快速配置info端点的信息配置形式在yml文件中通过设置info节点的信息就可以快速配置端点信息infoappNameversioncompany传智教育authoritheima编程形式通过配置的形式只能添加固定的数据,如果需要动态数据还可以通过配置bean的方式为info端点添加信息,此信息与配置信息共存。@Component@Override//添加单个信息//添加一组信息}}...原创 2022-07-31 20:41:01 · 536 阅读 · 0 评论 -
SpringBoot——开发实用(一)
一个springboot项目在运行时实际上是分两个过程进行的,根据加载的东西不同,划分成base类加载器与restart类加载器。base类加载器用来加载jar包中的类,jar包中的类和配置文件由于不会发生变化,因此不管加载多少次,加载的内容不会发生变化restart类加载器用来加载开发者自己开发的类、配置文件、页面等信息,这一类文件受开发者影响热部署的过程实际上是重新加载restart类加载器中的信息。......原创 2022-07-23 09:20:29 · 297 阅读 · 0 评论 -
SpringBoot——运维
1、Windows命令2、日志日志其实就是记录程序日常运行的信息,主要作用如下:编程期调试代码运营期记录信息记录日常运营重要信息(峰值流量、平均响应时长……)记录应用报错信息(错误堆栈)记录运维过程数据(扩容、宕机、报警……)日志设置好以后可以根据设置选择哪些参与记录。这里是根据日志的级别来设置的。日志的级别分为6种,分别是:TRACE:运行堆栈信息,使用率低DEBUG:程序员调试代码使用INFO:记录运维过程数据WARN:记录运维过程报警数据ERROR:记录错误堆栈信息FATAL:灾难原创 2022-06-28 09:55:17 · 204 阅读 · 0 评论 -
RocketMQ(二)—— 高级功能
目录1、消息存储消息存储结构刷盘机制1、同步刷盘2、异步刷盘2、高可用性机制1、消息消费高可用2、消息发送高可用3、消息主从复制1、同步复制2、异步复制3、负载均衡1、Producer负载均衡2、Consumer负载均衡1、集群模式2、广播模式4、消息重试1、顺序消息的重试2、无序消息的重试3、配置方式5、死信队列特性6、消费幂等处理方式1、消息存储 消息生成者发送消息 MQ收到消..原创 2021-12-04 22:09:21 · 362 阅读 · 0 评论 -
RocketMQ(一)—— 基本使用
1、RocketMQ基本使用1、启动1.启动NameServer# 1.启动NameServernohup sh bin/mqnamesrv &# 2.查看启动日志tail -f ~/logs/rocketmqlogs/namesrv.log2.启动Broker# 1.启动Brokernohup sh bin/mqbroker -n localhost:9876 &# 2.查看启动日志tail -f ~/logs/rocketmqlogs/broker原创 2021-12-01 15:40:25 · 1798 阅读 · 0 评论 -
MQ高级特性
1、消息可靠性消息从生产者发送到exchange,再到queue,再到消费者,有哪些导致消息丢失的可能性?发送时丢失:生产者发送的消息未送达exchange 消息到达exchange后未到达queueMQ宕机,queue将消息丢失 consumer接收到消息后未消费就宕机1、生产者确认机制RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢失。消息发送到MQ以后,会返回一个结果给发送者,表示消息是否处理成功。结果有两种请求:publi...原创 2021-11-21 22:12:52 · 334 阅读 · 0 评论 -
分布式缓存
1、redis持久化RDB启动redis:redis-server redis-6.2.4/redis.confredis-cliRDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。快照文件称为RDB文件,默认是保存在当前运行目录。Redis停机时会执行一次RDB。Redis内部有触发RDB的机制,可以...原创 2021-11-17 21:52:48 · 566 阅读 · 0 评论 -
分布式事务
在分布式系统下,一个业务跨越多个服务或数据源,每个服务都是一个分支事务,要保证所有分支事务最终状态一致,这样的事务就是分布式事务。1、理论基础1、CAP定理分布式系统有三个指标:Consistency(一致性) Availability(可用性) Partition tolerance (分区容错性)Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致。Availability (可用性):用户访问集群中的任意健康节点,必须能得到响...原创 2021-11-13 22:45:02 · 470 阅读 · 0 评论 -
微服务保护——sentinel
目录1、初识Sentinel1、雪崩问题2、使用Sentinel2、限流规则1、入门2、流控模式流控模式——关联流控模式——链路3、流控效果流控效果——warmup流控效果——排队等候4、热点参数限流3、隔离和降级1、FeignClient整合Sentinel2、线程隔离3、熔断降级熔断策略——慢调用熔断策略——异常比例,异常数4、授权规则1、授权规则2、自定义异常结果5、规则持久化1、规...原创 2021-11-11 16:20:35 · 329 阅读 · 0 评论 -
应用配置中心——Apollo
目录1、简介2、使用Apollo1、启动2、创建项目建集群建名称空间新增配置创建一个新的项目3、微服务集成Apollo客户端1、简介Apollo (阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。...原创 2021-10-12 13:19:27 · 1435 阅读 · 0 评论 -
分布式搜索引擎——elasticsearch(三)
1、数据聚合聚合可以实现对文档数据的统计、分析、运算。聚合常见的有三类:桶(Bucket)聚合:用来对文档做分组 TermAggregation:按照文档字段值分组 Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月为一组 度量(Metric)聚合:用以计算一些值,比如:最大值、最小值、平均值等 Avg:求平均值 Max:求最大值 Min:求最小值 Stats:同时求max、min、avg、sum等 管道(pipeline)聚合:其它聚合的结果为基础做聚合 原创 2021-10-01 17:00:10 · 376 阅读 · 0 评论 -
分布式搜索引擎——elasticsearch(二)
1、DSL查询语法常见的查询类型包括:查询所有:查询出所有数据,一般测试用。例如:match_all 全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。例如: match_query multi_match_query 精确查询:根据精确词条值查找数据,一般是查找keyword、数值、日期、boolean等类型字段。例如: ids range:根据值的范围查询 term:根据词条精确值查询 地理(geo)查询:根据经纬度查询。例如:原创 2021-09-30 13:42:39 · 144 阅读 · 0 评论 -
分布式搜索引擎——elasticsearch(一)
1、认识elasticsearch正向索引和倒排索引elasticsearch采用倒排索引:文档(document):每条数据就是一个文档 词条(term):文档按照语义分成的词语倒排索引中包含两部分内容:词条词典(Term Dictionary):记录所有词条,以及词条与倒排列表(Posting List)之间的关系,会给词条创建索引,提高查询和插入效率 倒排列表(Posting List):记录词条所在的文档id、词条出现频率 、词条在文档中的位置等信息...原创 2021-09-28 13:31:20 · 194 阅读 · 0 评论 -
RabbitMQ
1、初识MQ运行MQ容器docker run \ -e RABBITMQ_DEFAULT_USER=itcast \ -e RABBITMQ_DEFAULT_PASS=123321 \ --name mq \ --hostname mq1 \ -p 15672:15672 \ -p 5672:5672 \ -d \ rabbitmq:3-managementhttp://192.168.126.133:15672/itcast 123321...原创 2021-09-25 13:46:15 · 85 阅读 · 0 评论 -
docker
1、初识dockerDocker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像 Docker应用运行在容器中,使用沙箱机制,相互隔离Docker如何解决开发、测试、生产环境有差异的问题Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行2、基本操作docker save -o redis.ta...原创 2021-09-22 16:41:58 · 48 阅读 · 0 评论 -
springcloud(二)
目录1、Nacos配置管理配置自动刷新多环境配置共享Nacos集群搭建2、http客户端Feign自定义配置Feigin优化Feign最佳实践3、统一网关Gateway搭建网关路由过滤器 GatewayFilter全局过滤器 GlobalFilter过滤器执行顺序跨域问题1、Nacos配置管理1.引入Nacos的配置管理客户端依赖: <dependency> ...原创 2021-09-20 13:32:45 · 101 阅读 · 0 评论 -
springcloud(一)
这个类会在对RestTemplate的请求进行拦截,然后从Eureka根据服务id获取服务列表,随后利用负载均衡算法得到真实的服务地址信息,替换服务id。spring会自动帮助我们从eureka-server端,根据userservice这个服务名称,获取实例列表,而后完成负载均衡。微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。原创 2021-09-17 15:26:55 · 99 阅读 · 0 评论 -
Zookeeper
1、Zookeeper 概念Zookeeper 是 Apache Hadoop 项目下的一个子项目,是一个树形目录服务。Zookeeper 翻译过来就是 动物园管理员,他是用来管 Hadoop(大象)、Hive(蜜蜂)、Pig(小 猪)的管理员。简称zkZookeeper 是一个分布式的、开源的分布式应用程序的协调服务。Zookeeper 提供的主要功能包括:配置管理 分布式锁 集群管理2、Zookeeper命令操作1、Zookeeper 数据模型ZooK...原创 2021-07-24 15:44:45 · 671 阅读 · 0 评论 -
搭建Zookeeper集群
真实的集群是需要部署在不同的服务器上的,但是在我们测试时同时启动很多个虚拟机内存会吃不消,所以我们通常会搭建伪集群,也就是把所有的服务都搭建在一台虚拟机上,用端口进行区分。我们这里要求搭建一个三个节点的Zookeeper集群(伪集群)。1、准备工作将Zookeeper解压 ,建立/usr/local/zookeeper-cluster目录cp -r apache-zookeeper-3.5.6-bin /opt/user/local/zookeeper-cluster/zookeep.原创 2021-07-24 15:20:40 · 87 阅读 · 0 评论 -
Dubbo
1、分布式系统中的相关概念1、大型互联网项目架构目标传统项目和互联网项目互联网项目特点:用户多 流量大,并发高 海量数据 易受攻击 功能繁琐 变更快 高性能:提供快速的访问体验。衡量网站的性能指标:响应时间:指执行一个请求从开始到最后收到响应数据所花费的总体时间。 并发数:指系统同时能处理的请求数量。•并发连接数:指的是客户端向服务器发起请求,并建立了TCP连接。每秒钟服务器连接的总TCP数量•请求数:也称为QPS(Query Per Second) 指每.原创 2021-07-22 21:39:03 · 320 阅读 · 0 评论 -
SpringBoot高级
1、SpringBoot原理分析1、SpringBoot自动配置Condition 是在Spring 4.0 增加的条件判断功能,通过这个可以功能可以实现选择性的创建 Bean 操作。package com.springboot.springbootcondition;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBoo..原创 2021-07-14 15:32:42 · 326 阅读 · 0 评论 -
SpringBoot基础
1、概述SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。2014 年 4 月,Spring Boot 1.0.0 发布。Spring的顶级项目之一(https://spring.io)。Spring缺点1) 配置繁琐虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且原创 2021-07-10 08:21:12 · 240 阅读 · 2 评论