SpringCloud

一.远程调用的别的服务步骤

1.引入open-feign

<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-openfeign</artifactId>
		</dependency>
  • 2.编写一个接口告诉SpringCloud这个接口需要调用远程服务
 声明每一个方法都是调用那个远程接口的那个方法
@Service
@FeignClient("gulimall-coupon")
public interface CouponFeignService {
   @RequestMapping("coupon/coupon/member/list")
   public R membercoupons();
}

  1. 开启远程调用功能:@EnableFeignClients
@EnableFeignClients(basePackages = "com.atguigu.gulimall.member.feign")
@SpringBootApplication
@EnableDiscoveryClient
public class GulimallMemberApplication {
	public static void main(String[] args) {		SpringApplication.run(GulimallMemberApplication.class, args);
	}

}

二.如何使用Nacos作为配置中心,统一管理配置

  1. 引入依赖
  <!--配置中心来做配置管理-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
  1. 创建bootstrap.properties
 spring.application.name=gulimall-coupon
 spring.cloud.nacos.config.server-addr=127.0.0.1:8848
  1. 默认添加一个数据集(Data ID)gulimall-coupon.properties默认规则应用名.properties
    在这里插入图片描述
  2. 在配置中心添加应用名.properties配置在这里插入图片描述
在本地添加配置application.properties
coupon.user.name=zhangsan
coupon.user.age=17
  1. 动态获取配置
/**@RefreshScope:动态刷新配置获取配置
    @Value("${配置项的名称}"):获取配置的值
    如果配置中心和当前应用都配置了相同的项优先使用配置中心的配置
 **/
@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    @Autowired
    private CouponService couponService;

    @Value("${coupon.user.name}")
    private String name;
    @Value("${coupon.user.age}")
    private String age;

    @RequestMapping("/test")
    public R test(){
        return R.ok().put("name",name).put("age",age);
    }
  }

二.Nacos作为配置中心细节

  1. 命名空间:配置隔离
 默认为public,默认新增的配置都在public下
 开发、测试、生产;利用命名空间做环境隔离
 注意:在bootstrap.properties配置上设置需要哪个命名空间的配置
spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#利用命名空间做环境隔离
spring.cloud.nacos.config.namespace=105da3ac-3e4e-4cb9-af96-3d72fedda6fd

在这里插入图片描述
2. 配置级:所有配置的集合
3. 配置级ID:类似于文件名Data ID:
4. 配置分组:默认所有的配置及都属于:default_group
1111,618
每个微服务都创建自己的命名空间,使用分组区分环境,dev

spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#利用命名空间做环境隔离
spring.cloud.nacos.config.namespace=868f302f-c0f3-44fb-8ae8-807c7d52a1b1
#配置分组
spring.cloud.nacos.config.group=dev
spring.cloud.nacos.config.extension-configs[0].dataId=datasource.yml
spring.cloud.nacos.config.extension-configs[0].group=dev
spring.cloud.nacos.config.extension-configs[0].refresh=true

spring.cloud.nacos.config.extension-configs[1].dataId=mybatis.yml
spring.cloud.nacos.config.extension-configs[1].group=dev
spring.cloud.nacos.config.extension-configs[1].refresh=true

spring.cloud.nacos.config.extension-configs[2].dataId=other.yml
spring.cloud.nacos.config.extension-configs[2].group=dev
spring.cloud.nacos.config.extension-configs[2].refresh=true

在这里插入图片描述
5. 同时加载多个配置信息

  • 微服务的任何配置文件都可以放在配置中心中
  • 只需要在bootstrap.properties说明加载哪些配置文件即可
  • @Value、@ConfigurationProperties…
    以前SpringBoot中的任何取值都可以使用,配置中心有的优先使用配置中心的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud是一个用于构建分布式系统的开发工具集合。它提供了一些常用的组件和框架,包括服务注册和发现、负载均衡、断路器、分布式配置等等。在使用Spring Cloud时,有一些常见的错误和注意事项需要注意。 首先,关于Spring Boot和Spring Cloud版本对应错误。在使用Spring Cloud时,需要确保Spring Boot和Spring Cloud的版本兼容。不同版本之间可能存在依赖冲突或不兼容的情况,因此需要根据官方文档或者相关文档来选择合适的版本。 另外,Spring Cloud Config是一个用于集中管理和动态获取配置的工具。它支持从Git、SVN或本地文件系统中获取配置文件,并提供了服务器和客户端支持。你可以通过官方使用说明文档了解更多关于Spring Cloud Config的详细信息。 此外,关于选择使用Nacos还是Eureka作为服务注册和发现组件的问题。Nacos是一个功能更强大的服务注册和发现组件,它整合了Spring Cloud Eureka、Spring Cloud Config和Spring Cloud Bus的功能。使用Nacos可以实现配置的中心动态刷新,而不需要为配置中心新增集群或使用消息队列。另一方面,Eureka是Spring Cloud原生全家桶的一部分,相对来说更加稳定一些。选择使用哪个组件需要根据具体的需求和项目特点来决定。 综上所述,Spring Cloud是一个用于构建分布式系统的开发工具集合,它提供了一些常用的组件和框架。在使用Spring Cloud时,需要注意Spring Boot和Spring Cloud版本的兼容性,并可以使用Spring Cloud Config来动态获取配置。同时,可以选择使用Nacos或Eureka作为服务注册和发现组件,具体选择需要根据项目需求来决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值