B082-SpringCloud-Eureka

news2024/11/17 13:13:02

目录

      • 微服务架构与springcloud
        • 架构演变
        • 为什么使用微服务
        • 微服务的通讯方式
        • 架构的选择
        • springcloud概述
        • 场景模拟之基础架构的搭建
        • 模拟微服务之间的服务调用
        • 目前远程调用的问题
      • eureka
        • 注册中心的作用
        • 注册中心的实现
        • 服务提供者注册到注册中心

springcloud基于springboot

微服务架构与springcloud

架构演变

1.一个单体项目
缺点:大型项目文件太多体积太大,维护难,编译难,测试难,一个tomcat不够用
在这里插入图片描述
2.集群部署单体项目(多做几个,做的都是同样的事情)
只能解决上述第4个问题,前三个问题更复杂,如改代码要同步改整个集群
新出现问题:不是所有功能用的人都很多,不同的功能需要集群的数量不一致
在这里插入图片描述
3.根据功能把项目分开,把单独的模块拆成项目
可以解决不同功能需要集群数量不一致的问题和剩下的前3个问题
新出现问题:服务之间的通信,jar之间的相互依赖
在这里插入图片描述
4.最后用上springcloud管理微服务
在这里插入图片描述

为什么使用微服务

一个项目/系统中各个模块的压力
压力大的模块做集群分担压力
在这里插入图片描述
其他见文档2.1.1,2.1.2,2.2.1,2.2.2

微服务的通讯方式

见文档2.2.3

架构的选择

见文档2.3

微服务是一种思想,是一种架构模式
springcloud是微服务的一种落地方案

见文档2.4

springcloud主要用来解决微服务之间通信的一系列问题

springcloud概述

见文档3

场景模拟之基础架构的搭建

不同的项目不同的端口
建立一个公共项目用来存放其他项目共同用到的类,然后给其他项目依赖,如user-common中的domain,query,user等
在这里插入图片描述
新建maven项目D082-springcloud-parent,tips:不要用下划线
删除src

新建maven模块user-common

新建maven模块user-provider-4010

新建maven模块user-consumer-5010

user-common的pom中引入lombok,刷新依赖,建立User类

生产者和消费者两个项目的pom中各自引入user-common,刷新依赖,新建UserController,使用依赖过来的User类

模拟微服务之间的服务调用

tips:隐藏不需要关心的.idea和.iml文件
设置 - 编辑器 - 文件类型 - 忽略文件和文件夹中追加* .idea;* .iml;

父级pom引入相关依赖

生产者和消费者两个项目的pom中各自引入web和test依赖,新建application.yml,配置端口,新建启动类

改造生产者的UserController,
启动生产者项目,浏览器访问:http://localhost:4010/user/provider/1

消费者中新建config.HttpUtils,把RestTemplate交给容器管理
新建UserController,
启动生产者和消费者两个项目,浏览器访问:http://localhost:5010/user/consumer/2

目前远程调用的问题

在这里插入图片描述
如消费者URL中的ip目前是localhost,上线后会变化
上线后如果提供者机器挂了重开一台机器,消费者记的还是以前的provider的地址
消费者不知道提供者机器的状态,是否健康,是否挂了
提供者只有一台机器,挂了就都没了
这种模式进行提供者集群后,消费者难以实现负载均衡

负责均衡:实时知道集群中有多少机器,哪些机器可用,哪些机器不可用,不给不可用机器发请求

eureka

注册中心的作用

见文档5.1
在这里插入图片描述

注册中心的实现

springcloud是基于springboot的,所以选择版本要对应

新建工程eureka-server-1010

导入相关依赖

<!--springboot支持-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
</dependency>

<!--Eureka服务端支持-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

新建application.yml,配置参数

server:
  port: 1010
eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false #是否要注册到eureka
    fetchRegistry: false #表示是否从Eureka Server获取注册信息
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #单机配置

新建启动类EurekaApp

@SpringBootApplication
@EnableEurekaServer
public class EurekaApp {

    public static void main(String[] args) {
        SpringApplication.run(EurekaApp.class);
    }
}

启动项目,浏览器访问:http://localhost:1010

服务提供者注册到注册中心

