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. C语言学习笔记--enum和sizeof关键字

    1.enum关键字 C语言中enum关键字用来定义枚举类型 (1)enum 是 C 语言中的一种自定义类型(2)enum 值是可以根据需要自定义的的整型值(3)第一个定义的 enum 值默认为 0 ( ...

  2. day01_虚拟机与主机之间ip配置

       虚拟机1: centos_ node1 虚拟机2:centos_node2 宿主主机虚拟机ip配置: vmnet1 来自为知笔记(Wiz)

  3. java数据库连接模板代码通用收集

    package org.lxh.dbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLE ...

  4. sharepoint SDDL 字符串包含无效的SID或无法转换的SID

    安装过程中出现以下错误 采用独立模式安装Sharepoint Server 2013/Foundation 2013,在进行配置向导的时候会碰到这样的错误 System.ArgumentExcepti ...

  5. 16_点击事件第三种写法_activity实现接口

    第一种写法是有名内部类,第二种写法是匿名内部类,第三种写法是MainActivity实现接口OnClickListener.直接让MainActivity实现了OnClickListener这个接口. ...

  6. 07_ddms透视图介绍

    通过ADB(Android Debug Bridge)安卓调试桥把你的Eclipse(集成开发环境)和你的设备连接在一起.有时候ADB可能会被其他的东西占用.例如WPS会跟你抢ADB(抢端口).如果你 ...

  7. SpringSecurity02 表单登录、SpringSecurity配置类

    1 功能需求 springSecuriy默认的登录窗口是一个弹出窗口,而且会默认对所有的请求都进行拦截:要求更改登录页面(使用表单登录).排除掉一些请求的拦截 2 编写一个springSecurity ...

  8. storm启动supervisor源码分析-supervisor.clj

    supervisor是storm集群重要组成部分,supervisor主要负责管理各个"工作节点".supervisor与zookeeper进行通信,通过zookeeper的&qu ...

  9. BMFont使用图片自定义字体(无需字体文件)

    网上搜BMFont做字体,很多都是从一个字体文件读取,然后选择需要的字,然后保存成图片文字,这个对于一般的文字的确很实用,因为Unity本身不支持中文,所以只好这样了. 但是做过游戏的都知道,策划总是 ...

  10. VSS配置

    http://www.cnblogs.com/FreeDong/articles/2193151.html