Spring Cloud(2):搭建Eureka
Eureka Server的搭建:
使用IDEA工具
File->New Project->Spring Initializr->next

Next

Next->Next创建即可
修改启动类:
package org.dreamtech.eureka; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication
@EnableEurekaServer
public class EurekaApplication { public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
} }
进行配置:
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
# 声明自己是服务端
register-with-eureka: false
fetch-registry: false
# 注册中心地址
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
启动后访问:http://localhost:8761/进入管控台

由于只有服务端没有客户端,这里显示空
Eureka Client客户端的搭建:

正常的创建一个SpringMVC项目:
Controller:
package org.dreamtech.product.controller; import org.dreamtech.product.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; @RestController
@RequestMapping("/api/product")
public class ProductController { private final ProductService productService; @Autowired
public ProductController(ProductService productService) {
this.productService = productService;
} @RequestMapping("/list")
public Object list(){
return productService.getProductList();
} @RequestMapping("/find")
public Object findById(@RequestParam("id") int id){
return productService.findById(id);
} }
Service:
package org.dreamtech.product.service;
import org.dreamtech.product.domain.Product;
import java.util.List;
public interface ProductService {
List<Product> getProductList();
Product findById(int id);
}
package org.dreamtech.product.service.impl; import org.dreamtech.product.domain.Product;
import org.dreamtech.product.service.ProductService;
import org.springframework.stereotype.Service; import java.util.*; @Service
public class ProductServiceImpl implements ProductService {
// 模拟DAO层操作
private static final Map<Integer, Product> productDao = new HashMap<>(); static {
Product p1 = new Product(1, "iPhone1", 1111, 10);
Product p2 = new Product(2, "iPhone2", 2222, 10);
Product p3 = new Product(3, "iPhone3", 3333, 10);
Product p4 = new Product(4, "iPhone4", 4444, 10);
Product p5 = new Product(5, "iPhone5", 5555, 10);
Product p6 = new Product(6, "iPhone6", 6666, 10);
Product p7 = new Product(6, "iPhone7", 7777, 10);
productDao.put(1, p1);
productDao.put(2, p2);
productDao.put(3, p3);
productDao.put(4, p4);
productDao.put(5, p5);
productDao.put(6, p6);
productDao.put(7, p7);
} @Override
public List<Product> getProductList() {
Collection<Product> temp = productDao.values();
return new ArrayList<>(temp);
} @Override
public Product findById(int id) {
return productDao.get(id);
}
}
商品实体类:
package org.dreamtech.product.domain;
import java.io.Serializable;
public class Product implements Serializable {
//ID
private int id;
//商品名称
private String name;
//商品价格
private int price;
//商品库存
private int store;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getStore() {
return store;
}
public void setStore(int store) {
this.store = store;
}
public Product(int id, String name, int price, int store) {
this.id = id;
this.name = name;
this.price = price;
this.store = store;
}
}
启动项目,访问:http://localhost:8080/api/product/list
响应如下说明成功:
[{
"id": 1,
"name": "iPhone1",
"price": 1111,
"store": 10
}, {
"id": 2,
"name": "iPhone2",
"price": 2222,
"store": 10
}, {
"id": 3,
"name": "iPhone3",
"price": 3333,
"store": 10
}, {
"id": 4,
"name": "iPhone4",
"price": 4444,
"store": 10
}, {
"id": 5,
"name": "iPhone5",
"price": 5555,
"store": 10
}, {
"id": 6,
"name": "iPhone6",
"price": 6666,
"store": 10
}, {
"id": 6,
"name": "iPhone7",
"price": 7777,
"store": 10
}]
引入Eureka:
server:
port: 8771
# 指定注册中心地址
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
# 服务的名称
spring:
application:
name: product-service
IDEA模拟启动多个服务:

访问:http://localhost:8761/

