Spring Cloud 2024 版本最佳实践,你落伍了!

Spring Cloud 从H版本之后命名方式改为2020.x.x,话说为毛最新版本不是2021命名,来自强迫症的难受

使用组件列表:
  • 注册中心:nacos,替代方案eureka、consul、zookeeper

  • 配置中心: nacos ,替代方案sc config、consul config

  • 调用:feign,替代方案:resttempate

  • 熔断:sentinel、,替代方案:Resilience4j

  • 熔断监控:sentinel dashboard

  • 负载均衡:sc loadbalancer

  • 网关:spring cloud gateway

  • 链路:spring cloud sleuth+zipkin,替代方案:skywalking等

总体架构图

版本关系

使用nacos作为注册中心和配置中心

下载nacos

下载地址:https://github.com/alibaba/nacos

导入数据库

创建mysql数据库nacos,导入 conf/nacos-mysql.sql

配置数据库

修改 conf/application.properties

#*************** Config Module Related Configurations ***************#

If use MySQL as datasource:

spring.datasource.platform=mysql

Count of DB:

db.num=1

Connect URL of DB:

db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC

db.user.0=root

db.password.0=123456

配置启动模式

将nacos设为单机模式启动,编辑 bin/startup.cmd 将MODE 修改为:

set MODE=“standalone”

启动运行

登陆页面:http://localhost:8848/nacos/,登陆用户nacos,登陆密码为nacos

工程案例

工程案例源码:https://github.com/java-aodeng/springcloud2020-demo-1

工程案例包括2个,一个服务提供者provider 、服务消费者consumer

Spring Boot 基础就不介绍了,推荐下这个实战教程: https://www.javastack.cn/categories/Spring-Boot/

在父pom文件引入相关的依赖,如下:

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

<spring-boot.version>2.4.4</spring-boot.version>

<spring-cloud.version>2020.0.2</spring-cloud.version>

<spring-cloud-alibaba.version>2020.0.RC1</spring-cloud-alibaba.version>

org.springframework.boot

spring-boot-dependencies

${spring-boot.version}

pom

import

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);

}

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

@RestController

public class DemoController {

@Autowired

ProviderClient providerClient;

@GetMapping(“getInfoByFeign”)

public String getInfoByFeign(){

return providerClient.getInfo(“consumer feign”);

}

}

最后

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

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

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

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
,自己不成体系的自学效果低效漫长且无助。**

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

[外链图片转存中…(img-JgzUZFUL-1714963569444)]

[外链图片转存中…(img-QBeWTuFX-1714963569444)]

[外链图片转存中…(img-R652vsGb-1714963569445)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

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

  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值