1. 注册服务中心
    new–>project–>spring Initializr—>(next)…—>Dependencies(Cloud Discovery Eureka Server)
    在入口类处加注解@EnableEurekaServer表明该服务器是一个服务注册中心
@SpringBootApplication
//服务注册中心
@EnableEurekaServer
public class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class, args);}
}

配置application.yml

#服务器端口号
server:port: 8761
#向服务中心注册
eureka:client:service-url:defaultZone: http://localhost:8761#eureka.client.register-with-eureka:false(是否向自身注册),eureka.client.fetch-register:false表明该服务器是个eureka serverregister-with-eureka: falsefetch-registry: false
spring:application:name: eureka
  1. 服务提供者
    (创建过程同上)
    在入口类加入注解@EnableDiscoveryClient,@EnableEurekaClient表明这是一个eureka client
@SpringBootApplication
@EnableDiscoveryClient
@EnableEurekaClient
//注意:如果单独创建controller类,要放在该入口类的子包下,否则扫描不到
@RestController
public class EurekaClientApplication {public static void main(String[] args) {SpringApplication.run(EurekaClientApplication.class, args);}@Value("${server.port}")String port;@RequestMapping("/hi")public String home(@RequestParam(value = "name", defaultValue = "forezp") String name) {return "来自"+port+"的"+name+"人类,欢迎来到我们的时间";}}
server:port: 8762
eureka:client:service-url:defaultZone: http://localhost:8761/eurekainstance:hostname: clientName
spring:application:name: eureka-client

在pom.xml中加jar包

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

配置EurekaClientApplication下的小三角里的Edit Configurations–>single instance only(去掉对勾)
,改application.yml里的端口号,改为8763,启动

  1. 服务消费者(负载均衡)

restTemplate+ribbon实现负载均衡
在pom.xml配置加入以下配置

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--ribbon:负载均衡客户端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId></dependency>
@SpringBootApplication
@EnableEurekaClient
//向服务中心注册
@EnableDiscoveryClient
@RestController
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}//向程序的ioc注入一个bean@Bean//表明这个restTemplated开启负载均衡@LoadBalancedRestTemplate restTemplate(){return new RestTemplate();}
}

创建Service类


@Service
public class HelloService {@Autowiredprivate RestTemplate restTemplate;public String hiService(String name){return restTemplate.getForObject("http://EUREKA-CLIENT/hi?name="+name,String.class);}
}

创建Controller类

@RestController
public class HelloController {@Autowiredprivate HelloService helloService;@GetMapping(value = "/hi")public String hi(@RequestParam String name){return helloService.hiService(name);}}

分别开启服务注册中心,服务提供者(8762,8763),服务消费者,访问http://localhost:8764/hi?name=zy,不断刷新,就会发现页面交替出现,

来自8762的zy人类,欢迎来到我们的时间
来自8763的zy人类,欢迎来到我们的时间

说明已经达到了负载均衡

feign+rest实现负载均衡
在pom.xml加入如下配置

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

在入口类加入注解@EnableFeignClients

//通过@FeignClient来指定调用哪个服务
@FeignClient(value = "eureka-client")
public interface SchedualServiceHi {@RequestMapping(value = "/hi",method = RequestMethod.GET)String sayHiFromClientOne(@RequestParam(value = "name")String name);
}
@RestController
public class HiController {@Autowiredprivate SchedualServiceHi schedualServiceHi;@RequestMapping(value = "/hi")public String sayHi(@RequestParam(value = "name")String name){return schedualServiceHi.sayHiFromClientOne(name);}
}
  1. 断路器
    为什么要使用断路器?因为服务与服务之间可以互相调用,如果一个服务宕机,很有可能导致线程阻塞,线程资源被消耗完毕,从而导致雪崩。

