Nacos,Api学习

.springcloudAlibaba:致力于解决微服务开发的一站式方案。只需要添加一些注解和少量配置,就可以将springcloud应用接入到阿里服务器解决方案中。
二、nacos:是一个更易于构建云原生应用的动态服务发现,配置管理和服务管理平台。简单的说就是可以在上面完成注册中心和配置中心。
  2.1使用:(1)下载nacos,并且启动。(2)导入nacos依赖
  (3).在appliaction.properties中进行配置:spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848(链接地址),然后给起个名称,这个名称是在网页上显示的名称:application.name="xxx".
  (4).开启服务注册发现功能:在启动类上@EnableDiscoveryClient.
  注意:bootstrap.properties此文件nacos最先读取,这个文件是springboot规定的
  2.2Nacos配置中心:配置中心的意思就是不要在application.yml中进行配置类,直接就可以在nacos中配置。
  使用:(1)导入依赖创建bootstrap.properties
		# 改名字,对应nacos里的配置文件名
		spring.application.name=gulimall-coupon
		spring.cloud.nacos.config.server-addr=192.168.11.1:8848

		@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    @Autowired
    private CouponService couponService;

    @Value("${coupon.user.name}")//从application.properties中获取//不要写user.name,他是环境里的变量
    private String name;
    @Value("${coupon.user.age}")
    private Integer age;
    @RequestMapping("/test")
    public R test(){

        return R.ok().put("name",name).put("age",age);
	}

}
	@Value(“${}”),获取配置文件中的变量.但是值一改,必须重新启动才能在获取到正确的值,这时候只需要@RefreshScope就可以不用启动也可以获取到正确的值
	2.3Nacos进阶:在nacos网页中还可以设置命名空间用作配置隔离(一般一个微服务一个命名空间),默认是publicNamespace的常用场景之一就是不同环境的配置的区分隔离。比如开发环境,测试环境等。
	在bootstrap.properties中配置:
		spring.cloud.nacos.config.namespace=b176a68a-6800-4648-833b-be10be8bab00  	 可以选择对应的命名空间 ,即写上对应环境的命名空间ID。
		配置分组:spring.cloud.nacos.config.group=dev  # 更改配置分组



三、远程调用:a服务调用b服务的某个功能。使用Fegin:是一个声明式的http客户端,给远程服务发的是http请求。
	3.1使用:导入依赖。(2)比如a服务要调用b服务,在a服务的启动类上开启@@EnableFeignClients(basePackages="调用类的位置")(3).新建包,此包代表a服务要调用b服务的功能类,创建一个接口,并在类上写@FeignClient("b服务名称")(4).复制要调用b服务的功能类代码。
四、网关:发送请求需要知道商品服务的地址,如果商品服务有100台服务器,1号掉线后,得让别的机器知道。请求也要加上询问权限,看用户有没有权限访问这个请求,也需要用到网关。所以我们使用springcloud的getway组件来做网关功能。网关就是请求浏览的入口,常用功能有路由转发,权限校验,限流控制等。
 4.1三大核心概念:route:发一个请求给网关,网关要将请求路由到指定的服务。路由有id,目的地url.Predicate断言的集合,匹配了断言就能到达指定位置。Filter:过滤器请求和响应都可以被修改,客户端发送请求给服务端,中间有网关,先交给映射器,如果能处理就讲给handler,然后交给一系列filter,然后给指定的服务,再返回给客户端。
	使用:创建一个微服务getway,加入getway依赖,(2)开启@EnableDiscoveryClient
	(3).在application.yml中配置:spring:
  cloud:
    gateway:
      routes:
        - id: baidu_route
          uri: http://www.baidu.com
          predicates:
            - Query=url,baidu

        - id: test_route
          uri: http://www.qq.com
          predicates:
            - Query=url,qq


版权声明:本文为weixin_40803117原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。