}

总结:通过上面的学习,我们已经了解Spring cloud的微服务是如何协作的,通过哪些组件的配合能够完成服务间协作?我们了解了什么是负载均衡,Feign用于服务间Http调用,Ribbon用于执行负载均衡算法选取访问实例,而Ribbon的实例列表来源是由Spring cloud的服务发现中心提供(当前实现为Nacos),更详细的内容请学习Spring Cloud的相关课程 。

1.2、搭建Nacos服务端


做nacos服务端的下载及安装操作。

1.3、创建父工程


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

为了规范依赖的版本,这里创建父工程,指定依赖的版本。

父工程pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>

4.0.0

com.demo.nacos

nacos-discovery

1.0-SNAPSHOT

pom

<project.build.sourceEncoding>UTF‐8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF‐8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

com.alibaba.cloud

spring-cloud-alibaba-dependencies

2.1.0.RELEASE

pom

import

org.springframework.cloud

spring-cloud-dependencies

Greenwich.RELEASE

pom

import

org.springframework.boot

spring-boot-dependencies

2.1.3.RELEASE

pom

import

org.springframework.boot

spring-boot-maven-plugin

1.4、服务生产者


创建生产者模块在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

以下步骤演示了如何将一个服务生产者注册到 Nacos。

  • 1、pom.xml的配置。

包括Spring Cloud Feign组件、Spring Cloud Alibaba Nacos Discovery组件以及Spring boot web相关组件依赖。

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>

nacos-discovery

com.demo.nacos

1.0-SNAPSHOT

4.0.0

quickstart-provider

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

org.springframework.boot

spring-boot-starter-web

org.springframework.cloud

spring-cloud-starter-openfeign

  • 2、application.yml配置。一些关于 Nacos 基本的配置也必须在application.yml(也可以是application.properties)

配置,如下所示: application.yml

server:

port: 56010 # 启动端口

spring:

application:

name: quickstart-provider

cloud:

nacos:

discovery:

server-addr: 127.0.0.1:8848

logging:

level:

root: info

org.springframework: info

Note: spring.cloud.nacos.discovery.server-addr 指定了Nacos Server的网络地址和端口号。

  • 3、启动Provider(生产者)

package com.demo.nacos;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

import org.springframework.cloud.openfeign.EnableFeignClients;

/**

  • Description:

  • DATE: 2022/1/26 17:14

*/

@SpringBootApplication

@EnableDiscoveryClient

@EnableFeignClients

public class NacosProviderApp {

public static void main(String[] args) {

SpringApplication.run(NacosProviderApp.class,args);

}

}

  • 4、Provider(生产者)服务实现

package com.demo.nacos.controller;

import org.slf4j.LoggerFactory;

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

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

import java.util.logging.Logger;

/**

  • Description:

  • DATE: 2022/1/26 17:15

*/

@RestController

public class ProviderController {

private static final Logger LOG = (Logger) LoggerFactory.getLogger(ProviderController.class);

@GetMapping(“/servicre”)

public String service(){

LOG.info(“provider invoke”);

return “provider invoke”;

}

}

1.5、服务消费者


1、pom.xml的配置。

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>

nacos-discovery

com.demo.nacos

1.0-SNAPSHOT

4.0.0

quickstart-consumer

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

org.springframework.boot

spring-boot-starter-web

org.springframework.cloud

spring-cloud-starter-openfeign

2、application.yml配置

server:

port: 56020 # 启动端口

spring:

application:

name: quickstart-consumer

cloud:

nacos:

discovery:

server-addr: 127.0.0.1:8848

logging:

level:

root: info

org.springframework: info

3、Consumer(消费者)启动类

package com.demo.nacos;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

import org.springframework.cloud.openfeign.EnableFeignClients;

/**

  • Description:

  • DATE: 2022/1/26 17:42

*/

@SpringBootApplication

@EnableDiscoveryClient

@EnableFeignClients

public class NacosConsumerApp {

public static void main(String[] args) {

SpringApplication.run(NacosConsumerApp.class, args);

}

}

4、Provider(生产者)远程代理定义

package com.demo.nacos.client;

import org.springframework.cloud.openfeign.FeignClient;

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

/**

  • Description:

  • DATE: 2022/1/26 17:36

*/

@FeignClient(value = “quickstart-provider”)

public interface ProviderClient {

@GetMapping(“service”)

String service();

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

分享

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

img-HTtBzTks-1711947909667)]
[外链图片转存中…(img-51fMcWFc-1711947909668)]
[外链图片转存中…(img-gVemYpIi-1711947909669)]
[外链图片转存中…(img-wOFVAayx-1711947909669)]
[外链图片转存中…(img-8a0mub1U-1711947909670)]
[外链图片转存中…(img-T3yWXvek-1711947909670)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-ZszcspyM-1711947909671)]

分享

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