一:springCloud服务发现者,服务消费者(方志朋《史上最简单的 SpringCloud 教程》专栏读后感)相关推荐

  1. 史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心(Finchley版本)

    转载请标明出处: http://blog.csdn.net/forezp/article/details/81041101 本文出自方志朋的博客 个人博客纯净版:https://www.fangzhi ...

  2. 史上最简单的 SpringCloud 教程

    关注公众号"风色年代"订阅更多精彩文章,本博大部分文章为转载并已标明原文出处,如有再转敬请保留,请自觉尊重原创作者的劳动成果! https://blog.csdn.net/fore ...

  3. 史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)

    转:https://blog.csdn.net/forezp/article/details/69808079 最新版本: 史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign ...

  4. 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)

    转载请标明出处: http://blog.csdn.net/forezp/article/details/81040925 本文出自方志朋的博客 个人博客纯净版:https://www.fangzhi ...

  5. 史上最简单的SpringCloud教程 | 第九篇: 服务链路追踪(Spring Cloud Sleuth)(Finchley版本)

    转载请标明出处: http://blog.csdn.net/forezp/article/details/81041078 本文出自方志朋的博客 个人博客纯净版:https://www.fangzhi ...

  6. 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

    最新Finchley版本请访问: https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/ 或者 http://blog.csd ...

  7. 史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心

    转自:https://blog.csdn.net/forezp/article/details/81041101 文章 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eu ...

  8. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)--有BUG,注意看我的备注

    转载请标明出处:  http://blog.csdn.net/forezp/article/details/69934399  本文出自方志朋的博客 在微服务架构中,根据业务来拆分成一个个的服务,服务 ...

  9. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)--里面有BUG,所以我转载改一下

    017年04月09日 21:14:05 阅读数:271535 转载请标明出处:  http://blog.csdn.net/forezp/article/details/69934399  本文出自方 ...

  10. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)(Finchley版本)

    转载请标明出处: http://blog.csdn.net/forezp/article/details/81040990 本文出自方志朋的博客 个人博客纯净版:https://www.fangzhi ...

最新文章

  1. Java中的main()方法详解
  2. python calu_Python基本数据类型
  3. Linux网络模式及远程连接出错排障
  4. HTML中transform菜鸟,HTML canvas
  5. jsf 配置_JSF Tomcat配置示例
  6. jsp压缩html,使用HtmlCompressor压缩JSP编译的Html代码
  7. GAN网络(Generative Adversarial Networks )
  8. 微软以75亿美元收购GitHub
  9. 文字处理技术:与布局相关的功能
  10. 使用swix反编译swf文件修改版权
  11. 【备忘】Java菜鸟到大牛学习路线之实战篇
  12. Windows Server 2012 修复ms17-010漏洞提示 此更新不适用于你的计算机
  13. css 清除表单样式,css form表单样式清除
  14. 网络安全笔记2——单钥密码体制
  15. leetcode第一题:滑雪问题
  16. 微信公众号-音频接口(上传、下载、辨音)
  17. 360oauth token是什么意思_京东开放服务平台(JOS)关于token问题汇总(一)
  18. STM32 OLED显示屏--SPI通信知识汇总
  19. 黄色——网页效果图设计之色彩索引
  20. rem等于多少px?

热门文章

  1. jsp入门教程:7个步骤实现JSP的分页显示
  2. 推荐系统之协同过滤算法
  3. 五万字,57道hadoop大厂高频面试题,每一字都细心打磨,强烈建议收藏!
  4. 威纶触摸屏在easybuilder中如何组态添加滑动开关元件?
  5. Android中识别手柄JAVA_android的游戏手柄开发测试代码
  6. 《凤凰项目 一个IT运维的故事传奇》读后感
  7. 《统计学》第八版贾俊平第九章分类数据分析知识点总结及课后习题答案
  8. vue json对象转数组_分享:vue使用技巧和项目中遇到的问题
  9. Matlab中实现均匀量化
  10. android 脚本录制工具,安卓自动化脚本录制工具