org.springframework.cloud

spring-cloud-dependencies

${spring-cloud.version}

pom

import

com.alibaba.cloud

spring-cloud-alibaba-dependencies

${spring-cloud-alibaba.version}

pom

import

服务提供者provider

在pom文件引入以下依赖:

org.springframework.boot

spring-boot-starter-web

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

配置文件:

server:

port: 8762

spring:

application:

name: provider

cloud:

nacos:

discovery:

server-addr: 127.0.0.1:8848

启动入口添加注解:

@SpringBootApplication

@EnableDiscoveryClient

public class ProviderApplication {

public static void main(String[] args) {

SpringApplication.run(ProviderApplication.class,args);

}

}

写个接口:

@RestController

public class DemoController {

@Value(“${server.port}”)

String port;

@GetMapping(“getInfo”)

public String getInfo(@RequestParam(value = “name”,defaultValue = “nacosConfig”,required = false)String name){

return "my name is “+name+”,my port is "+port;

}

}

服务消费者consumer

在pom文件引入以下依赖:

org.springframework.boot

spring-boot-starter-web

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

org.springframework.cloud

spring-cloud-starter-openfeign

org.springframework.cloud

spring-cloud-starter-loadbalancer

配置文件

server:

port: 8763

spring:

application:

name: consumer

cloud:

nacos:

discovery:

server-addr: 127.0.0.1:8848

在工程的启动入口开启FeignClient的功能

@SpringBootApplication

@EnableDiscoveryClient

@EnableFeignClients

public class ConsumerApplication {

public static void main(String[] args) {

SpringApplication.run(ConsumerApplication.class,args);

}

}

写一个FeignClient,去调用provider服务的接口:

@FeignClient(value = “provider”)

public interface ProviderClient {

@GetMapping(“getInfo”)

String getInfo(@RequestParam(value = “name”,defaultValue = “nacosConfig”,required = false)String name);

}

Copy

写一个接口,让consumer去调用provider服务的接口:

@RestController

public class DemoController {

@Autowired

ProviderClient providerClient;

@GetMapping(“getInfoByFeign”)

public String getInfoByFeign(){

return providerClient.getInfo(“consumer feign”);

}

}

启动两个工程,在nacos服务列表页面出现,consumer,provider2个服务表示都已经注册成功

服务调用

在浏览器上输入http://localhost:8763/getInfoByFeign,浏览器返回响应

my name is consumer feign,my port is 8761

可见浏览器的请求成功调用了consumer服务的接口,consumer服务也成功地通过feign成功的调用了provider服务的接口。

使用sc loadbanlancer作为负载均衡

使用spring cloud loadbanlancer作为负载均衡器。通过修改provider的端口,再在本地启动一个新的provider服务,那么本地有2个provider 服务,端口分别为8761 和8762。在浏览器上多次调用http://localhost:8763/getInfoByFeign,浏览器会交替显示:

my name is consumer feign,my port is 8761

my name is consumer feign,my port is 8762

注册中心provider服务也会显示两个示例

使用nacos作为配置中心

父工程添加nacos配置版本,另一个是用来解决最新版本导致的问题:

2.0.3

3.0.4

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-config

${spring-cloud-alibaba.version}

org.springframework.cloud

spring-cloud-starter-bootstrap

${spring-cloud.bootstrap.version}

服务提供者provider添加依赖:

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-config

org.springframework.cloud

spring-cloud-starter-bootstrap

在bootstrap.yml(一定是bootstrap.yml文件,不是application.yml文件)文件配置以下内容:

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

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

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

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

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

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

技术学习总结

学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。

最后面试分享

大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!

续更新**

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

技术学习总结

学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。

[外链图片转存中…(img-xplpmi1g-1711990423186)]

[外链图片转存中…(img-xdyTLwJC-1711990423186)]

[外链图片转存中…(img-JTMO6gje-1711990423186)]

最后面试分享

大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!

[外链图片转存中…(img-F7EbSHSw-1711990423187)]

[外链图片转存中…(img-H84ytPWb-1711990423187)]

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: