SpringCloud 上

Spring Cloud 是在 Spring Boot 基础上构建的, 用于检查分布式系统构建的工具集. 工具集包括 配置管理, 服务发现, 智能路由,断路器,为代理和控制总线.

服务发现 Eureka

包括 服务发现组件(Eureka Server) 也叫做注册中心 和 客户端发现组件 (Eureka Client)

SpringCloud 上

SpringCloud 上

服务之间的调用, 现在假设已经注册完成, consumer 先去 注册中心获取到了服务地址, 然后再去调用相关服务.

在服务调用过程中, 用到了一个工具, 叫做 RestTemplate, RestTemplate 是由 Spring 提供的一个 HTTP 请求工具(要知道一个HTTP请求, 可能需要带head等)

当然, Java 也提供了一个自带的 HttpUrlConnection 或者经典的 HttpClient, 只是在 Spring 项目中, 使用 RestTemplate 更方便一些.

RestTemplate 提供常见的 REST 请求方案的模板, 例如 GET 请求, POST 请求,

Ribbon 负载均衡器

SpringCloud 上

Hystrix + Dashboard

这个 Dashboard 本身是配合 Hystrix 使用的, 有相关的注解, 然后这个 Dashboard 本身自己也是一个微服务.

SpringCloud 上

SpringCloud 上

SpringCloud 上

启动这个工程(实际上本身就是一个微服务), 通过浏览器 http://localhost:8031/hystrix.stream 将会看到下图:

SpringCloud 上

API 网关

实际上, API 网关也是一个微服务, 也需要注册到注册中心.

SpringCloud 上

SpringCloud 上

分布式配置管理

Spring Cloud Config, 传统的单体的, 会将配置和代码放在一起, 但随着系统越来越大, 引入了分布式系统, 同时也将系统功能进行更加细化的拆分.

拆分后, 所有的服务应用都会有自己的配置文件, 当需要修改某个服务的配置时, 我们可能需要修改很多处, 并且为了某一项配置的修改, 可能需要重启这个服务相关的所有服务, 非常麻烦.

为了便于集中配置的统一管理, 在分布式架构中通常会使用分布式配置中心组件, 现在比较流行的有 携程的 apollo, spring Cloud Config 等.

Spring Cloud Config 为分布式系统的 外部配置 提供了 服务器(Config Server) 和 客户端(Config Client) 支持.

服务器端: 被称为分布式配置中心, 它是一个独立的微服务, 主要用于集中管理应用程序各个环境下的配置, 默认使用 Git 存储配置文件内容, 也可以使用SVN存储, 或者本地文件存储.

客户端: 就是微服务架构中的各个微服务应用. 它们通过指定的配置中心(Config Server) 来管理应用资源以及与业务相关的配置内容, 并在启动时从配置中心获取和加载配置信息.

SpringCloud 上

而且, 还可以通过 BUS 总线的方式, 实现动态修改配置(为了已经启动的微服务)

1) 客户端 也要加相关注解

SpringCloud 上

Original: https://www.cnblogs.com/moveofgod/p/14670402.html
Author: 神之一招
Title: SpringCloud 上

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/541354/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 微服务框架核心源码深度解析<<大厂学院完结>>

    Sentinel核心源码解析 Sentinel是分布式系统的防御系统。以流量为切入点,通过动态设置的流量控制、服务熔断等手段达到 保护系统的目的,通过服务降级增强服务被拒后用户的体…

    Java 2023年6月7日
    092
  • JavaSE前期准备1

    历史(建议了解即可) 一、1990年,美国Sun公司的”Stealth计划”(后改名为”Green计划”)目标设置在家用电器等小型系…

    Java 2023年6月5日
    092
  • springboot用户上传图片

    前端 图片上传.html <html xmlns:th="http://www.thymeleaf.org"> <head> <m…

    Java 2023年6月6日
    091
  • 使用Dom4j、反射自定义实现xml与java对象互转

    一、前言国庆假期临近,工作动力不强。所以写几篇之前项目中自己用到的一些可能有用的东西分享出来。今天分享的是Xml与javaBean互转的自定义实现。先说几种我知道的Xml与java…

    Java 2023年6月14日
    094
  • 期末考试代码

    import javax.swing.*; import java.awt.*; //import java.awt.event.InputEvent; //import java…

    Java 2023年6月9日
    096
  • Redis入门到实战

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月7日
    084
  • RabbitMQ:消息丢失 | 消息重复 | 消息积压的原因+解决方案+网上学不到的使用心得

    首先说一点,企业中最常用的实际上既不是RocketMQ,也不是Kafka,而是RabbitMQ。RocketMQ很强大,但主要是阿里推广自己的云产品而开源出来的一款消息队列,其实中…

    Java 2023年6月9日
    058
  • 掌握这些Java基础知识,面试再也不难

    掌握这些Java基础知识,面试再也不难,这几天一直在公司忙于学习公司的业务,很难抽出时间记录博客。之前投的简历在上周周末进行了面试,中等大小的公司,以下是问到的面试题,之前有记录过…

    Java 2023年6月9日
    083
  • 5.0.SpringBoot整合Kafka(工具安装ZK)

    我们在使用Kafka的时候,是依赖于zookeeper的,所以我们先安装好工具在去集成,这样之后也能直接跑起来。 我是Windows系统所以直接安装Win版本的zk和Kafka(M…

    Java 2023年6月9日
    085
  • Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime

    Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime 周银辉 我的mac os 版本是10.9.2, JDK配置得好好的,但打开eclipse时还是提…

    Java 2023年5月29日
    083
  • YSPASYS 中小型企业简单员工评价考核系统

    背景:公司运营接近2年时间了,随着不断的有员工入职、离职,使用信息化管理员工各类信息是一件很有必要的事儿。诸如员工基本信息,内部公告,资产盘点,客户管理,工作周报,优秀员工评选,请…

    Java 2023年6月9日
    0100
  • Mysql优化

    1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表…

    Java 2023年6月9日
    092
  • eShopOnContainers 是一个基于微服务的.NET Core示例框架

    找到一个好的示例框架很难,但不是不可能。大多数是小型Todo风格的应用程序,通常基于SimpleCRUD。值得庆幸的是,Microsoft已经为eShopOnContainers创…

    Java 2023年6月7日
    085
  • java动态编译

    Java动态编译:http://pfmiles.github.io/blog/dynamic-java/ 动态编译代码:https://github.com/giraffe/Dyn…

    Java 2023年5月29日
    096
  • ACM模式输入输出,简单总结

    整体框架 import java.util.Scanner; public class Main{ public static void main(String[] args){ …

    Java 2023年6月7日
    097
  • MQ 简介

    You must try things that may not work. And you must not let anyone define your limits beca…

    Java 2023年6月9日
    066
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球