三、Eureka注册与发现之Eureka Comsumer
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相关推荐
- Chapter 1 快速搭建-服务的注册与发现(Eureka)
Chapter 1 快速搭建-服务的注册与发现(Eureka) 一.Spring Cloud简介 为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代 ...
- Spring Boot(2.1.2.RELEASE) + Spring Cloud (Finchley.RELEASE)搭建服务注册和发现组件Eureka
前言:由于版本原因,部分关于Spring Cloud的书中使用的是Spring Boot 1.x 版本,很多配置或名称在新版本中已经发生了改变.此篇文章记录的是使用较新的Spring Boot 2.x ...
- eureka多了一个莫名其妙的服务_SpringCloud 服务注册与发现组件 Eureka
一.SpringCloud介绍 微服务,为了更好的创建项目组织结构.更高效的项目的迭代效果.更优良的架构设计,就需要使用微服务的架构思想,来对项目进行搭建或者重构. 企业碰到的第一个问题是服务如何进行 ...
- springcloud微服务系列之服务注册与发现组件Eureka
一.Eurake的简介 二.使用Eureka进行服务的注册消费 1.创建一个服务注册中心 2.创建服务的提供者 3.创建服务的消费者 总结 一.Eurake的简介 今天我们来介绍下springclou ...
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
最新Finchley版本请访问: https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/ 或者 http://blog.csd ...
- SpringCloud成长之路 一 注册与发现(Eureka)
一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...
- SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...
- java B2B2C springmvc mybatis电子商务平台源码-服务的注册与发现(Eureka)
1.介绍 对于微服务的治理而言,其核心就是服务的注册和发现.在SpringCloud 中提供了多种服务注册与发现组件:Eureka,Consul,Zookeeper.官方推荐使用Eureka. 需要J ...
- 服务的注册与发现(Eureka)
服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现. 微服务中用来做注册中心的组件常有zookeeper.eureka.Consul等,这里主要学习Eureka ...
最新文章
- TensorFlow单层感知机实现
- python整数类型-Python整数类型及其运算
- STM32开发 -- 外部中断详解
- 【Tensorflow】Tensor的比较运算
- pd.stats.ols.MovingOLS以及替代
- 'datetime.datetime' has no attribute 'datetime'问题
- 级数形式套级数的敛散性判断
- git提交了不需要的文件夹或者文件怎么办
- C语言关键字能用大写字母,C语言关键字及其解释
- 第一、三、四届(2010、2012、2013)山东省ACM
- 随机过程(4)——马尔可夫链
- 智能蓝牙技术原理及设计方案集锦
- ADB介绍—— 配置ADB环境变量
- android手机进入动画,安卓用户必读,如何进入手机开发者模式,以及你必用的功能!...
- Java 相关的技术摘要
- dedecms织梦后台模板layui框架-20171126更新
- 抓包工具fiddler
- mapDispatchToProps的三种方式mapStateToProps
- 人工智能,达尔文进化论
- 对我国师生数学学习和教学观念的反思 郇中丹教授
热门文章
- 文件服务器异地容灾,服务器异地容灾
- 优惠券使用/凑满减优惠/硬币组合问题(结果包括最优组合和最优值)
- C# 超市满减打折优惠
- 支付宝查询自己UID
- 抖音账号如何打造,抖音直播带货怎么做:国仁楠哥
- luogu P1919 【模板】A*B Problem升级版(FFT快速傅里叶)
- linux卸载飞行模式驱动,解决:Ubuntu飞行模式 使用硬件开关关闭
- 第1137期AI100_机器学习日报(2017-10-29)
- python用sympy解二元一次方程等数学运算
- SpringBoot项目的Liunx服务器部署(一)