SpringCloud基础

  • 6. hytrix熔断器容错机制的初步理解

    首先我们要清楚hytrix已经和feign融合到一起了,就看我们到底用不用了 搭建过程 consumer消费者端配置hytrix的开启 代码实现 1. consumer消费者端配置hytrix的开启 eureka: client: service-url: defaultZone: http://wkk:123456@127.0.0.1:7776/eureka registry-fetch-interval-seconds: 5 server: port: 9002 spring: application: name: wkk-user-consumer feign: # 开启hytrix的配置项 hystrix: enabled: true 2. 代码实现 UserFeignClient接口类的类注解里面加入了UserFeignClientFallback.class这个回调类,这个类就是熔断器的实现类 @FeignClient(name = "wkk-user-provider",fallback = UserFeignClientFallback.class) public interface UserFeignClient { @RequestMapping(value = "/login", method = RequestMethod.POST) boolean login(User user); @RequestMapping(value = "/login", method = RequestMethod.GET) String login(@RequestParam("count") int count); } 然后是UserFeignClientFallback这个回调类的实现,注意它是UserFeignClient这个接口类的实现 /** * 备胎模块 */ @Component public class UserFeignClientFallback implements UserFeignClient { @Override public boolean login(User user) { return false; } @Override public String login(int i) { return "异常"; } } 我们要注意的是,当我们的服务提供者挂掉的时候,这个回调的熔断器就会起作用,熔断器实现但是feign接口类里面的方法,这个方法的具体规则与我们定义的真正的服务提供者的方法是必须一致的,这就是我们所说的微服务调用的三板斧

    November 10, 2020 0 0
  • 5. 服务提供与服务消费者如何用javabean进行传参(公共依赖模块)

    搭建过程 创建公共项目(maven创建) 写javabean 导入lombok 安装导入公共项目到maven 调用传参 1. 创建公共项目 直接创建maven项目即可,依赖项里面加入lombok自动生成getset等 2. javabean书写 package com.springcloud.demo.model; import lombok.Data; import lombok.ToString; @Data //lombok注解 @ToString //lombok注解 public class User { private String username; private String password; } 3. 导入lombok 这个导入操作其实就是在plugins下载lombok插件即可,很简单 4. 安装公共项目到maven依赖 右侧maven项目管理里面的install,注意groupid与actifactid 请注意maven的依赖地址这个要在settings里面设置,百度很详细不一一列举了 5. 调用传参 a. 加入依赖 我们在provider里面调用这个公共库,前提是需要在pom里面加入com.springcloud的依赖,注意groupid与actifactid(与我们在公共库里面定义的是一致的) b. 方法中调用javabean c. 消费端的调用方法 feign类里面的 控制器类里面的

    November 10, 2020 0 0
  • 4. 服务消费者Consumer的开发过程(feign定义与调用)

    搭建过程 项目初始化过程 yml配置和依赖项的添加 定义FeighClient调用类 控制器LoginController调用Feign 测试 1. 项目初始化过程 与之前的服务提供者的搭建框架是一样的,我们用spring initializer 去创建一个dicovery项目即可 2. yml配置和依赖项的添加 依赖的添加(openfeign的添加)pom引入这个依赖 org.springframework.cloud spring-cloud-starter-openfeign yml配置 eureka: client: service-url: defaultZone: http://wkk:123456@127.0.0.1:7776/eureka registry-fetch-interval-seconds: 5 server: port: 9002 spring: application: name: wkk-user-consumer feign: //这个地方是熔断器的位置,先不要管他 后面会有 hystrix: enabled: true 3. 定义FeighClient调用类 a. 首先要现在启动类做注解,启用Feigh客户端 @SpringBootApplication @EnableEurekaClient @EnableFeignClients //启用Feigh全靠这个注解 public class WkkUserConsumerApplication { public static void main(String[] args) { SpringApplication.run(WkkUserConsumerApplication.class, args); } b.创建FeightClient类,如下图所示 代码如下所示: @FeignClient(name = “wkk-user-provider”,fallback = UserFeignClientFallback.class) public interface UserFeignClient { @RequestMapping(value = “/login”, method = RequestMethod.POST) boolean login(User user); @RequestMapping(value = “/login”, method = RequestMethod.GET) String login(); } 类注解里面的name相当于是我们调用的服务提供着节点的名字,我们之前创建的“wkk-user-provider”,fallback是熔断器的回调类,我们后面再说。 这里面两个login方法分别对应服务提供着里面的两种方法,一种无参数一种有参数,有参数的涉及到公共类,这个我们也放到后面再讨论 上面大家可以看到…

    November 8, 2020 0 0
  • 3. Eureka Security机制用户验证的建立与过程分析

    Eureka Security用户验证的建立与分析 1. 配置过程 服务端yml配置与pom依赖的加载 客户端的yml与pom配置 2. 代码展示 配置过程 1. 服务端配置 pom依赖 yml配置(这里的配置是spring boot2.0的配置方式 与之前的略有不同) 我们还需要注意的是maven仓库必须要一致请看我的设置 还有一点是我们需要一个安全配置的类,也可以写成匿名类,这个是springboot2与之前版本不一样的地方 如果不加上刚才的那个验证类 会出现注册中心链接不上的问题 如同这个报错:Cannot execute request on any known server 具体解决方法看这篇文章: ♥ 2.客户端的配置 1.yml的配置(可以看到只是在地址端设置了用户名密码) eureka: client: service-url: defaultZone: http://wkk:123456@127.0.0.1:7776/eureka registry-fetch-interval-seconds: 5 server: port: 9001 spring: application: name: wkk-user-provider # security: # user: # name: wkk # password: 123456 2 代码展示 这次试验没有基础代码 只有一个绕靠csrf令牌的代码 成功以后的效果 1.首先是注册中心 需要输入我们定义的用户名密码,如果我们不去定义默认用户名是user 密码是默认生成的乱序字符串 我们开启客户端wkk-user-provider(服务提供者)

    November 4, 2020 0 0
  • 2. Eureka Client客户端创建并实现注册中心注册

    上次我们实现的是Eureka服务发现服务端的建立以及上线,这次我们着重介绍客户端的建立以及如何配置服务发现向服务节点注册我们的客户端 搭建过程 创建Eureka Client为基础的Spring Boot项目 代码与配置 启动类注解+yml配置 1. 框架基础搭建 这里的搭建方式基本与服务端的创建方式是一样的都是用spring initializr进行初始化创建,不同的是我们要做的是发现的客户端 创建项目Eureka Client的Spring Boot项目框架 注意选择的是Discovery Client 后续操作基本一致 1. 代码与配置 除了注解不同配置有一些差异外,其他的基本都是一样的 启动类注解+yml配置 @SpringBootApplication @EnableEurekaClient public class WkkUserProviderApplication { public static void main(String[] args) { SpringApplication.run(WkkUserProviderApplication.class, args); } } 以上是启动类的注解配置,注意这里面我们用的是EurekaClient与Server是不同滴 yml文件的配置相比较多出了一个application名字的配置 eureka: client: service-url: defaultZone: http://localhost:7776/eureka/ # healthcheck: # enabled: true # instance: # lease-expiration-duration-in-seconds: 30 # lease-renewal-interval-in-seconds: 10 registry-fetch-interval-seconds: 5 server: port: 9001 spring: application: name: client 最后启动(首先保证注册中心处于启动状态) 一个bug 当我们用spring initialzr去初始化spring boot的时候,会发现 https://start.spring.io 会连接不上或者速度很慢,这个时候我们可以用自定义的源地址,例如,https://start.aliyun.io

    October 30, 2020 0 0
  • 1.Eureka的服务中心实现与基本的springboot版本配置

    注意:由于版本兼容原因所以我们sprintboot版本调整为2.1.28,然后spring cloud升版为Greenwich.SR6 过程总结 第一步 环境搭建过程 idea搭建步骤 pom依赖环境配置 第二步 代码部分 启动类注解与yml配置文件 Tips:所遇到的bugs以及解决方案 jupiter程序包不存在 环境搭建 1. idea初始化搭建springboot项目 用spring initializr进行项目初始化 项目desc配置 注意java的版本 3.初始化Euraka项目 2. pom依赖环境配置 切换spring boot1.5.6版本对应的一些依赖也要做相应修改如下所示 记住dependencyManagement这个可以解决一系列依赖不适配问题 **这里附带一个maven的项目管理(大神略过) 代码部分 1. 启动类注解与yml配置文件 1.启动类的euraka注解 package com.example.demoeurekaserver; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication #注解写在这里 @EnableEurekaServer public class DemoEurekaServerApplication { public static void main(String[] args) { SpringApplication.run(DemoEurekaServerApplication.class, args); } } yml配置文件 server: port: 7776 eureka: client: # 声明服务中心地址 service-url: defaultZone: "http://localhost:7776/eureka" # 集群各个点之间数据共享 因为是单点所以定义为false fetch-registry: false # 是否是注册中心管理者 如果是功能模块那么就需要注册给注册中心自然是true 如果本身就是注册中心那就是false register-with-eureka: false 除了以上yml配置 还有一种配置多服务节点相互通信的配置 server: port: 7776 eureka: client: # 声明服务中心地址 # service-url: defaultZone: "http://localhost:7776/eureka"…

    October 30, 2020 0 0

Contact Us

在线咨询:点击这里给我发消息

邮件:814489173@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code