SpringCloud知识点总结
# 什么是微服务**** 架构演进架构的发展历程是从单体式架构,到分布式架构,到SOA架构,再到微服务架构。 单体架构:未做任何拆分的Java Web程序 分布式架构:按照业务垂直划分,每个业务都是单体架构,通过API互相调用。 SOA架构:SOA是一种面向服务的架构。其应用程序的不同组件通过网络上的通信协议向其它组件提供服务或消费服务,所以也是分布式架构的一种。 微服务架构微服务架构在某种程度上是SOA架构的进一步的发展。 微服务目前并没有比较官方的定义。微服务 Microservices 之父,马丁.福勒,对微服务大概的概述如下: 就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style ) 。 但通常在其而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。 服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP ...
SpringCloud(三) Config,Bus,Stream,RabbitMq
spring cloud 3flag 全名: facebook linkin amazon google 1Config 分布式配置中心1.1Config 概述 Spring Cloud Config 解决了在分布式场景下多环境配置文件的管理和维护。 好处: • 集中管理配置文件 • 不同环境不同配置,动态化的配置更新 • 配置信息改变时,不需要重启即可更新配置信息到服务 1.2Config 快速入门 config server: 使用gitee创建远程仓库,上传配置文件 config-dev.yml或者直接创建 以provider的application.yml为例 把里面的内容复制到config-dev.yml 123456789101112131415161718192021server: port: 8002eureka: instance: hostname: localhost # 主机名 prefer-ip-address: true # 将当前实例的ip注册到eureka server 中。默认是false 注册主机名 ip-address: 1 ...
SpringCloud(二) Feign,Hystrix,gateway
spring cloud 21服务调用组件Feign1.1概述 Feign 是一个声明式的 REST 客户端,它用了基于接口的注解方式,很方便实现客户端配置。 Feign 最初由 Netflix 公司提供,但不支持SpringMVC注解,后由 SpringCloud 对其封装,支持了SpringMVC注解,让使用者更易于接受。 1.2快速入门 在消费端引入 open-feign 依赖 1234<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency> 编写Feign调用接口。复制粘贴被调方的conreoller方法,加上类路径。 GoodsFeignClient 1234567@FeignClient(value = "FEIGN-PROVIDER")public interface Go ...
SpringCloud(一) Eureka,Consul,Nacos,Ribbon
spring cloud 11服务的注册与发现框架 eureka netflex consul nacos dubbo 2微服务调用框架 ribbon feign 3熔断器框架 hystrix 4网关 gateway zuul 5配置中心 config 6服务总线 bus 1初识 Spring Cloud-面试1.1微服务架构 ①”微服务”一词源于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到http://martinfowler.com/articles/microservices.html ②微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间一般通过 HTTP 的 RESTfuL API 进行通信协作。 ③微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间一般通过 ...
SpringBoot原理,启动流程和监听机制
文章引用 同篇文章引自亮哥博客 SpringBoot2.X进阶 : https://haoyongliang.gitee.io springBoot入门回顾 profile是用来完成不同环境下,配置动态切换功能的。 spring.profiles.active=dev, application-dev application.properties > application.yml > application.yaml springboot 整合第三方工具,只需导入starter的依赖包即可 Spring Boot高级1. SpringBoot 原理分析1.1 ConditionCondition 是在Spring 4.0 增加的条件判断功能,通过这个可以功能可以实现选择性的创建 Bean 操作。 思考:SpringBoot是如何知道要创建哪个Bean的?比如SpringBoot是如何知道要创建RedisTemplate的? 案例:需求 在 Spring 的 IOC 容器中有一个 User 的 Bean,现要求: 导入Jedis坐标后,加载该Bean,没导入 ...
SpringBoot入门 整合mybatis,Redis,Junit
文章引用 同篇文章引自亮哥博客 SpringBoot2.X快速上手 : https://haoyongliang.gitee.io Spring Boot - 011. SpringBoot 概述SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻 辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度 上缩短了项目周期。2014 年 4 月,Spring Boot 1.0.0 发布。Spring的顶级项目之一(https://spring.io)。 1.1 Spring 缺点1.1.1 配置繁琐虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多 XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。 Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。 所有这些配置都代表了开发时的损耗。因为在思考Spring特 ...
快速上手SpringBoot1.X
Spring Boot技术栈(快速上手SpringBoot) 本篇带大家搭建开发环境,感受SpringBoot快速开发带来的好处 SpringBoot简介Spring Boot 是一套全新的框架,它来自于 Spring 大家族,因此 Spring 所有具备的功能它都有,而且更容易使用;Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。Spring Boot 开发了很多的应用集成包,支持绝大多数开源软件,让我们以很低的成本去集成其他主流开源软件。 Spring Boot 所集成的技术栈,几乎都是各互联网公司在使用的技术,按照 Spring Boot 的路线去学习,基本可以了解国内外互联网公司的技术特点。 Spring Boot 和微服务架构都是未来软件开发的一个大趋势,越早参与其中受益越大。 1.开发环境搭建1.创建和导入项目 访问 http://start.spring.io/ 选择构建工具 Maven Project、Spring Boot 版本 1.5.8 及一些工程基本信息,可参考下图 ...
RocketMQ
RocketMQ课程约定资料格式配置文件: 1<groupId>com.itheima</groupId> Java代码: 1Statement stat = con.createStatement(); 示例: 1<groupId>com.itheima</groupId> 命令: 1mvn test 1. MQ简介1.1 项目工程弊端 1.2 MQ简介 MQ(Message Queue)消息队列,是一种用来保存消息数据的队列. 队列:数据结构的一种,特征为 “先进先出” 何为消息 服务器间的业务请求 原始架构: 服务器中的A功能需要调用B、C模块才能完成 微服务架构: 服务器A向服务器B发送要执行的操作(视为消息) 服务器A向服务器C发送要执行的操作(视为消息) 小节:MQ概念 1.3 MQ作用` 1. 应用解耦 2. 快速应用变更维护 3. 流量削锋 1.4 MQ基本工作模式 应用解耦:(异步消息发送) 快速应用变更维护:(异步消息发送) 流量削锋:(异步消息发送) 1.5 MQ ...
Redis高级 (二)
redis基础回顾 数据格式 string set key value get key setex key second value 原子性 redssion ttl key 查看过期时间 hash hset key field value hget key field hgetall key list LPUSH key value LRANGE key start stop RPOP key set SADD key value SMEMBERS key SREM key value SDIFF key1 key2 key1包含的内容要大于key2 zset ZADD key score value ZRANGE key start stop WITHSCORES 分数从低到高 ZREVRANGE key start stop WITHSCORES 分数从高到低 ZREM key member 持久化 RDB 快照存储,有延时性 手动触发方式,save和bgsave命令 bgsave命令是针对save阻塞问题做的优化。Redis ...
Redis基础(一)
第一章 Redis基础课程计划 1. Redis 入 门 (了解) (操作) 2. 数据类型 (重点) (操作) (理解) 3. 常用指令 (操作) 4. Jedis (重点) (操作) 5. 持 久 化 (重点) (理解) 6. 数据删除与淘汰策略 (理解) 7. 主从复制 (重点) (操作) (理解) 8. 哨 兵 (重点) (操作) (理解) 9. Cluster集群方案 (重点) (操作) (理解) 10. 企业级缓存解决方案 (重点) (理解) 11. 性能指标监控 (了解) 学习目标:目标1:能够说出NoSQL的概念,redis的应用场景,能够完成redis的下载安装与启动以及一些常用的配置 目标2:能够说出redis常用的5种数据类型,对应这些数据类型的基本操作,应用场景及对应的解决方案 目标3:能够说出redis中常用的一些基本指令 目标4:能够使用jedis完成客户端应用程序的开发 目标5:能够说出redis数据持久化的两种方式,各自相关的操作配置及指令,以及两种方式的优缺点比较 1. Redis ...