Spring Cloud 中注册中心Eureka客户端配置
注册中心配置客户端(注册一个虚拟的商品服务)
一、新建项目:
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客户端配置的更多相关文章
- spring cloud 服务注册中心eureka高可用集群搭建
spring cloud 服务注册中心eureka高可用集群搭建 一,准备工作 eureka可以类比zookeeper,本文用三台机器搭建集群,也就是说要启动三个eureka注册中心 1 本文三台eu ...
- spring Cloud服务注册中心Eureka集群
spring Cloud服务注册中心Eureka集群配置: 在application.yml文件加以下配置: server: port: 8761 tomcat: uri-encoding: UTF- ...
- 孰能巧用 Spring Cloud 服务注册中心Eureka
Eureka介绍 在Spring Cloud Netflix 整合技术栈中,Eureka既可以作为服务注册中心也可以用于服务发现对整个微服务架构起着最核心的整合作用. Eureka是基于REST(Re ...
- 二、Spring Cloud之注册中心 Eureka
前言 算是正式开始学习 spring cloud 的项目知识了,大概的知道Springcloud 是由众多的微服务组成的,所以我们现在一个一个的来学习吧. 注册中心,在微服务中算是核心了.所有的服务都 ...
- spring Cloud服务注册中心eureka
Eureka是什么? 1.Eureka是SpringCloud Netflix的核心子模块. 2.Eureka包含Eureka Server和Eureka Client. 3.Server提供注册服务 ...
- Spring Cloud服务注册中心交付至kubernetes
前言 服务发现原则: 各个微服务在启动时,会将自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储这些信息 服务消费者可以从服务发现组件中查询到服务提供者的网络地址,并使用该地址来远程调用服务 ...
- JAVA Spring Cloud 注册中心 Eureka 相关配置
转载至 https://www.cnblogs.com/fangfuhai/p/7070325.html Eureka客户端配置 1.RegistryFetchIntervalSecon ...
- Spring Cloud的注册中心和服务者,消费者的构建
Spring Cloud的注册中心和服务者,消费者的构建 注册中心Eureka: 新建项目stu-eureka: StuEurekaApplication: package com.demo.stue ...
- Spring Cloud之注册中心搭建
一.注册中心服务端搭建 1)引入相关Maven坐标 <dependency> <groupId>org.springframework.cloud</groupId> ...
随机推荐
- Mysql远程无法连接
#登陆mysql $ mysql -uroot -p mysql> use mysql; mysql> update user set host = '%' where user = 'r ...
- vue从一个组件跳转到另一个组件页面router-link的试用
需求从helloworld.vue页面跳到good.vue页面 1.helloworld.vue页面代码 <template> <div class="hello" ...
- meshing-三棱锥结构化网格
原视频下载地址: https://yunpan.cn/cqcq2gE6Iy2P8 访问密码 7d5a
- Jenkins中插件下载失败的解决办法
插件下载失败原因:通过国外服务器下载镜像,有较高的失败率,某些插件下载失败或者中断会引起其他有依赖关系的插件也下载失败 解决方案:1. 使用VPN.2. Jenkins镜像地址改为国内镜像地址:系统管 ...
- 教你阅读 Cpython 的源码(二)
第二部分:Python解释器进程 在上节教你阅读 Cpython 的源码(一)中,我们从编写Python到执行代码的过程中看到Python语法和其内存管理机制. 在本节,我们将从代码层面去讨论 ,Py ...
- 【零基础】使用Tensorflow实现神经网络
一.序言 前面已经逐步从单神经元慢慢“爬”到了神经网络并把常见的优化都逐个解析了,再往前走就是一些实际应用问题,所以在开始实际应用之前还得把“框架”翻出来,因为后面要做的工作需要我们将精力集中在业务而 ...
- Java 面向对象(十)
常用类之Arrays java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用. 1.asList 返回 ...
- 构建Hadoop监控共同体
HDFS监控背后那些事儿,构建Hadoop监控共同体 原创: 应用研发部 京东云 2018-12-19 https://mp.weixin.qq.com/s/kulwDgwu-rYf4SvQ1dOwc ...
- el-table的type="selection"的使用
场景:el-table,type="selection"时,重新请求后,设置列表更新前的已勾选项 踩坑:在翻页或者changPageSize之后,table的data会更新,之前勾 ...
- VUE el-input正则验证
①只能输入大于0的整数 check(value) { let reg = /^[-]\d*$/; var _this = this; if (value) { if (new RegExp(reg). ...