生产者项目引入euraka-client依赖

 	<!--eureka客户端支持 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

application.yml加入相关参数

server:
  port: 4010
spring:
  application:
    name: user-provider
eureka:
  client:
    service-url:
      defaultZone: http://localhost:1010/eureka

启动类加入euraka客户端注解

@SpringBootApplication
@EnableEurekaClient //表示是eureka的客户端
public class App {

    public static void main(String[] args) {
        SpringApplication.run(App.class,args);
    }
}

浏览器访问:http://localhost:1010,可看到注册进来的 USER-PROVIDER

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1485417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

独立游戏《星尘异变》UE5 C++程序开发日志1——项目与代码管理

写在前面&#xff1a;本日志系列将会向大家介绍在《星尘异变》这款模拟经营游戏&#xff0c;在开发时用到的与C相关的泛用代码与算法&#xff0c;主要记录UE5C与原生C的用法区别&#xff0c;以及遇到的问题和解决办法&#xff0c;因为这是我本人从ACM退役以后第一个从头开始的项…

Windows操作系统中各种功能、快捷键

目录 引言一、系统1.任务管理器&#xff08;当前进程属性&#xff09;2.画图板3.计算器4.CMD命令行窗口5.控制面板6.记事本7.写字板 二、浏览器1.打开开发者工具2.页面搜索 三、AcWing1.替换2.对多处进行相同操作3.光标变为下划线 引言 由于本专业是计算机专业&#xff0c;所以…

力扣 分割回文串

