Spring Cloud Alibaba【创建支付服务生产者、创建服务消费者 、Dubbo和OpenFeign区别 、微服务接入OpenFeign】(二)

 

目录

分布式服务治理_创建支付服务生产者

分布式服务治理_创建服务消费者 

服务调用_Dubbo和OpenFeign区别 

服务调用_微服务接入OpenFeign


分布式服务治理_创建支付服务生产者

创建服务提供者工程cloud-provider-payment8001 

POM文件引入依赖 

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

编写主启动类

@Slf4j
//注解开启服务注册与发现功能
@EnableDiscoveryClient
@SpringBootApplication
public class PaymentMain8001 {
    public static void main(String[] args) {
       SpringApplication.run(PaymentMain8001.class,args);
        log.info("************PaymentMain8001 启动成功 ********");
   }
}

注意: @EnableDiscoveryClient:开启注册发现服务

编写YML配置文件 

server:
 port: 8001
spring:
 application:
    # 微服务名字
   name: provider-payment
 cloud:
   nacos:
     discovery:
        # Nacos服务地址
       server-addr: 192.168.66.101:8848

查看Nacos控制台服务

分布式服务治理_创建服务消费者 

创建服务提供者工程cloud-consumer-order80 

POM文件引入依赖 

  <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

编写主启动类

@SpringBootApplication
@Slf4j
@EnableDiscoveryClient
public class OrderMain80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderMain80.class,args);
        log.info("************ OrderMain80 启动成功 ********");
   }
}

编写YML配置文件

server:
 port: 80
spring:
 application:
    # 微服务名字
   name: consumer-order
 cloud:
   nacos:
     discovery:
        # Nacos服务地址
       server-addr: 192.168.66.101:8848

查看Nacos控制台服务

服务调用_Dubbo和OpenFeign区别 

回顾Dubbo 

Apache Dubbo 是一款微服务开发框架,它提供了 RPC通信与微服务治理两大关键能力。这意味着,使用 Dubbo 开发的微服务,将具备相互之间的远程发现与通信能力, 同时利用 Dubbo 提供的丰富服务治理能力,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。

通信性能方面 

从通信的性能上来分析,SpringCloud的通信采用Openfeign (feign)组件。Feign基于Http传输协议,底层实现是Rest。从OSI 7层模型上来看Rest属于应用层。

注意:在高并发场景下性能不够理想,成为性能瓶颈。

Dubbo框架的通信协议采用RPC协议,属于传输层协议,性能上自然比rest高。提升了交互的性 能,保持了长连接,高性能。 

注意: Dubbo性能更好,比如支持异步调用、Netty性能更好。 

 

 

实时效果反馈

1.OpenFeign底层是Feign采用___协议。

A RPC

B HTTP 

C TCP

D 以上都错误

2. Dubbo框架的通信协议采用RPC协议,属于___协议。

A 应用层

B 传输层

C 会话层

D 以上都是错误

服务调用_微服务接入OpenFeign

创建工程cloud-consumer-openfeign-order80 

添加OpenFeign依赖 

   <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!-- openfeign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>
    </dependencies>

主启动类添加feign注解

@EnableFeignClients
@SpringBootApplication
@Slf4j
@EnableDiscoveryClient
public class OrderOpenFeign80 {
    public static void main(String[] args) {
       SpringApplication.run(OrderOpenFeign80.class,args);
        log.info("*************OrderOpenFeign80 启动成功 ********");
   }
}

创建YML配置文件

server:
 port: 80
spring:
 application:
    # 微服务名字
   name: consumer-order
 cloud:
   nacos:
     discovery:
        # Nacos服务地址
       server-addr: 192.168.66.101:8848
feign:
 client:
   config:
     default:
        # ⽹络连接阶段1秒超时 7
       connectTimeout: 1000
        # 服务请求响应阶段2秒超时
       readTimeout: 2000

创建要调用的的微服务接口

@Service
@FeignClient(value = "provider-payment",fallback = TemplateServiceFallback.class)
public interface PaymentService {
    @GetMapping("/payment/index")
    String index();
}

创建控制层

/**
* 订单控制层
*/
@RestController
@RequestMapping("order")
public class OrderController {
   @Autowired
    private PaymentService paymentService;
    /**
     * 测试OpenFeign
     * @return
     */
    @GetMapping("index")
    public String index(){
        return paymentService.index();
   }
}

测试

请求http://192.168.66.101:80/order/index

猜你喜欢

转载自blog.csdn.net/m0_58719994/article/details/131797800