如果显示如上图,说明搭建成功
如果出现这些红字:Eureka的自我保护,由于网络原因出现无法调用的情况不会剔除服务
比如某个人被困在荒岛上,不能说这个人死了,可能过一段时间他会获救,如果关闭了自我保护,阎王就说你死了,谁都救不了你
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.
关闭自我保护:
server:
enable-self-preservation: false
Spring Cloud(2):搭建Eureka的更多相关文章
- Spring Cloud 如何搭建eureka
Eureka Server 的搭建 eureka 是 Spring Cloud 的注册中心,提供服务注册和服务发现的功能. 利用idea 快速创建一个eureka应用File - NewProject ...
- Spring Cloud环境搭建: Eureka Server
项目目录结构, 总共三个文件 ├── pom.xml └── src ├── main │ ├── java │ │ └── com │ │ └── rockbb │ │ ...
- spring cloud config搭建说明例子(二)-添加eureka
添加注册eureka 服务端 ConfigServer pom.xml <dependency> <groupId>org.springframework.cloud</ ...
- Spring Cloud 入门 之 Eureka 篇(一)
原文地址:Spring Cloud 入门 之 Eureka 篇(一) 博客地址:http://www.extlight.com 一.前言 Spring Cloud 是一系列框架的有序集合.它利用 Sp ...
- SpringCloud实战之初级入门(三)— spring cloud config搭建git配置中心
目录 1.环境介绍 2.配置中心 2.1 创建工程 2.2 修改配置文件 2.3 在github中加入配置文件 2.3 修改启动文件 3. 访问配置中心 1.环境介绍 上一篇文章中,我们介绍了如何利用 ...
- spring cloud config搭建说明例子(四)-补充配置文件
服务端 ConfigServer pom.xml <dependency> <groupId>org.springframework.cloud</groupId> ...
- spring cloud config搭建说明例子(三)-添加actuator
添加心跳 服务端 ConfigServer pom.xml添加actuator包 <dependency> <groupId>org.springframework.cloud ...
- Spring Cloud 系列之 Eureka 实现服务注册与发现
如果你对 Spring Cloud 体系还不是很了解,可以先读一下 Spring Cloud 都有哪些模块 Eureka 是 Netflix 开源的服务注册发现组件,服务发现可以说是微服务架构的核心功 ...
- 基于Spring cloud Ribbon和Eureka实现客户端负载均衡
前言 本案例将基于Spring cloud Ribbon和Eureka实现客户端负载均衡,其中Ribbon用于实现客户端负载均衡,Eureka主要是用于服务注册及发现: 传统的服务端负载均衡 常见的服 ...
- spring cloud config与eureka配合使用
前面两篇介绍了Spring Cloud Config服务端和客户端的简单配置,本篇介绍Spring Cloud Config与Eureka配合使用 前言 默认情况下,配置客户端启动时,都是通过配置属性 ...
随机推荐
- List for game to play latter
1.The Elder Scrolls V 2.Border Lands 1,2 3.Mind Killer 4.Dark Soul 2 5.Watch Dog 6.Valkyria Chronicl ...
- [原创]SQL表值函数:返回从当前周开始往回的自定义周数
一如往常一样,一篇简短博文记录开发过程中遇到的一个问题.初衷都是记录自己的一些Idea,也是希望能够帮助一些凑巧遇到此类需求的问题,这个需求的的开端是因为,要统计最近N周的销售数据. 接下来我们来看看 ...
- 面试题: mysql数据库 已看1 简单的sql练习
数据库总结--MySQL常见面试题 2015年03月24日 17:56:06 阅读数:7787 1.根据部门号从高到低,工资从低到高列出员工的信息 select * from employee ord ...
- 树莓派 Learning 002 装机后必要的操作 --- 10 实现本地电脑与远程桌面之间复制粘贴(传输)文件
树莓派 装机后必要的操作 - 实现本地电脑与远程桌面之间复制粘贴(传输)文件 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 PC端系统:w ...
- xgene:肿瘤相关基因 KRAS,,BRAF,,通路PI3K-AKT
KRAS基因 一个是KRAS1,位于chr6 短臂上,是一个“假基因”,它不能被转录成RNA,故没有功能的 另一个是KRAS2,位于chr12 短臂上..是“真基因”,是能够转录.并且翻译成蛋白的,是 ...
- Leetcode:9. Palindrome Number
这题要求不能使用额外的空间,我也就没做,看了下别人的代码,挺有意义的一道题目,出坏了. 解题思路:从右往左颠倒过来,看看这个值和原来的x值是不是一样,最后还要注意像20这种情况,也是的 public ...
- 《精通Spring4.X企业应用开发实战》读后感第七章(AOP概念)
- Dapper.Common基于Dapper的开源LINQ超轻量扩展
Dapper.Common Dapper.Common是基于Dapper的LINQ实现,支持.net core,遵循Linq语法规则.链式调用.配置简单.上手快,支持Mysql,Sqlserver(目 ...
- 洛谷P2486 [SDOI2011]染色
题目描述 输入输出格式 输入格式: 输出格式: 对于每个询问操作,输出一行答案. 输入输出样例 输入样例#1: 6 5 2 2 1 2 1 1 1 2 1 3 2 4 2 5 2 6 Q 3 5 C ...
- Spring学习和应用
Java EE轻量级框架. 核心:反转控制(IOC),依赖注入. 功能:增删改查bean, 功能: 1.容器功能: 代替了EJB容器,负责管理用户基于POJO方式写的业务逻辑组件,具有类似E ...