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

一、新建项目:

    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 之Scale滑块标签

    一.参数说明 语法 作用 Scale(window, label="滑块") 滑块标题 Scale(window, label="滑块", from_=0) 滑 ...

  2. 查看linux系统版本相关信息

    1.查看内核版本:cat /proc/version A机器 root@debian:~# cat /proc/version Linux version -- (ty@debian) ( (Debi ...

  3. Ideal打war包和tomcat展示War包

    今天主要是介绍如何把java代码把成war包以及如何在tomcat中放置展示.比较简单.大家可以看看 刚开始ideal 不知道打包,网上搜索了一个教程,看了半天没看会. 主要还是说的不太明白 . 不过 ...

  4. Thingsboard学习之二安装Docker和Docker-Compose

    安装系统更新系统,参考<Thingsboard学习之一CentOS安装系统更新> 尝试更新系统 yum update 增加一个用户并设置密码,并将用户增加到管理员 # 添加用户(可选) s ...

  5. pytorch基础学习(一)

    在炼丹师的路上越走越远,开始入手pytorch框架的学习,越炼越熟吧... 1. 张量的创建和操作 创建为初始化矩阵,并初始化 a = torch.empty(, ) #创建一个5*3的未初始化矩阵 ...

  6. [Java]某日期时间加上若干分钟得到新的日期时间

    使用Java自带类库实现日期时间增减还是比自己人工拆分编写要牢靠,代码也简洁多了. 下面代码实现了在原有日期时间上加上一些分钟得到新的日期时间的功能,稍加改造还可以实现逆向运算. 代码: packag ...

  7. MacOS系统降级

    从MacOS 10.14 降级到 10.12,下载好系统镜像文件.打开,复制到Application. 准备一个至少8G的U盘,,打开磁盘工具,『抹掉』(格式化)成Mac OS扩展(日志式),名称可随 ...

  8. Docs-.NET-C#-指南-语言参考-预处理器指令:#warning(C# 参考)

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#warning(C# 参考) 1.返回顶部 1. #warning(C# 参考) 2015/07/20 #warning 允许 ...

  9. ISO/IEC 9899:2011 条款6.4.9——注释

    6.4.9 注释 1.除了在一个字符常量.一个字符串字面量.或一个注释内,字符 /* 引入一个注释.这么一个注释的内容被检查仅用于标识多字节字符,并且要找到 */ 来终结.[注:从而,/* ... * ...

  10. 一个Flask应用运行过程剖析

    相信很多初学Flask的同学(包括我自己),在阅读官方文档或者Flask的学习资料时,对于它的认识是从以下的一段代码开始的: from flask import Flask app = Flask(_ ...