SpringCloudAlibaba入门(2023版)

news2025/1/17 16:22:49

先知

架构图一览

在这里插入图片描述

在这里插入图片描述

创建Serve端

新建项目

在这里插入图片描述
在这里插入图片描述

配置文件

在这里插入图片描述

application.yaml

server:
  port: 8080

# Eureka配置
eureka:
  instance:
    ## Eureka实例的名称
    hostname: localhostA
  client:
    # false表示自己端就是注册中心,职责就是维护服务实例,并不需要去检查服务
    fetch-registry: false
    # false表示不向注册中心注册自己
    register-with-eureka: false
    # 设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/


启动类配置

// 表示当前类为服务端Eureka服务端
@EnableEurekaServer
@SpringBootApplication
public class CloudA1Application {

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

}

启动测试一下

访问自己的
localhost:端口号
在这里插入图片描述
一切正常再继续

Eureka Client包括两个服务模块:Service Provider(服务提供方)和Service Consumer(服务消费方)。

创建Client端的服务提供端

新建项目

新增依赖

<!--        lombok-->
        <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
             <optional>true</optional>
         </dependency>
<!--        数据库池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>
<!--        MP-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
         <!-- mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
         <!-- druid -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

配置文件

在这里插入图片描述

application.yaml

server:
  port: 8081
# Eureka配置
eureka:
   client:
       # 表示将自己注册进Eureka Server默认为true
     register-with-eureka: true
       # 是否从Eureka Server抓去已有的注册信息,默认是true
     fetch-registry: true
       # 设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址
     service-url:
       defaultZone: http://localhost:8080/eureka
#数据库配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/blog?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
    username: root
    password: xxx
    type: com.alibaba.druid.pool.DruidDataSource
#  当前服务注册在Eureka Server的名称
  application:
    name: server-provider1


