SpringCloud之Eureka

1. eureka是什么
Eureka在spring cloud中作为一个服务的注册与发现的关键角色
只是springcloud中的一个组件,就是一个单独的项目作为注册中心
2.创建eureka注册中心
1.创建项目
	..

2.导入依赖
	<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
3.在启动类上添加
	@EnableEurekaServer		//包含@EnableEurekaClient
	
4.配置文件
server:
	port : 8761

	eureka:
		client:
			register-with-eureka: false		#默认为true,会将自身注册到指定的eureka中
			fetch-register: false		#默认为true,会拉取eureka上的信息
			service-url:
				defualtZone: http://localhost:8761/eureka/		#默认eureka的路径
3.创建eureka客户端并注册到注册中心
1.创建项目
	...

2.导入依赖
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    
3.在启动类上添加
	//@EnableDiscoveryClient      //如果注册中心不是eureka,使用@EnableDiscoveryClient
	@EnableEurekaClient

4.配置文件
	spring: 
		application: 
			name: client		#改个名
	eureka:
		client:
			service-url:
				defualtZone: http://localhost:8761/eureka/		#默认eureka的路径
4.给eureka注册中心添加监听器
//每当注册中心有任何变化时都会监听到
@Component
public class EurekaListener {

	//服务下线
    @EventListener
    public void canceledEvent(EurekaInstanceCanceledEvent event){
        String appName = event.getAppName();
        System.out.println(appName+"已经下线!!!");
    }

	//服务注册到注册中心
    @EventListener
    public void canceledEvent(EurekaInstanceRegisteredEvent event){
        String appName = event.getInstanceInfo().getAppName();
        System.out.println(appName+"刚刚注册到注册中心!!!");
    }

	//服务续约
    @EventListener
    public void canceledEvent(EurekaInstanceRenewedEvent event){
        String appName = event.getAppName();
        System.out.println(appName+"前来续约!!!");
    }

	//注册中心启动
    @EventListener
    public void canceledEvent(EurekaRegistryAvailableEvent event){
        System.out.println("注册中心启动中!!!");
    }

	//注册中心已经启动
    @EventListener
    public void canceledEvent(EurekaServerStartedEvent event){
        System.out.println("注册中心已经启动!!!");
    }

}

在这里插入图片描述

5.关于eureka客户端心跳和自我保护机制
1.eureka的service的保护机制
	如果当服务在指定时间内,没有发送心跳时,默认eureka会认为由于网络延迟导致,并不会立即清除这个服务.
	在开发环境下,服务下线看不到指定效果.
		-> 关闭自我保护,并设置清空不开服务的间隔时间
	eureka:
		server:
			enable-self-preservation: false 	#开发环境下,可以关闭,生产环境一定要开启
			eviction-interval-timer-in-ms: 5000 	#每隔多久清除一个不可用的服务
			
2.eureka的客户端
	在默认情况下,eureka的客户端默认是每30秒发送一次心跳,90秒没发送就认为宕机.
	手动设置发送心跳的间隔和持续时间.
	eureka:
		instance:
			lease-renewal-interval-in-seconds: 5	#服务发送心跳的时间间隔
			lease-expiration-duration-in-seconds: 10	#多久没发送心跳就挂掉
6.给eureka添加安全机制
进入eureka需要做认证机制

1.在eureka端:
	1.导入依赖
		<dependency>
        	<groupId>org.springframework.boot</groupId>
        	<artifactId>spring-boot-starter-security</artifactId>
    	</dependency>
	2.编写配置文件
		spring.security.user.name=admin
		spring.security.password=admin
	3.编写配置类
		@Configuration
		public class WebSecurityConfig extends WebSecurityConfigureAdapter{
			
			public void configure(HttpSecurity http){
				//1.直接关闭csrf机制
				http.csrf().disable();		//会导致csrf完全失效
				
				//2.忽略某个路径.通过csrf进来
				http.csrf.ignoringMatchers("/eureka/**");		//指定路径放行
			}
		}
