SpringCloud(二)Eureka集群与Feign
两个Eureka
上一篇是两个服务像一个Eureka注册,如果Eureka宕掉了就不好了,现在来搭建两个Eureka,两个服务分别像其注册。两个Eureka都用本机来模拟,用两个端口号来表示。
首先修改C:\Windows\System32\drivers\etc的hosts文件,在最下面添加127.0.0.1 node1 node2
,然后将dis-manager工程的application.properties一个变成两个
server.port=8888
eureka.instance.hostname=node1
# 不向注册中心注册自己
eureka.client.register-with-eureka=false
# 不需要检索服务
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://node2:${server.port}/eureka/
server.port=9999
eureka.instance.hostname=node2
# 不向注册中心注册自己
eureka.client.register-with-eureka=false
# 不需要检索服务
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://node1:${server.port}/eureka/
接下来使用mvn clean package
命令将整个工程打成jar包,并且切换到jar包的位置使用java -jar dis-manager-0.0.1-SNAPSHOT.jar --spring.profiles.active=node1
分别启动两个Eureka,就可以了。
哦对了,服务注册的时候需要将两个Eureka都注册一下。
eureka.client.serviceUrl.defaultZone=http://node1:8888/eureka/,http://node2:9999/eureka/
使用Feign声明式调用
因为Feign相较ribbon更加简单优雅,我们公司都是用的Feign,由于我们是在order服务中调用user服务,所以在order服务中设置。具体只需要三个步骤:
1.引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
将order服务的主类添加注解@EnableFeignClients
2.在order服务中创建被调用user服务的接口
@FeignClient(name = "dis-user")
public interface UserFeign {
@RequestMapping("/user/getUser")
User getUser();
}
3.在order服务的controller里调用
@Autowired
private UserFeign userFeign;
Logger logger = LoggerFactory.getLogger(OrderController.class);
@RequestMapping("/getOrderByFeign")
public Order getOrderByFeign() {
User user = userFeign.getUser();
Order order = new Order(1001, "酸牛奶", user);
logger.info(order.toString());
return order;
}
代码比较简单,都放在Github上了https://github.com/Bihanghang/Dis-SpringBoot,有问题希望一起探讨。
SpringCloud(二)Eureka集群与Feign的更多相关文章
- 十六、springcloud(二)Eureka集群
1.创建子工程spring-cloud-peer(jar) 2.创建application-peer1.properties,application-peer2.properties applicat ...
- SpringCloud之Eureka集群
前面我们介绍了SpringCloud注册中心Eureka,但是存在一个单点故障的问题,一个注册中心远远不能满足实际的生产环境,现在我们介绍一下如何搭建一个Eureka集群. 一:集群环境搭建 我们先建 ...
- 三(2)、springcloud之Eureka集群配置
1)原理说明** 服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会 ...
- F版本SpringCloud 5—Eureka集群和自我保护机制
源码地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials 前言 上篇文章中,通过代码搭建了Eureka注册中心和客户端,是Eureka的简单应用 ...
- SpringCloud搭建Eureka集群
第一部分:搭建Eureka Server集群 Step1:新建工程,引入依赖 依赖文件pom.xml如下 <?xml version="1.0" encoding=" ...
- springcloud中eureka集群unavailable-replicas
unavailable-replicas 配置了集群,但是在注册中心显示另外的几个集群地址是不可用的: 1 首先需要再host中添加服务名映射,如果应映射了再看是否在yml中配置了prefer-ip- ...
- springcloud(三) eureka集群
上一节讲到user微服务和order微服务和eureka注册中心一起使用,那么问题来了如何注册中心挂了怎么办?ok, 注册中心集群就来了. 原理图: 注意euraka 之间是通过复制(replicat ...
- Kubernetes部署SpringCloud(一) Eureka 集群,解决unavailable-replicas,available-replicas条件
环境 k8s master: 1个 k8s node: 3个 三个eureka 指定node启动,并且使用network=host 完整pom.xml <?xml version="1 ...
- springcloud费话之Eureka集群
目录: springcloud费话之Eureka基础 springcloud费话之Eureka集群 springcloud费话之Eureka服务访问(restTemplate) springcloud ...
随机推荐
- java web 测试
1.功能测试 bugfree mantis 2.性能测试:loadrunner 3.安全测试: burpsuite
- Jenkins内置环境变量的使用
一.查看Jenkins有哪些环境变量 1.新建任意一个job 2.增加构建步骤:Execute shell 或 Execute Windows batch command 3.点击输入框下方的“可用环 ...
- 改善Python 程序的 91 个建议
建议1.理解Pythonic概念—-详见Python中的<Python之禅> 建议2.编写Pythonic代码 (1)避免不规范代码,比如只用大小写区分变量.使用容易混淆的变量名.害怕过长 ...
- 【微服务】.netCore eShopOnContainers 部署实践《一》
官方说明文档 -------------------------------------------------------------- # eShopOnContainers - Microser ...
- Dispatch Queue 之 dispatch_sync

- LeetCode:105_Construct Binary Tree from Preorder and Inorder Traversal | 根据前序和中序遍历构建二叉树 | Medium
要求:通过二叉树的前序和中序遍历序列构建一颗二叉树 代码如下: struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode ...
- Spring Boot 单元测试详解+实战教程
Spring Boot 的测试类库 Spring Boot 提供了许多实用工具和注解来帮助测试应用程序,主要包括以下两个模块. spring-boot-test:支持测试的核心内容. spring-b ...
- 手把手教您定制化Centos6.x安装界面
1.获取安装界面代码 挂载image/install.img:mount image/install.img /mnt/5 -o loop 复制挂载后的代码至self_intall ...
- underscore.js源码解析【对象】
// Object Functions // ---------------- // Keys in IE < 9 that won't be iterated by `for key in . ...
- 串口USB单一映射及重命名
本文针对在开发过程中有时会出现用到多个串口设备,usb端口号会发生变化,如设备的灯指示信号和其他控制器都是ttyUSB* .其序号与控制接入的顺序有关,对于写好的launch每次修改串口连接名很麻烦. ...