注册中心配置客户端(注册一个虚拟的商品服务)

一、新建项目:

    1、创建一个SpirngBoot应用,增加服务注册和发现依赖

    2、模拟商品信息,存储在内存中

    3、开发商品列表接口,商品详情接口

    4、配置文件加入注册中心地址

    
 

二、操作方法:

1、file->new->project

    Spring Initializer ->default

        点击next

2、输入

    Group             项目名称一般为因为小写字母和数字结合

    Artifact        具体组件 小写字母组合 product_server

    Type             选择 Maven Project

    其他的默认

        点击next

3、选择web

    勾选web

3、选择Cloud Discovery (服务发现)

    勾选Eureke Discovery

    默认选择 spring boot版本

    点击next

4、点击Finish

5、点击New windows

6、在file下setting-> Maven 设置Maven home directory 设置为maven

                    User setting file 设置为本地Maven中的setting

7、在新建项目的入口侧同时建一个controller(src->main->java->???右键点击)

    new->package(命名为controller),再建一个domain包 和一个service包

    在controller包下新建一个JAVA Class ,右键点击controller new->class 命名为ProductController

    进入JAVA文件

    增加两个引入

        @RestController

        @RequestMapping("/api/v1/product")

    注意:alt+insert 和alt+enter的使用

        
 

    在domain包下新建一个JAVA Class (实体类),右键点击domain new->class 命名为Product(类名首字母为大写,对象为驼峰命名方式)

    在JAVA类中 product类定义后增加序列化implements Serializable

    增加类定义

     public Product(){}

public Product( int id ,String name,int price,int store){

this.id=id;

this.name=name;

this.price=price;

this.store=store;

}

 
 

    输入商品定义

     private int id;

/**

* 商品名称

*/

private String name;

/**

* 价格 单位为 分

*/

private int price;

/**

* 库存

*/

private int store;

    在下方右键,点击genarate.. 选择 getter和setter 后选择所有属性,点击OK

    
 

    在service包下新建一个JAVA Class (实体类),右键点击service new->class 命名为ProductService

    进入类中:

        修改class 为interface

        
 

            实现中增加代码,并增加相应的类(alter+enter)

            List<Product> listProduct();

 
 

            Product findById(int id);

    在service包下新建一个impl的包

        在impl包下新建一个JAVA Class (实体类),右键点击impl new->class 命名为ProductServiceImpl

        进入类中:    加入注解@Service

        在class后面输入 implements ProductService

         alt+insert选择 Override Methods

         增加内存数组

     private static final Map<Integer, Product> daoMap=new HashMap<>();

static{

Product p1=new Product(1,"iphoneX",2,3);

Product p2=new Product(2,"电脑",2,3);

Product p3=new Product(3,"笔记本",2,3);

Product p4=new Product(4,"音响",2,3);

Product p5=new Product(5,"三体(书)",2,3);

Product p6=new Product(6,"衣架",2,3);

Product p7=new Product(7,"书桌",2,3);

Product p8=new Product(8,"锅",2,3);

Product p9=new Product(9,"碗",2,3);

Product p10=new Product(10,"瓢",2,3);

Product p11=new Product(11,"盆",2,3);

Product p12=new Product(12,"椅子",2,3);

daoMap.put(p1.getId(),p1);

daoMap.put(p2.getId(),p2);

daoMap.put(p3.getId(),p3);

daoMap.put(p4.getId(),p4);

daoMap.put(p5.getId(),p5);

daoMap.put(p6.getId(),p6);

daoMap.put(p7.getId(),p7);

daoMap.put(p8.getId(),p8);

daoMap.put(p9.getId(),p9);

daoMap.put(p10.getId(),p10);

daoMap.put(p11.getId(),p11);

daoMap.put(p12.getId(),p12);

 
 

}

    
 

    并在获取商品列表listProduct中增加代码

     Collection<Product> collection=daoMap.values();

List<Product> list=new ArrayList<>(collection)

return list;

    在 findById函数中增加;

        return daoMap.get(id);

        
 

    在controller包的类ProductController中增加两个函数

        
 

@Autowired

ProductService productSevice;

 
 

/**

* 获取所有商品列表

* @return

*/

 
 

@RequestMapping("list")

public Object list(){

return productSevice.listProduct();

}

 
 

/**

* 根据id查看商品详情

* @param id

* @return

*/

@RequestMapping("findByid")

public Object findByid(@RequestParam("id") int id){

return productSevice.findById(id);

}

    运行后验证

        通过这个访问商品列表

        http://localhost:8080/api/v1/product/list

        查看id为2的商品详情

        http://localhost:8080/api/v1/product/findByid?id=2

    通过后准备注册Eureka客户端

8、找到src->main->resources->application.properties修改名为application.yml

                右键 refactor->rename录入application.yml

                点击refactor    

    并在其中增加配置

    #服务端口设置

server:

port: 8765

#注册中心地址

eureka:

client:

service-url:

defaultZone: http://localhost:8761/eureka

#服务名称

spring:

application:

name: product-service

9、启动上次的eurekaserver后启动本次productservice

    http://localhost:8761/打开可以看到服务中增加PRODUCT-SERVER

    在启动一个服务

        
 

        在product-service项目中运行请修改配置(运行项目左侧可以选择editconfigrations)

            将Single instance only的去掉对勾

            并在VM option中增加 -Dserver.port=8766

            再次启动项目,在注册中心中可以看到两个服务注册了

