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. Mac系统的launchd、守护进程daemon(2013笔记整理)

    1. launchd Mac系统下通用的进程管理器,是Mac系统下非常重要的一个进程,一般来说该进程不允许直接以命令行的形式调用.只能通过其控制管理界面,launchctl来进行控制. launchd ...

  2. [hdu2159]FATE二维多重背包(背包九讲练习)

    解题关键:二维约束条件,只需加一维状态即可. 转移方程:$f[j][k] = \max (f[j][k],f[j - w[i]][k - 1] + v[i])$ #include<bits/st ...

  3. [51nod1384]全排列

    法一:next_permutation函数,两个参数分别为起始指针和末尾指针. #include<bits/stdc++.h> using namespace std; typedef l ...

  4. 第四篇 express 安装esasticsearch

    1.首先,我们创建一个Express应用程序!我将使用express.js生成器. npm install -g express-generator express ./autocompleter c ...

  5. 基本算法思想之穷举法(C++语言描述)

    穷举算法(Exhaustive Attack method)是最简单的一种算法,其依赖于计算机的强大计算能力来穷尽每一种可能性,从而达到求解问题的目的.穷举算法效率不高,但是适应于一些没有规律可循的场 ...

  6. 杭电acm 1022题

    Problem Description As the new term comes, the Ignatius Train Station is very busy nowadays. A lot o ...

  7. rlwrap:让控制台程序使用input.rc里的设置

    习惯了vi模式,在bash里配置input.rc可以使平时命令行操作都使用vi习惯,翻页和跳动光标都很方便 但是当运行一些交互式程序时,比如redis-cli,lua等,它们却不按input.rc的配 ...

  8. ProtoBuf练习(四)

    其中一个类型 protobuf语言的oneof字段类型相当于C++语言的联合数据类型 工程目录结构 $ ls proto/ sample_oneof.proto proto文件 $ cat proto ...

  9. PAT 1043【BST与二叉树】

    考察: 1.二叉树的建树 2.前序遍历,后序遍历 3.BST的特性 这题的思路: 告诉你数组是先序遍历的,so 根已经知道了(数组首位元素),那么按照BST,建一下树(要两次,另外一次是镜像的): 跑 ...

  10. Java web错误汇总

    环境: 电脑:win 10 IDE: Eclipse Java EE IDE for Web Developers. Version: Luna Service Release 2 (4.4.2) B ...