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

一、新建项目:

    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. Unrecognized syntax identifier "proto3". This parser only recognizes "proto2". ”问题解决方法

    编译cartographer时遇到Unrecognized syntax identifier “proto3”. This parser only recognizes “proto2”.排查:使用 ...

  2. Qtcreator远程调试出现“The selected build of GDB does not support Python scripting.It cannot be used .."

      版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/aristolto/article/details/77370853 之前使用的是Qt4.7后来换 ...

  3. php实现excel单元格合并,字体加粗居中等操作

    使用的是phpexcel,基本用的原生语法,所见即所得,直接复制下面代码,即可: // 引用phpexcel类 $this->load->library('PHPExcel'); // 创 ...

  4. 服务器更新了php版本报错(PHP7.3)

      Warning: "continue" targeting switch is equivalent to "break". Error:"con ...

  5. 解决kali无法连接网络问题

    键入 ifconfig -a 查看网卡 ,是否存在 键入 leafpad /etc/network/interfaces 查看其中是否有如下语句,没有添加上即可:auto eth0iface eth0 ...

  6. dapper 异步修改方法

    public async Task<int> UpdateStatusByWarehouseId(bool isValid, int warehouseId) { using (var c ...

  7. java实现https免证书认证

    java实现https免证书认证   解决方法: 1.下载两个包,httpclient-4.2.jar和httpcore-4.2.jar,复制以下代码就可使用. 2.调用类代码: String htt ...

  8. Centos7彻底删除PHP

    查看php版本命令: #php -v 下面的命令是删除不干净的 #yum remove php 因为使用这个命令以后再用 #php -v 还是会看到有版本信息的..... 必须强制删除,使用下面命令查 ...

  9. Python 练习题总结(待续)

    1.编写一个函数,接受一个参数n,n为正整数,左右两种打印方 式.要求数字必须对齐 正三角 倒三角 实现思路: 思路1.一行一行打印,前面追加空格,每一个空格的宽度等于数字字符串的宽度 #正三角打印d ...

  10. FCKEDITOR在.NET中的使用

    FCKEDITOR在.NET中的使用 FCKeditor介绍 FCKeditor是一个功能强大支持所见即所得功能的文本编辑器,可以为用户提供微软office软件一样的在线文档编辑服务.它不需要安装任何 ...