首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SpringCloudAlibaba入门(2023版)

SpringCloudAlibaba入门(2023版)

原创
作者头像
用户9744129
发布2023-01-12 22:13:56
发布2023-01-12 22:13:56
4250
举报
文章被收录于专栏:springdataspringdata

先知

架构图一览
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建Serve端

新建项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置文件
在这里插入图片描述
在这里插入图片描述

application.yaml

代码语言:java
复制
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/
启动类配置
代码语言:java
复制
// 表示当前类为服务端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端的服务提供端

新建项目
新增依赖
代码语言:java
复制
<!--        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>配置文件

server:

port: 8081

Eureka配置

eureka:

client:

代码语言:txt
复制
   # 表示将自己注册进Eureka Server默认为true
代码语言:txt
复制
 register-with-eureka: true
代码语言:txt
复制
   # 是否从Eureka Server抓去已有的注册信息,默认是true
代码语言:txt
复制
 fetch-registry: true
代码语言:txt
复制
   # 设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址
代码语言:txt
复制
 service-url:
代码语言:txt
复制
   defaultZone: http://localhost:8080/eureka

#数据库配置

spring:

datasource:

代码语言:txt
复制
driver-class-name: com.mysql.cj.jdbc.Driver
代码语言:txt
复制
url: jdbc:mysql://127.0.0.1:3306/blog?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
代码语言:txt
复制
username: root
代码语言:txt
复制
password: xxx
代码语言:txt
复制
type: com.alibaba.druid.pool.DruidDataSource

当前服务注册在Eureka Server的名称

application:

代码语言:txt
复制
name: server-provider1

#MP配置

mybatis-plus:

配置外部xml映射

configuration:

代码语言:txt
复制
#    开启SQL日志输出
代码语言:txt
复制
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
代码语言:txt
复制
#    开启驼峰映射
代码语言:txt
复制
map-underscore-to-camel-case: true

mapper-locations: classpath:mapper/*.xml

代码语言:txt
复制
#### 启动类配置


```java

// 表示当前类客户端Eureka

@EnableDiscoveryClient

@SpringBootApplication

public class CloudB1Application {

代码语言:txt
复制
public static void main(String[] args) {
代码语言:txt
复制
    SpringApplication.run(CloudB1Application.class, args);
代码语言:txt
复制
}

}

代码语言:txt
复制
#### 编写控制器类
```java

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 {

代码语言:txt
复制
@GetMapping("/get1")
代码语言:txt
复制
public String hello(){
代码语言:txt
复制
    return "hello world!";
代码语言:txt
复制
}

}

代码语言:txt
复制
#### 启动测试
***访问自己的 localhost:端口号(就是服务注册中心)
可以发现多了些东西,一个报错和刚刚注册好的服务提供者***
![在这里插入图片描述](https://img-blog.csdnimg.cn/ff964d0a1fa24b128dbb50f8e6806efe.png)

### 创建Client端的服务消费端
创建方法和创建Client端的服务服务端一样
#### 配置文件
```java

server:

port: 8083

spring:

application:

代码语言:txt
复制
name: service-customer1

eureka:

client:

代码语言:txt
复制
service-url:
代码语言:txt
复制
  defaultZone: http://localhost:8080/eureka
代码语言:txt
复制
#### 启动类
```java

@EnableDiscoveryClient

@SpringBootApplication

public class CloudB1Customer1Application {

代码语言:txt
复制
public static void main(String[] args) {
代码语言:txt
复制
    SpringApplication.run(CloudB1Customer1Application.class, args);
代码语言:txt
复制
}

}

代码语言:txt
复制
#### 控制器
```java

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 {

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

}

代码语言:txt
复制
启动测试

发现又多了一个

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

点击这里再输入自己定义的接口发现也可正常访问

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先知
  • 创建Serve端
  • 创建Client端的服务提供端
  • Eureka配置
  • 当前服务注册在Eureka Server的名称
  • 配置外部xml映射
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档