2.在eureka的客户端
	1.在注册eureka的路径上添加用户名:密码@路径
		eureka:
		client:
			service-url:
				defualtZone: http://admin:admin@localhost:8761/eureka/
7.eureka的高可用

准备两个yml文件
application-8761.yml:

eureka:
  client:
    register-with-eureka: true   #默认为true,会将自身注册到指定的eureka中
    fetch-registry: true   #默认为true,会拉取eureka上的信息
    service-url:
      defaultZone: http://localhost:8762/eureka/    #默认eureka的路径
  server:
    enable-self-preservation: true    #开发环境下,可以关闭,生产环境一定要开启
    eviction-interval-timer-in-ms: 5000   #每隔多久清除一个不可用的服务
server:
  port: 8761
  
spring:
  application:
    name: eureka

application-8762.yml:

eureka:
  client:
    register-with-eureka: true   #默认为true,会将自身注册到指定的eureka中
    fetch-registry: true   #默认为true,会拉取eureka上的信息
    service-url:
      defaultZone: http://localhost:8761/eureka/    #默认eureka的路径
  server:
    enable-self-preservation: true    #开发环境下,可以关闭,生产环境一定要开启
    eviction-interval-timer-in-ms: 5000   #每隔多久清除一个不可用的服务
server:
  port: 8762
  
spring:
  application:
    name: eureka

克隆两个相同的服务,分别指向不同的配置)
在这里插入图片描述启动两个服务
在这里插入图片描述
在这里插入图片描述
出现如上所述说明集群搭建成功,然后再启动客户端
在这里插入图片描述
把8761的服务关闭,客户端会在经过默认时间之后会关闭,因为这时客户端的ip指向的是8761,所以这里客户的service-url要配置为所有eureka集群的路径

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
8.常用配置解析
# 应用名称,将会显示在Eureka界面的应用名称列
spring.application.name=eureka-server

# 应用端口,Eureka服务端默认为:8761
server.port=8761

# 是否允许开启自我保护模式,缺省:true
# 当Eureka服务器在短时间内丢失过多客户端时,自我保护模式可使服务端不再删除失去连接的客户端
eureka.server.enable-self-preservation = false

# Eureka服务器清理无效节点的时间间隔,单位:毫秒,缺省:60000,即60秒
eureka.server.eviction-interval-timer-in-ms = 60000

# 服务名,默认取 spring.application.name 配置值,如果没有则为 unknown
eureka.instance.appname = eureka-client

# 实例ID
eureka.instance.instance-id = eureka-client-instance1

# 应用实例主机名
eureka.instance.hostname = localhost

# 客户端在注册时使用自己的IP而不是主机名,缺省:false
eureka.instance.prefer-ip-address = false

# 应用实例IP
eureka.instance.ip-address = 127.0.0.1

# 服务失效时间,失效的服务将被剔除。单位:秒,默认:90
eureka.instance.lease-expiration-duration-in-seconds = 90

# 服务续约(心跳)频率,单位:秒,缺省30
eureka.instance.lease-renewal-interval-in-seconds = 30

# 是否向注册中心注册自己,缺省:true
# 一般情况下,Eureka服务端是不需要再注册自己的
eureka.client.register-with-eureka = true

# 是否从Eureka获取注册信息,缺省:true
# 一般情况下,Eureka服务端是不需要的
eureka.client.fetch-registry = true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本微信小程序医院挂号预约系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此微信小程序医院挂号预约系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。微信小程序医院挂号预约系统有管理员,用户两个角色。管理员功能有个人中心,用户管理,医生信息管理,医院信息管理,科室信息管理,预约信息管理,预约取消管理,留言板,系统管理。微信小程序用户可以注册登录,查看医院信息,查看医生信息,查看公告资讯,在科室信息里面进行预约,也可以取消预约。微信小程序医院挂号预约系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值