#MP配置
mybatis-plus:
  #  配置外部xml映射
  configuration:
    #    开启SQL日志输出
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    #    开启驼峰映射
    map-underscore-to-camel-case: true
  mapper-locations: classpath:mapper/*.xml

启动类配置

// 表示当前类客户端Eureka
@EnableDiscoveryClient
@SpringBootApplication
public class CloudB1Application {

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

}

编写控制器类

package com.learn.cloudb1.controller;


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/hello")
public class HelloController {

    @GetMapping("/get1")
    public String hello(){
        return "hello world!";
    }
}

启动测试

访问自己的 localhost:端口号(就是服务注册中心)
可以发现多了些东西,一个报错和刚刚注册好的服务提供者

在这里插入图片描述

创建Client端的服务消费端

创建方法和创建Client端的服务服务端一样

配置文件

server:
  port: 8083

spring:
  application:
    name: service-customer1

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8080/eureka

启动类

@EnableDiscoveryClient
@SpringBootApplication
public class CloudB1Customer1Application {

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

控制器

package com.learn.cloudb1_customer1.controller;

import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/getMes")
public class GetMesController {
    //从Euraka Server中获取服务提供方的服务地址信息
       @Autowired
    private DiscoveryClient ds;;
    @GetMapping()
    public String getMes(){
        //服务提供者的名字
        List<ServiceInstance> instanceList = ds.getInstances("server-provider1");
        int port=0;
        String host="";
        //打印服务机器的信息
        for (ServiceInstance instance : instanceList) {
            //服务主机端口号
            port = instance.getPort();
            System.out.println("服务主机端口号:"+ port);
            //服务主机名字
            host = instance.getHost();
            System.out.println("服务主机名字:"+host);
        }
        return host+"++++"+port;
    }
}

启动测试

发现又多了一个
在这里插入图片描述

点击这里再输入自己定义的接口发现也可正常访问
在这里插入图片描述

在这里插入图片描述

OK!入门结束

其他更详细的适合入门的文章
https://www.cnblogs.com/h–d/p/12635204.html
https://blog.csdn.net/jc_hook/article/details/122413858

报错解决方法
https://blog.csdn.net/hadues/article/details/105023709

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

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

相关文章

Kafka-eagle 安装教程

参考资料&#xff1a; 参考视频 Kafka-eagle官网 解释&#xff1a;Kafka-eagle 后来更名为 EFAK &#xff0c;所以打开官网会显示EFAK 环境准备&#xff1a; 要有本服务器可访问的MySQL服务&#xff0c;远程的请检查是否已经开启了MySQL远程访问&#xff0c;如果没有则需…

1.12 PWM实验

蜂鸣器--------TIM4 CH1/PB6 风扇-----------TIM1 CH1/PE9 马达-----------TIM16 CH1/PF6 一.PWM框图 RCC&#xff1a;使能GPIOB GPIOB&#xff1a;设置复用功能 TIM4:产生方波 二.分析RCC 确定总线&#xff0c;使能GPIOB和TIM4&#xff0c;GPIOE和TIM1,GPIO和TIM16 三.分…

【C++11】右值引用和移动语义

目录 一、左值 vs 右值 二、左值引用vs 右值引用 三、右值引用使用场景和意义 1. 左值引用的使用场景 2. 左值引用的短板 3. 右值引用和移动语义解决上述问题 四、右值引用引用左值的使用场景 五、完美转发 1. 模板中的&& 万能引用 2. std::forward 完美转发…

windows排查问题常用命令

查看JAVA进程占用PID: wmic process where caption"java.exe" get processid,caption,commandline /value查看进程端口信息&#xff1a;netstat -ano 或者 netstat -ano|findstr "8080" 或查看成功建立连接的&#xff1a;netstat -ano | findstr “ESTABLI…

C语言中的字符指针

目录1.字符指针指向一个字符2.字符指针指向一个字符串3.例题1.字符指针指向一个字符 int main() {char ch w;char *pc &ch;return 0; }将一个char类型的变量的地址放到一个char*类型的指针里去&#xff0c;这里的char*ps就是字符指针 在这里的字符指针与之前的整形指针等…

巧用gitbash的scp命令实现跨网段的文件直传

背景 嵌入式开发的工作流一般是这样的&#xff0c;程序员通过Windows电脑登陆Linux服务器&#xff0c;在服务器上编译出二进制文件后&#xff0c;先将文件scp到本地&#xff0c;然后再scp到Linux开发板&#xff0c;如下图所示 这样做需要执行两次scp命令&#xff0c;能否只执…

Golang cgo:如何在Go代码中调用C语言代码?

如何在Go代码中调用C语言代码&#xff1f; Go语言是通过自带的一个叫CGO的工具来支持C语言函数调用&#xff0c;同时我们可以用Go语言导出C动态库接口给其它语言使用。 方式一、直接在 Go 代码中写入 C 代码 检查是否开启cgo工具 首先&#xff0c;要查看是否已经开启cgo工具…

树状数组+例题

一、树状数组的定义 树状数组 或 二元索引树&#xff08;Binary Indexed Tree&#xff09;&#xff0c;现多用于高效计算数列的前缀和&#xff0c; 区间和。它可以以 log(n)log(n)log(n) 的时间得到任意前缀和&#xff0c;也支持在log(n)log(n)log(n)时间内支持动态单点值的修改…

Spring简介与使用

什么是spring spring是一个开源的框架&#xff0c;里面有一系列功能&#xff0c;可以使我们的开发变得更为轻松 简单来说&#xff0c;spring是包含众多工具方法的IoC容器 所谓容器&#xff0c;就是盛放东西的事务&#xff0c;例如我们的ArrayList就是数据存储的容器&#xff…

数据库——排序与分页

目录 排序数据 单列排序 多列排列 分页 分页原理 优点 MySQL 8.0新特性 排序数据 使用 ORDER BY 子句排序ASC&#xff08;ascend&#xff09;: 升序DESC&#xff08;descend&#xff09;:降序ORDER BY 子句在SELECT语句的结尾。 单列排序 SELECT employee_id,last_name…

【Linux】项目自动化构建工具-make与Makefile的简单使用(模拟实现进度条)

目  录1 make与Makefile使用2 模拟实现进度条前言&#xff1a; 会不会编写Makefile&#xff0c;从侧面说明了一个人是否具备完成大型工程的能力。一个工程中的源文件不计其数&#xff0c;按类型、功能、模块分别放在若干个目录中&#xff0c;Makefile定义了一系列的规则来指定…

使用 EMQX Cloud 桥接数据到 GCP Pub/Sub

前不久&#xff0c;Google 宣布其旗下的 GCP IoT Core 即将在 2023 年 8 月 16 日停止提供服务。这意味着大量使用 GCP IoT Core 的用户可能需要将他们的 IoT 应用迁移到其他物联网云服务。除了云服务的迁移&#xff0c;很多用户也在直接利用谷歌云生态&#xff0c;使用 GCP 上…

Docker部署 Harbor

系列文章目录 Docker部署 registry Docker搭建 svn Docker部署 Harbor Docker 部署SQL Server 2017 Docker 安装 MS SqlServer Docker部署 Oracle12c Docker部署Jenkins Docker部署 Harbor系列文章目录前言一、Harbor安装有3种方式二、安装步骤1. 从github官方地址下载安装包2…

C/C++尖括号和双引号包含头文件的区别

前言头文件有两种包含方式&#xff0c;一种是使用尖括号<>&#xff0c;另外一种是通过双引号""包含&#xff0c;例如&#xff1a;#include <iostream> #include "add.h"那么今天就专门来聊一聊这两种方式的区别。1.头文件的含义不同使用尖括号…

多表连接查询

语法&#xff1a; select ... from a join b on a和b的连接条件 join c on a和c的连接条件 join d on a和d的连接条件 一条SQL语句中内连接与外连接可以混合使用 案例&#xff1a;查询每个员工的部门名称以及薪资等级&#xff0c;要求显示员工名、部门名、薪资和薪资等级 SQL&…

核心乐理---和弦基础

和弦命名 什么是和弦 三个或三个以上的三度堆叠成为和弦 三和弦 三和弦指的是有三个音的和弦 七和弦是指七度的和弦&#xff0c;共4个音 其余的和弦与七和弦命名规则相同&#xff0c;跨越几度就是几和弦 九和弦是指跨越九度的和弦&#xff0c;共5个音十一和弦是指跨越十一…

【阶段三】Python机器学习18篇:机器学习项目实战:AdaBoost算法的核心思想、原理与数学原理举例

本篇的思维导图: AdaBoost算法的核心思想 AdaBoost算法(Adaptive Boosting)是一种有效而实用的Boosting算法,它以一种高度自适应的方式按顺序训练弱学习器。针对分类问题,AdaBoost算法根据前一次的分类效果调整数据的权重,在上一个弱学习器中分类错误的样本的权…

和Nginx相关的TCP/IP中反向代理系统解析与调优

文章目录前言反向代理系统分析消耗资源分析CPUMemory网卡压测与调优实战压测数据对比什么是TIME_WAITkeepalive开启前后数据对比小结关于后续端口不足&#xff0c;限制连接扩展协议层面无法充分做到连接的复用TCP优化分享相关文章&#xff1a;前言 本文介绍aeproxy这个应用以及…

IB地理科学什么?

IB地理科是一门很特别的科目&#xff0c;能帮助同学掌握技巧认识和了解这世界&#xff0c;而这课程分为两部分&#xff0c;包括自然环境和人文社会。IB地理科两部分 首先是自然环境&#xff0c;包括生态系统、气候&#xff0c;地壳活动等等 &#xff1b;另外是人文社会&#x…

Nosql和Redis介绍,Redis五大数据类型及操作,跳跃表

NoSQL数据库是用来解决性能问题的&#xff0c;分很多类。redis是NoSQL的一种。 NoSQL的引入&#xff1a; 随着Web2.0时代的到来。可以进行网络请求的不仅限与电脑。用户还可以通过手机端&#xff0c;平板甚至汽车等来进行网络请求。网络请求极具增加&#xff0c;增加了服务器…