SpringCloud系列目录:

  • 一、SpringCloud简介
  • 二、Eureka服务注册与发现
  • 三、Eureka注册与发现之Eureka Comsumer
  • 四、Eureka、Server Provider集群配置
  • 五、Ribbon和OpenFeign

  续上片博文,如果在一篇博文中写完Eureka所有的内容,篇幅会过长,这样比较容易漏掉某项配置。还望各位大佬见谅

  上篇博文说道,我们目前已经有了商场和商户,目前还缺少一个用户,用户需要通过商场找到商户,并从商户中获取到服务。那接下来我们就新增80用户服务

一、构建项目

先看下module的结构,其中的config可以先不用关注,这个是后续提到的负载均衡的方式

1) 修改pom.xml

<dependencies><!--引入Eureka client端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!--自定义的服务组件--><dependency><groupId>com.gaowz</groupId><artifactId>cloud-api-commons</artifactId><version>1.0-SNAPSHOT</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web  --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies>

2)配置application.yml

server:port: 80Spring:application:#微服务名称 此处的名称即为注册发现中心的名称name: cloud-consumer-ordereureka:client:register-with-eureka: truefetch-registry: trueservice-url:defaultZone: http://eureka7001.com:7001/eureka

3)主启动类


@EnableEurekaClient
@SpringBootApplication
public class OrderMain80 {public static void main(String[] args) {SpringApplication.run(OrderMain80.class,args);}
}

4)业务代码

package com.gao.controller;import com.gao.domain.CommonResult;
import com.gao.domain.Payment;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;import javax.annotation.Resource;/*** @program: tx_springcloud_02* @description: 订单的控制层* @author: gaowz* @create: 2020-11-16 14:40**/
@RestController
@RequestMapping("/order")
public class OrderController {//集群环境下只写服务名称public static final String PAYMENT_URL = "http://CLOUD-PAYMENT-SERVICE";@Resourceprivate RestTemplate restTemplate;@GetMapping("/consumer/payment/create")public CommonResult<Payment> create(Payment payment) {return restTemplate.postForObject(PAYMENT_URL + "/payment/create", payment, CommonResult.class);  //写操作}@GetMapping("/consumer/payment/get/{id}")public CommonResult<Payment> getPayment(@PathVariable("id") Long id) {return restTemplate.getForObject(PAYMENT_URL + "/payment/get/" + id, CommonResult.class);}/*** 使用的是getforentity* @param id* @return*/@GetMapping("/consumer/payment/getEntity/{id}")public CommonResult<Payment> getPayment2(@PathVariable("id") Long id) {ResponseEntity<CommonResult> entity = restTemplate.getForEntity(PAYMENT_URL + "/payment/get/" + id, CommonResult.class);if (entity.getStatusCode().is2xxSuccessful()){return entity.getBody();}else{return new CommonResult<>(444,"操作失败");}}
}

5)测试

  • 首先8001服务先自测看是否有问题,发现是OK的~
  • 然后再通过80服务调用8001服务是否依然是OK的,此处远程调用的方式是restTemplate的方式

此处我们发现即是通过80客户端是可以访问到对应的服务的

  到这里单体的注册发现,以及服务调用就已经结束了。但是不知道大家有没有发现,到目前为止,我们的Server Provider和 Eureka Server都是都是只有一台。这样的架构行不行呢,说实话其实是没有问题的,但是万一哪天Provdier或者是Eureka Server掉线了,那我们的80客户端还能访问吗?答案是不可以的。

  使用集群可以很好的解决上述问题

  欢迎各位优秀的工程师批评指正~

源码地址Git

三、Eureka注册与发现之Eureka Comsumer相关推荐

  1. Chapter 1 快速搭建-服务的注册与发现(Eureka)

    Chapter 1 快速搭建-服务的注册与发现(Eureka) 一.Spring Cloud简介 为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代 ...

  2. Spring Boot(2.1.2.RELEASE) + Spring Cloud (Finchley.RELEASE)搭建服务注册和发现组件Eureka

    前言:由于版本原因,部分关于Spring Cloud的书中使用的是Spring Boot 1.x 版本,很多配置或名称在新版本中已经发生了改变.此篇文章记录的是使用较新的Spring Boot 2.x ...

  3. eureka多了一个莫名其妙的服务_SpringCloud 服务注册与发现组件 Eureka

    一.SpringCloud介绍 微服务,为了更好的创建项目组织结构.更高效的项目的迭代效果.更优良的架构设计,就需要使用微服务的架构思想,来对项目进行搭建或者重构. 企业碰到的第一个问题是服务如何进行 ...

  4. springcloud微服务系列之服务注册与发现组件Eureka

    一.Eurake的简介 二.使用Eureka进行服务的注册消费 1.创建一个服务注册中心 2.创建服务的提供者 3.创建服务的消费者 总结 一.Eurake的简介 今天我们来介绍下springclou ...

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

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

  6. SpringCloud成长之路 一 注册与发现(Eureka)

    一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...

  7. SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

    一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...

  8. java B2B2C springmvc mybatis电子商务平台源码-服务的注册与发现(Eureka)

    1.介绍 对于微服务的治理而言,其核心就是服务的注册和发现.在SpringCloud 中提供了多种服务注册与发现组件:Eureka,Consul,Zookeeper.官方推荐使用Eureka. 需要J ...

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

    服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现. 微服务中用来做注册中心的组件常有zookeeper.eureka.Consul等,这里主要学习Eureka ...

最新文章

  1. TensorFlow单层感知机实现
  2. python整数类型-Python整数类型及其运算
  3. STM32开发 -- 外部中断详解
  4. 【Tensorflow】Tensor的比较运算
  5. pd.stats.ols.MovingOLS以及替代
  6. 'datetime.datetime' has no attribute 'datetime'问题
  7. 级数形式套级数的敛散性判断
  8. git提交了不需要的文件夹或者文件怎么办
  9. C语言关键字能用大写字母,C语言关键字及其解释
  10. 第一、三、四届(2010、2012、2013)山东省ACM
  11. 随机过程(4)——马尔可夫链
  12. 智能蓝牙技术原理及设计方案集锦
  13. ADB介绍—— 配置ADB环境变量
  14. android手机进入动画,安卓用户必读,如何进入手机开发者模式,以及你必用的功能!...
  15. Java 相关的技术摘要
  16. dedecms织梦后台模板layui框架-20171126更新
  17. 抓包工具fiddler
  18. mapDispatchToProps的三种方式mapStateToProps
  19. 人工智能,达尔文进化论
  20. 对我国师生数学学习和教学观念的反思 郇中丹教授

热门文章

  1. 文件服务器异地容灾,服务器异地容灾
  2. 优惠券使用/凑满减优惠/硬币组合问题(结果包括最优组合和最优值)
  3. C# 超市满减打折优惠
  4. 支付宝查询自己UID
  5. 抖音账号如何打造,抖音直播带货怎么做:国仁楠哥
  6. luogu P1919 【模板】A*B Problem升级版(FFT快速傅里叶)
  7. linux卸载飞行模式驱动,解决:Ubuntu飞行模式 使用硬件开关关闭
  8. 第1137期AI100_机器学习日报(2017-10-29)
  9. python用sympy解二元一次方程等数学运算
  10. SpringBoot项目的Liunx服务器部署(一)