old                                                                                           使用Eureka  将各个微服务分到不同的服务器上

Eureka 就是个服务中心,将各种服务都注册到了服务中心,如几台服务提供相同服务来做均衡负载;监控服务器调用成功率来做熔断,移除服务列表中的故障点;监控服务调用时间来对不同的服务器设置不同的权重等等。

Eureka由两个组件组成:Eureka服务器和Eureka客户端

1、Eureka Server

  • 提供服务注册和发现

2、Service Provider

  • 服务提供方
  • 将自身服务注册到Eureka,从而使服务消费方能够找到

3、Service Consumer

  • 服务消费方
  • 从Eureka获取注册服务列表,从而能够消费服务

一 。eureka服务注册中心的搭建

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework.cloud</groupId>
  4. <artifactId>spring-cloud-starter</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework.cloud</groupId>
  8. <artifactId>spring-cloud-starter-eureka-server</artifactId>
  9. </dependency>
  10. <dependency>
  11. <groupId>org.springframework.boot</groupId>
  12. <artifactId>spring-boot-starter-test</artifactId>
  13. <scope>test</scope>
  14. </dependency>
  15. </dependencies>

添加

  1. @EnableEurekaServer 注解 到启动类上
  2. 配置properties
  1. spring.application.name=spring-cloud-eureka
  2.  
  3. server.port=8000
  4. eureka.client.register-with-eureka=false 表示是否将自己注册到Eureka Server,默认为true
  5. eureka.client.fetch-registry=false 表示是否从Eureka Server获取注册信息,默认为true
  6.  
  7. eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
    设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。默认是http://localhost:8761/eureka ;多个地址可使用 , 分隔。

eureka集群配置    每台注册中心分别又指向其它两个节点即可

  1. ---
  2. spring:
  3. application:
  4. name: spring-cloud-eureka
  5. profiles: peer1
  6. server:
  7. port: 8000
  8. eureka:
  9. instance:
  10. hostname: peer1
  11. client:
  12. serviceUrl:
  13. defaultZone: http://peer2:8001/eureka/,http://peer3:8002/eureka/
  14. ---
  15. spring:
  16. application:
  17. name: spring-cloud-eureka
  18. profiles: peer2
  19. server:
  20. port: 8001
  21. eureka:
  22. instance:
  23. hostname: peer2
  24. client:
  25. serviceUrl:
  26. defaultZone: http://peer1:8000/eureka/,http://peer3:8002/eureka/
  27. ---
  28. spring:
  29. application:
  30. name: spring-cloud-eureka
  31. profiles: peer3
  32. server:
  33. port: 8002
  34. eureka:
  35. instance:
  36. hostname: peer3
  37. client:
  38. serviceUrl:
  39. defaultZone: http://peer1:8000/eureka/,http://peer2:8001/eureka/

启动

  1. java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
  2. java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
  3. java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3
  1. 二. 服务提供
  2. pom 引入
    配置文件
  1. spring.application.name=spring-cloud-producer
  2. server.port=9000
  3. eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
  4.  
  5. 添加注解
  1. @EnableDiscoveryClient
  1. 提供服务
  1. @RestController
  2. public class HelloController {
  3.  
  4. @RequestMapping("/hello")
  5. public String index(@RequestParam String name) {
  6. return "hello "+name+",this is first messge";
  7. }
  8. }

三.服务调用

引入pom

配置

  1. spring.application.name=spring-cloud-consumer
  2. server.port=9001
  3. eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
  4. 添加注解
    @EnableDiscoveryClient启用服务注册与发现
    @EnableFeignClients 启用feign进行远程调用

feign调用实现

  1. @FeignClient(name= "spring-cloud-producer") 远程服务名
  2. public interface HelloRemote {
  3. @RequestMapping(value = "/hello")
  4. public String hello(@RequestParam(value = "name") String name);
  5. }

web层调用远程服务

  1. @RestController
  2. public class ConsumerController {
  3.  
  4. @Autowired
  5. HelloRemote HelloRemote;
  6.  
  7. @RequestMapping("/hello/{name}")
  8. public String index(@PathVariable("name") String name) {
  9. return HelloRemote.hello(name);
  10. }
  11.  
  12. }

将服务注册多个负载均衡