10、删除eureka服务器的报错    

    1)、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.

 

    关闭检查方法:eureka服务端配置文件加入

    server:

    enable-self-preservation: false

注意:自我保护模式禁止关闭,默认是开启状态true

    2)、为什么只加一个注册中心地址,就可以注册,因为有了引用就可以自动注册

    By having spring-cloud-starter-netflix-eureka-client on the classpath, your application automatically registers with the Eureka Server. Configuration is required to locate the Eureka server, as shown in the following example:

11、增加一些配置

    在findById中的返回中能够看到port

        ProductController 中增加

            @Value("${server.port}")

            private String port;

        并在findById函数中增加

        Product product=productSevice.findById(id);

Product result=new Product();

BeanUtils.copyProperties(product,result);

result.setName(result.getName()+"data from port:"+port);

return result;  

Spring Cloud 中注册中心Eureka客户端配置的更多相关文章

  1. spring cloud 服务注册中心eureka高可用集群搭建

    spring cloud 服务注册中心eureka高可用集群搭建 一,准备工作 eureka可以类比zookeeper,本文用三台机器搭建集群,也就是说要启动三个eureka注册中心 1 本文三台eu ...

  2. spring Cloud服务注册中心Eureka集群

    spring Cloud服务注册中心Eureka集群配置: 在application.yml文件加以下配置: server: port: 8761 tomcat: uri-encoding: UTF- ...

  3. 孰能巧用 Spring Cloud 服务注册中心Eureka

    Eureka介绍 在Spring Cloud Netflix 整合技术栈中,Eureka既可以作为服务注册中心也可以用于服务发现对整个微服务架构起着最核心的整合作用. Eureka是基于REST(Re ...

  4. 二、Spring Cloud之注册中心 Eureka

    前言 算是正式开始学习 spring cloud 的项目知识了,大概的知道Springcloud 是由众多的微服务组成的,所以我们现在一个一个的来学习吧. 注册中心,在微服务中算是核心了.所有的服务都 ...

  5. spring Cloud服务注册中心eureka

    Eureka是什么? 1.Eureka是SpringCloud Netflix的核心子模块. 2.Eureka包含Eureka Server和Eureka Client. 3.Server提供注册服务 ...

  6. Spring Cloud服务注册中心交付至kubernetes

    前言 服务发现原则: 各个微服务在启动时,会将自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储这些信息 服务消费者可以从服务发现组件中查询到服务提供者的网络地址,并使用该地址来远程调用服务 ...

  7. JAVA Spring Cloud 注册中心 Eureka 相关配置

    转载至  https://www.cnblogs.com/fangfuhai/p/7070325.html Eureka客户端配置       1.RegistryFetchIntervalSecon ...

  8. Spring Cloud的注册中心和服务者,消费者的构建

    Spring Cloud的注册中心和服务者,消费者的构建 注册中心Eureka: 新建项目stu-eureka: StuEurekaApplication: package com.demo.stue ...

  9. Spring Cloud之注册中心搭建

    一.注册中心服务端搭建 1)引入相关Maven坐标 <dependency> <groupId>org.springframework.cloud</groupId> ...

随机推荐

  1. Tkinter 之ListBox列表标签

    一.参数说明 参数 作用 background (bg) 设置背景颜色 borderwidth (bd) 指定 Listbox 的边框宽度,通常是 2 像素 cursor  指定当鼠标在 Listbo ...

  2. 小程序if和style,image中src的渲染用法,基本写法

    https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/data.html

  3. 2018-2019-2 网络对抗技术 20165222 Exp 8 Web基础

    1.实践内容 (1).Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. 使用service apache2 start启 ...

  4. IDEA 同时打开多个项目

    打开IDEA Settings-->System Settings-->Open project in new wodow

  5. mac解压7z格式文件

    brew直接安装解压工具 $ brew search 7z p7zip $ brew install p7zip ==> Downloading https://downloads.source ...

  6. How to transform the day time images to night time ? A series of paper review and some thinkings about this point.

    How to transform the day time images to night time ?  A series of paper review and some thinkings ab ...

  7. JVM | JVM体系结构认知

    虚拟机 何为虚拟机呢?虚拟机是模拟执行某种指令集体系结构(ISA)的软件,是对操作系统和硬件的一种抽象.其软件模型如下图所示: 计算机系统的这种抽象类似于面向对象编程(OOP)中的针对接口编程泛型(或 ...

  8. 组合数学---P1358 扑克牌

    P1358 扑克牌 题解 组合数学 Π c[剩余未选牌数][ai] ( i = 1,2,...,m ) 注意 组合数也要取模,不然数字太大会炸 组合数的具体实现就是Dp啊 代码 #include< ...

  9. Vue项目中的http请求统一管理

    module.exports = { dev: { // Paths assetsSubDirectory: '/', assetsPublicPath: '/', proxyTable: { /op ...

  10. centos上安装Python并修复yum

    date: 2019-07-01  18:09:53 author: headsen chen notice: 个人原创 1,安装python3.7: yum install zlib-devel b ...