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的更多相关文章

  1. Spring Cloud 如何搭建eureka

    Eureka Server 的搭建 eureka 是 Spring Cloud 的注册中心,提供服务注册和服务发现的功能. 利用idea 快速创建一个eureka应用File - NewProject ...

  2. Spring Cloud环境搭建: Eureka Server

    项目目录结构, 总共三个文件 ├── pom.xml └── src ├── main │   ├── java │   │   └── com │   │   └── rockbb │   │   ...

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

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

  4. Spring Cloud 入门 之 Eureka 篇(一)

    原文地址:Spring Cloud 入门 之 Eureka 篇(一) 博客地址:http://www.extlight.com 一.前言 Spring Cloud 是一系列框架的有序集合.它利用 Sp ...

  5. SpringCloud实战之初级入门(三)— spring cloud config搭建git配置中心

    目录 1.环境介绍 2.配置中心 2.1 创建工程 2.2 修改配置文件 2.3 在github中加入配置文件 2.3 修改启动文件 3. 访问配置中心 1.环境介绍 上一篇文章中,我们介绍了如何利用 ...

  6. spring cloud config搭建说明例子(四)-补充配置文件

    服务端 ConfigServer pom.xml <dependency> <groupId>org.springframework.cloud</groupId> ...

  7. spring cloud config搭建说明例子(三)-添加actuator

    添加心跳 服务端 ConfigServer pom.xml添加actuator包 <dependency> <groupId>org.springframework.cloud ...

  8. Spring Cloud 系列之 Eureka 实现服务注册与发现

    如果你对 Spring Cloud 体系还不是很了解,可以先读一下 Spring Cloud 都有哪些模块 Eureka 是 Netflix 开源的服务注册发现组件,服务发现可以说是微服务架构的核心功 ...

  9. 基于Spring cloud Ribbon和Eureka实现客户端负载均衡

    前言 本案例将基于Spring cloud Ribbon和Eureka实现客户端负载均衡,其中Ribbon用于实现客户端负载均衡,Eureka主要是用于服务注册及发现: 传统的服务端负载均衡 常见的服 ...

  10. spring cloud config与eureka配合使用

    前面两篇介绍了Spring Cloud Config服务端和客户端的简单配置,本篇介绍Spring Cloud Config与Eureka配合使用 前言 默认情况下,配置客户端启动时,都是通过配置属性 ...

随机推荐

  1. Unity实现支持泛型的事件管理以减少使用object作为参数带来的频繁装拆箱

    如果不用C#自身的event关键字而是要自己实现一个可统一管理游戏中各种消息事件通知管理的系统模块EventManger时,通常都是把事件delegate的参数定义为object类型以适应所有的数据类 ...

  2. (转)64位系统安装Delphi7提示Can’t load package:dclite70.bpl 以及 提示地址错误

    第一个问题: 今天在64的Win7上安装Delphi7,在启动时候出现如下提示: Can't load package:dclite70.bpl 告诉大家一个解决办法,就是给Delphi32.exe去 ...

  3. Maven Cargo 远程部署到tomcat7x

    pom.xml中加入cargo的Plugin声明: <plugin> <groupId>org.codehaus.cargo</groupId> <artif ...

  4. PCLVisualizer可视化类(5)

    博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=171 自定义交互 多数情况下,默认的鼠标和键盘交互设置不能满足用户的需求,用 ...

  5. Hadoop Reducer个数设置

    在默认情况下,一个MapReduce Job如果不设置Reducer的个数,那么Reducer的个数为1.具体,可以通过JobConf.setNumReduceTasks(int numOfReduc ...

  6. Struts2学习第三课 Action

    action  VS  Action类 action:代表一个Struts2的请求 Action类:能够处理struts2请求的类. 属性的名字必须遵守与JavaBean属性名相同的命名规则. 属性的 ...

  7. Ubuntu14跑DSO

    按照https://github.com/JakobEngel/dso上的说明,make -j4的时候出现一下错误: /home/zhao/dso/src/FullSystem/CoarseIniti ...

  8. Net Core 下载图片

    直接上代码 string url = https://www.cnblogs.com/images/logo_small.gif; //获取网站当前根目录 string sWebRootFolder ...

  9. One-Hot独热编码

    One-Hot独热编码 Dummy Encoding VS One-Hot Encoding二者都可以对Categorical Variable做处理,定性特征转换为定量特征,转换为定量特征其实就是将 ...

  10. HDP3.1 中 YRAN 和 MR2 的内存大小配置的计算方式

    Container 是 YARN 中基本的处理单元,它是对内存.CPU等计算的封装.总的来说,每个core每块硬盘 分配2个 container,能获得较好的集群利用率. 1. 确定可用内存大小. 对 ...