Eureka 服务中心的更多相关文章

  1. SpringCloud微服务小白入门之Eureka注册中心和服务中心搭建示例

    一.注册中心配置文件 代码复制区域: spring: application: name: spring-cloud-server server: port: 7000 eureka: instanc ...

  2. SpringCloud笔记三:Eureka服务注册与发现

    目录 什么是Eureka? Eureka注册的三大步 第一步,引用Maven 第二步,配置yml 第三步,开启Eureka注解 新建Eureka子项目 把provider子项目变成服务端 Eureka ...

  3. Eureka编程

    在一些场景下,我们需要监听eureka服务中心的一些状态,譬如某个微服务挂掉了,我们希望能监听到,并给管理员发送邮件通知或钉钉告警. 一.Eureka的监听事件,可以用来监控.告警EurekaInst ...

  4. IDEA项目搭建六——使用Eureka和Ribbon进行项目服务化

    一.Eureka的作用 这里先简单说明使用eureka进行业务层隔离,实现项目服务化也可以理解为微服务,我一直崇尚先实现代码再学习理论,先简单上手进行操作,eureka使用分为三块,1是服务注册中心, ...

  5. Eureka 客户端 配置Eureka 爬坑

    配置客户端 eureka.client.register-with-eureka=true eureka.client.fetch-registry=true eureka.client.servic ...

  6. SpringCloud 进阶之Eureka(服务注册和发现)

    1. Eureka 服务注册与发现 Eureka 是一个基于REST的服务,用于服务的的注册与发现; Eureka采用C-S的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册 ...

  7. 服务的注册与发现Eureka(二)

    1.服务治理概念 在传统rpc远程调用中,服务与服务依赖关系,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用.负载均衡.容错等,实现服务发现与注册. 2.服务的注册与 ...

  8. spring cloud config搭建说明例子(二)-添加eureka

    添加注册eureka 服务端 ConfigServer pom.xml <dependency> <groupId>org.springframework.cloud</ ...

  9. spring cloud 2.x版本 Eureka Client服务提供者教程

    本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 1 创建eureka client 1.1 新建Srping boot工程:eureka-c ...

随机推荐

  1. Collection接口详解

    Collection 介绍 https://blog.csdn.net/jyg0723/article/details/80498840 Stream API介绍  https://www.jians ...

  2. vscode设置VUE eslint开发环境

    我的使用vscode开发VUE的常用设置 1.安装插件 ESLint Vetur Beautify Prettier - Code formatter Auto Rename Tag -重命名标签,闭 ...

  3. JS 的 new 到底是干什么的?

    大部分讲 new 的文章会从面向对象的思路讲起,但是我始终认为,在解释一个事物的时候,不应该引入另一个更复杂的事物. 今天我从「省代码」的角度来讲 new. --------------------- ...

  4. JavaWeb_(Mybatis框架)动态sql_七

    系列博文: JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一 传送门 JavaWeb_(Mybatis框架)使用Mybatis对表进行增.删.改.查操作_ ...

  5. Js 之将字符串当变量使用

    var page1 = 0; var p = "page1"; //修改值 window[p] += 1; var value = eval(p);

  6. Elasticsearch的Search详解

    介绍 ES不是新技术,是将全文检索和数据分析.分布式整合到一起. 基于lucene开发,提供简单的restful api接口.java api接口.其他语言开发接口等. 实现了分布式的搜索引擎和分析引 ...

  7. Yarn 安装 node-sass 依赖导致 Build Fresh Packages 太慢的问题

    解决办法: 1. 在 项目目录下新建 .yarnrc 文件 添加以下代码 registry "https://registry.npm.taobao.org" sass_binar ...

  8. csp-s模拟106

    这场其实心态十分爆炸,首先一下午改上次破T3卡常一下午没过,心情十分暴躁.上来开题不顺利,T1想了一个小时没动.于是跳到T2,看T2的80pts貌似可拿就先打了.T3只会判10分,又想打个$2^{2N ...

  9. vue 中引入第三方js库

    以 jQuery 为例 一.绝对路径直接引入,全局可用 主入口页面 index.html 中用 script 标签引入: <script src="./static/jquery-1. ...

  10. 【SpringBoot】整体下载大文件与分批下载大文件(利用MySql数据库的Limit实现)

    在前文里谈过一次性从数据库取一个大结果集有可能导致outofMemory,当时的想法是分批去取回来,今天把它实现了,特地把代码分享出来: 工程下载:https://files.cnblogs.com/ ...