输出的是不同的分割方案 class Solution { public:vector<vector<bool>>flag;vector<string>ans;vector<vector<string>>nums;void dfs(string &s,int i){int ns.size();if(in){i表示s长度&#xff0c;等于即全部分割完毕nums.push_back(ans…

力扣hot100:42.接雨水

一、从单个水柱本身考虑 下标为i的水柱能接的雨水&#xff0c;取决于它左边最高的水柱 和 右边最高的水柱的最小值&#xff08;包括它本身&#xff09;。 为了理解这一性质&#xff0c;我们可以这样想象&#xff1a;取出左边最高和最边最高的水柱&#xff0c;将其比作一个碗的边…

python封装,继承,复写详解

目录 1.封装 2.继承 复写和使用父类成员 1.封装 class phone:__voltage 0.5def __keepsinglecore(self):print("单核运行")def callby5g(self):if self.__voltage > 1:print("5g通话开启")else:self.__keepsinglecore()print("不能开启5g通…

c++高阶数据结构 二叉搜索树的实现

二叉搜索树 二叉搜索树二叉搜索树的基本概念二叉搜索树的查找方法 二叉搜索树的代码实现二叉搜索树的结点二叉树的构造函数 析构函数二叉排序树的插入二叉树的删除二叉树的拷贝构造递归删除版本 完整代码 二叉搜索树 二叉搜索树的基本概念 二叉搜索树的特点&#xff1a; 左子…

代码随想录算法训练营第八天

344. 反转字符串 方法&#xff1a; 方法一&#xff1a; 直接用reverse函数 注意&#xff1a; 代码&#xff1a; class Solution { public:void reverseString(vector<char>& s) {return reverse(s.begin(), s.end());} };运行结果&#xff1a; 方法&#xff1…

一份简单的前端开发指南

文章目录 一、HTML1、表格2、常见标签3、行内、块级4、行内块级元素 二、CSS1、三种样式2、链接样式3、浮动4、清除浮动5、伪类&#xff0c;伪元素6、position7、后代选择器8、弹性布局 三、JavaScripts1、null和undefined的区别2、var let const3、原生数据类型4、双等和三等5…

C++入门和基础

目录 文章目录 前言 一、C关键字 二、命名空间 2.1 命名空间的定义 2.2 命名空间的使用 2.3 标准命名空间 三、C输入&输出 四、缺省参数 4.1 缺省参数的概念 4.2 缺省参数的分类 五、函数重载 5.1 函数重载的简介 5.2 函数重载的分类 六、引用 6.1 引用的…

Linux和Windows操作系统在腾讯云幻兽帕鲁服务器上的内存占用情况如何?

Linux和Windows操作系统在腾讯云幻兽帕鲁服务器上的内存占用情况如何&#xff1f; 对于Linux操作系统&#xff0c;有用户分享了个人最佳实践来解决内存问题&#xff0c;包括使用Linux脚本让服务器每天重启一次&#xff0c;以及建议在不需要时尽量减少虚拟内存的使用。此外&…

【React 报错】—Remove untracked files, stash or commit any changes, and try again.

【React 报错】—Remove untracked files, stash or commit any changes, and try again. 在react项目中通过.less文件进行样式定义&#xff0c;先暴露webpack配置文件&#xff0c;执行命令&#xff1a;yarn eject 或 npm run eject&#xff0c;报错如下&#xff1a; 原因是因…

暗黑大气MT苹果CMS MT主题源码-PC版适用于苹果CMS V10

苹果CMS MT主题是一款多功能的主题&#xff0c;适用于苹果CMS V10的暗黑大气风格。 地 址 &#xff1a; runruncode.com/houtai/19704.html 初次使用说明&#xff1a; 在后台设置中&#xff0c;选择MT主题&#xff0c;并在模板目录中填写HTML。 后台地址为&#xff1a;MT主题…

Facebook元宇宙大观:数字化社交的未来愿景

近年来&#xff0c;元宇宙&#xff08;Metaverse&#xff09;概念备受关注&#xff0c;被认为是数字化社交的未来趋势。作为全球领先的社交媒体平台之一&#xff0c;Facebook正积极探索元宇宙的发展路径&#xff0c;构想着一个数字化社交的未来愿景。在本文中&#xff0c;我们将…

ZYNQ--MIG核配置

文章目录 MIG核配置界面多通道AXI读写DDR3MIG核配置界面 Clock Period: DDR3 芯片运行时钟周期,这个参数的范围和 FPGA 的芯片类型以及具体类型的速度等级有关。本实验选择 1250ps,对应 800M,这是本次实验所采用芯片可选的最大频率。注意这个时钟是 MIG IP 核产生,并输出给…

vb.net获取Windows主题颜色、深色模式窗体,实时响应

先上效果图 可直接跳到完整代码 目录 先上效果图 开始教学 响应用户的更改 API讲解 读取深浅模式、主题颜色、十六进制颜色转换 完整代码 如果大家留意资源管理器的“文件”菜单的话就会发现它的底色就是你设置的主题色&#xff0c;在更改Windows颜色模式时&#xff0c;…

maven 包管理平台-05-multi module 多模块

拓展阅读 maven 包管理平台-01-maven 入门介绍 Maven、Gradle、Ant、Ivy、Bazel 和 SBT 的详细对比表格 maven 包管理平台-02-windows 安装配置 mac 安装配置 maven 包管理平台-03-maven project maven 项目的创建入门 maven 包管理平台-04-maven archetype 项目原型 ma…

Zookeeper学习2:原理、常用脚本、选举机制、监听器

文章目录 原理选举机制&#xff08;重点&#xff09;情况1&#xff1a;正常启动集群情况2&#xff1a;集群启动完&#xff0c;中途有机器挂了 监听器客户端向服务端写入数据客户端向服务端Leader节点写入客户端向服务端Follower节点写入 Paxos算法&#xff08;每个节点都可以提…

【力扣白嫖日记】608.树节点

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 175.组合两个表 表&#xff1a;Person 列名类型idintp_idvarchar 树中的每个节点可以是以下三种类型之一&a…

Unity铰链四杆机构设计和运动仿真

一、效果图 设定好各边长度和转速后&#xff0c;点击【设置并启动】&#xff0c;自动生成一个机构模型&#xff0c;并按照原理进行运转 二、铰链四杆机构介绍 机架&#xff1a;A和D是固定位置&#xff0c;叫做机架。 曲柄&#xff1a;B点绕A点旋转&#xff0c;构成曲柄。 连…

poi 设置允许西文在单词中间换行

说明本文是CSDN-问答模块,题主提问。问题描述:poi 设置允许西文在单词中间换行 一、问题描述 poi 设置允许西文在单词中间换行? // 创建一个新的文档XWPFDocument document = new XWPFDocument();// 创建段落XWPFParagraph firstParagraph = document.createParagraph();fir…