C/C++教程

微服务nacos简单部署+网关设置+日志管理

本文主要是介绍微服务nacos简单部署+网关设置+日志管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

1.nacos简单部署

2.网关设置

3日志管理. 


1.nacos简单部署

nacos引用的主要依赖是然后在配置文件进行注册(需要提前启动nacos插件,默认密码都是nacos)

      <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
       </dependency>

在配置文件进行注册 (注册时必须设置服务名)

spring.application.name=shop-product
spring.cloud.nacos.server-addr=localhost:8848

 然后在列表中可以看见对应的服务

服务直接可以相互调用,调用方式有三种

1.直接输入服务ip(不灵活)


/**
 * @program: shop-parent3
 * @description:
 * @author: 大鱼
 * @create: 2021-07-07 19:36
 **/
@RestController
public class OrderController {
    @Resource
    OrderMapper orderMapper;
    @Resource
    RestTemplate restTemplate;
    @GetMapping("insert")
    private String insertit(Integer pid, Integer num) {
        Order order = new Order();
        Product prduct = restTemplate.getForObject("http://localhost:8081/product/byid/"+pid,Product.class);
        order.setUsername("xxxx");

        orderMapper.insert(order);
        return "ok";
    }
}

2.从nacos注册中心获取(不符合习惯)

 

@RestController
public class OrderController1 {
    @Resource
    OrderMapper orderMapper;
    @Resource
    RestTemplate restTemplate;
    @Resource
    DiscoveryClient discoveryClient;
    @GetMapping("insert1")
    private String insertit(Integer pid, Integer num) {
        Order order = new Order();
        List<ServiceInstance> instances = discoveryClient.getInstances("shop-product");
        ServiceInstance instance = instances.get(0);
        Product prduct = restTemplate.getForObject(instance.getUri()+"/product/byid/"+pid,Product.class);
        order.setUsername("xxxx");

        orderMapper.insert(order);
        return "ok";
    }
}

 用DiscoveryClient类获取注册中心的集群,然后获取路径

同时在主启动类加入RestTemplate引用类

@SpringBootApplication
@MapperScan(basePackages = "com.dayu.mapper")

public class OrderApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class, args);
    }

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

3.引用openfeign依赖

      <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

 新建一个接口加注解并且指定注册中心想要获取的服务名以及该服务的方法

@FeignClient(value = "shop-product")
@RequestMapping("product")
public interface Myopen {
    @GetMapping("byid/{id}")
    public Product getit(@PathVariable Integer id);
}

开启注解 @EnableFeignClients生效和  @LoadBalanced(负载均衡)

@SpringBootApplication
@MapperScan(basePackages = "com.dayu.mapper")
@EnableFeignClients

public class OrderApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class, args);
    }

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

在配置文件可声明服务负载均衡的方式

shop-product:  # 这里使用服务的名称
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #使用的的负载均衡策略

4.配置文件

微服务的配置文件可以从注册中心进行获取,

 1)首先引入依赖

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>

首先定义一个bootstrap.yml文件

#资源配置文件有优先级pro>yaml>yml
#从nacos 获取资源配置文件
spring:
  application:
    name: shop-product#微服务名
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        file-extension: yaml#文件后缀可变

根据服务名和相应的文件后缀获取配置文件,与配置文件无异

 

 

2.网关设置

所谓的API网关,就是指系统的统一入口,它封装了应用程序的内部结构,为客户端提供统一服 务,一些与业务本身功能无关的公共逻辑可以在这里实现,诸如认证、鉴权、监控(黑白名单)、路由转发等等。 

首先引入依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

在配置文件声明调用微服务信息

spring:
  cloud:
    gateway:
      routes:
        - id: shop-product
          uri: lb://shop-product/   #负载均衡服务名ip
          order: 0
          predicates:
            - Path=/product/**   #断言
#            - Age=18,60
          filters:   #过滤器
            - SetStatus=250 #            - StripPrefix=1

3两组追踪

这篇关于微服务nacos简单部署+网关设置+日志管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!