快速搭建springcloud---适合初学者参考

  • 1、服务注册和发现Eureka Server搭建实战

    简介:使用IDEA搭建Eureka服务中心Server端并启动,项目基本骨架介绍
    
    官方文档:http://cloud.spring.io/spring-cloud-netflix/single/spring-cloud-netflix.html#spring-cloud-eureka-server

    第一步:创建项目
    第二步: 添加注解 @EnableEurekaServer
    第三步:增加配置application.yml
            server:
              port: 8761

            eureka:
              instance:
                hostname: localhost
              client:
              #声明自己是个服务端
                registerWithEureka: false
                fetchRegistry: false
                serviceUrl:
                  defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

    第四步:访问注册中心页面

  • idea创建过程图解创建工程

  • 1第一步

2.第二步

3.点击下一步到以下界面

4.选择项目依赖

5.选择好项目保存路径点击finish

  • 2、服务注册和发现之Eureka Client搭建商品服务实战
        简介:搭建用商品服务,并将服务注册到注册中心

        1、创建一个SpirngBoot应用,增加服务注册和发现依赖
        2、模拟商品信息,存储在内存中

        3、开发商品列表接口,商品详情接口
        
        4、配置文件加入注册中心地址
            使用eureka客户端 官方文档:http://cloud.spring.io/spring-cloud-netflix/single/spring-cloud-netflix.html#netflix-eureka-client-starter

  1. 前面的操作跟搭建eureka server一样,这里选择依赖的时候需要选择两个地方
  • 两个项目的yml配置文件

    • eureka server配置文件
    • eureka client配置文件即新建项目被eureka管理的项目的配置文件,也就是所有需要在注册中心注册接口的服务的配置

 

  • 3、Eureka服务注册中心配置控制台问题处理

    简介:讲解服务注册中心管理后台,(后续还会细讲)

    问题:eureka管理后台出现一串红色字体:是警告,说明有服务上线率低

    EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.

    关闭检查方法:eureka服务端配置文件加入
    server:
        enable-self-preservation: false
    注意:自我保护模式禁止关闭,默认是开启状态true

  • 4、常用的服务间调用方式讲解

    简介:讲解常用的服务间的调用方式

        RPC:
            远程过程调用,像调用本地服务(方法)一样调用服务器的服务
            支持同步、异步调用
            客户端和服务器之间建立TCP连接,可以一次建立一个,也可以多个调用复用一次链接

            PRC数据包小
                protobuf
                thrift
            rpc:编解码,序列化,链接,丢包,协议


        Rest(Http):
            http请求,支持多种协议和功能
            开发方便成本低

            http数据包大

            java开发:HttpClient,URLConnection

  • 5、微服务调用方式之ribbon实战 订单调用商品服务

    简介:实战电商项目 订单服务 调用商品服务获取商品信息
        1、创建order_service项目
        2、开发伪下单接口
        3、使用ribbon. (类似httpClient,URLConnection) 

            启动类增加注解
              @Bean
              @LoadBalanced
              public RestTemplate restTemplate() {
                   return new RestTemplate();
              }
        4、根据名称进行调用商品,获取商品详情

创建order_server需要引入一下基本依赖

使用Ribbon   启动类增加注解

使用RestTemplete调用接口,此处使用了Ribbon默认的调用接口的负载均衡策略--轮询策略(也可自定义负载均衡策略,可在yml文件中配置)

ribbon服务间调用负载均衡策略分析(具体源码分析可查看源码,此处不做具体源码分析)

分析@LoadBalanced
            1)首先从注册中心获取provider的列表
            2)通过一定的策略选择其中一个节点
            3)再返回给restTemplate调用

自定义负载均衡策略:http://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/single/spring-cloud.html#_customizing_the_ribbon_client_by_setting_properties

    在配置文件yml里面,自定义负载均衡策略
        #自定义负载均衡策略(此处自定义的策略为随机策略作为示例,需要配置其他策略,可查看官方文档)
        product-service:
          ribbon:
            NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

    策略选择:
        1、如果每个机器配置一样,则建议不修改策略 (推荐)
        2、如果部分机器配置强,则可以改为 WeightedResponseTimeRule

order_service的yml文件基本配置

  • 微服务调用方式之feign 实战 订单调用商品服务

 以下的配置都是在order_service项目做的,属于调用方的配置

简介:改造电商项目 订单服务 调用商品服务获取商品信息
        Feign: 伪RPC客户端(本质还是用http)
        官方文档: https://cloud.spring.io/spring-cloud-openfeign/


        1、使用feign步骤讲解(新旧版本依赖名称不一样)
            加入依赖
                 <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-openfeign</artifactId>
                </dependency>
            启动类增加@EnableFeignClients
            增加一个接口 并@FeignClient(name="product-service")

        2、编码实战

启动类添加注解,启用Feign

创建service实现使用feign调用商品的服务接口


        3、注意点:
            1、路径
            2、Http方法必须对应
            3、使用requestBody,应该使用@PostMapping
            4、多个参数的时候,通过@RequestParam("id") int id)方式调用

  • Feign核心源码解读和服务调用方式ribbon和Feign选择    

    简介: 讲解Feign核心源码解读和 服务间的调用方式ribbon、feign选择
    
        1、ribbon和feign两个的区别和选择
            选择feign
                默认集成了ribbon
                写起来更加思路清晰和方便
                采用注解方式进行配置,配置熔断等方式方便

        2、超时配置
            默认optons readtimeout是60,但是由于hystrix默认是1秒超时

            #修改调用超时时间
            feign:
              client:
                config:
                  default:
                    connectTimeout: 2000
                    readTimeout: 2000

            模拟接口响应慢,线程睡眠新的方式
              try {
                    TimeUnit.SECONDS.sleep(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值