spring-cloud与netflixEureka整合(注册中心)
2019-02-17 01:49:51来源:博客园 阅读 ()
基础依赖
compile('org.springframework.boot:spring-boot-starter-actuator') compile('org.springframework.boot:spring-boot-starter-web') compile('org.springframework.cloud:spring-cloud-starter')
服务端:
依赖
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-server')
application.yml 配置
spring: application: name: dev eureka: client: service-url: defaultZone: http://本机ip地址:8761/eureka/ #注册中心地址 register-with-eureka: false #表明该实例是否应该与尤里卡服务器登记其信息被别人发现。在某些情况下,您不希望您的实例被发现而你想发现其他实例。默认为true fetch-registry: false #表明这个客户是否应该从尤里卡服务器获取尤里卡注册表信息。默认为true server: port: 8761
启动类添加 @EnableEurekaServer
客户端:
主要依赖
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
application.yml 配置
eureka: client: service-url: defaultZone: http://eureka服务地址:8761/eureka/
启动类添加 @EnableDiscoveryClient (注册中心通用客户端注解)或 @EnableEurekaClient (只有eureka客户端可用)
eureka(集群)
服务端
主要依赖
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-server') compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
application.yml 配置
server: port: 8761 eureka: client: register-with-eureka: false fetch-registry: false server: enable-self-preservation: false #使用自我保护,默认true peer-node-read-timeout-ms: 5000 #节点读取超时时间,默认200毫秒 --- spring: application: name: eureka1 profiles: eureka1 eureka: client: service-url: defaultZone: http://eureka2:8761/eureka/,http://eureka3:8761/eureka/ instance: hostname: eureka1 --- spring: application: name: eureka2 profiles: eureka2 eureka: client: service-url: defaultZone: http://eureka1:8761/eureka/,http://eureka3:8761/eureka/ instance: hostname: eureka2 --- spring: application: name: eureka3 profiles: eureka3 eureka: client: service-url: defaultZone: http://eureka1:8761/eureka/,http://eureka2:8761/eureka/ instance: hostname: eureka3
eureka.client.service-url.defaultZone 与 eureka.instance.hostsname eureka1、eureka2、eureka3 都再本机的 hosts 文件里事先写好,
例如 eureka1 服务器上的hosts文件
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 eureka1
xxx.xxx.x.xx eureka2
xx.xxx.xxx.xx eureka3
启动类同样是添加 @EnableEurekaServer 注意:如果运行 jar 包时需要程序接收命令行参数,一定要再main方法的 SpringApplication.run() 方法 中传入 args 参数
例如:
1 public static void main(String[] args) { 2 SpringApplication.run(QnbbsConsumer.class,args); 3 }
如果不传入的话在命令行输入 java -jar xxx.jar --参数名=参数值 参数将不起作用从而影响你无法选择写好的环境配置
客户端:
依赖跟单机的一样
application.yml 配置
eureka: instance: prefer-ip-address: true #是否显示ip ip-address: 本机ip #填写本机ip地址 client: service-url: defaultZone: http://eureka1:8761/eureka/,http://eureka2:8761/eureka/,http://eureka3:8761/eureka/
启动类注解与单机版一样
客户端注册一台注册中心,同时注册到其他集群中说明成功!
eureka添加 spring-security 权限认证
依赖
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client') compile('org.springframework.boot:spring-boot-starter-security') compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-server')
application.yml 配置
1 server: 2 port: 8761 3 spring: 4 application: 5 name: eureka-server 6 security: 7 user: 8 name: zyn 9 password: zyn123... 10 #用户名与密码若是不配置,系统会自动生成并打印在控制台日志上 11 12 eureka: 13 client: 14 register-with-eureka: false 15 fetch-registry: false 16 server: 17 enable-self-preservation: false 18 peer-node-read-timeout-ms: 5000 19 20 management: 21 endpoints: 22 web: 23 base-path: / 24 exposure: 25 include: '*' 26 endpoint: 27 health: 28 show-details: always 29 restart: 30 enabled: true 31 server: 32 port: 8761 33 --- 34 spring: 35 profiles: eureka-jy 36 eureka: 37 client: 38 service-url: 39 defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-B:8761/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-C:8761/eureka/ 40 instance: 41 hostname: eureka-A 42 --- 43 spring: 44 profiles: eureka-lhn 45 eureka: 46 client: 47 service-url: 48 defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-A:8761/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-C:8761/eureka/ 49 instance: 50 hostname: eureka-B 51 --- 52 spring: 53 profiles: eureka-zsm 54 eureka: 55 client: 56 service-url: 57 defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-A:8761/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-B:8761/eureka/ 58 instance: 59 hostname: eureka-C
创建一个类并继承 WebSecurityConfigurerAdapter 类,并在此类上添加 @EnableWebSecurity和@Configuration 注解,重写 configure 方法
package com.iteng.eureka.security; ? import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; ? @EnableWebSecurity @Configuration public class WebSecurityConfig extends WebSecurityConfigurerAdapter { ? @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); // 关闭csrf http.authorizeRequests().anyRequest().authenticated().and().httpBasic(); // 开启认证 } ? }
启动类添加注解
@EnableEurekaServer
@EnableWebSecurity
下线服务
http://eureka地址:端口/eureka/apps/服务名/服务地址:服务端口号
实例如下:
erueka注册中心ip: 10.100.1.100
端口: 12000
服务名: CPS-RISK-SERVER
实例id: 192.168.10.54:18883
则向下面的url通过http发送delete命令,可将指定的服务实例删除:
http://10.100.1.100:12000/eureka/apps/CPS-RISK-SERVER/192.168.10.54:18883
变更服务状态
http://eureka地址:端口/eureka/apps/服务名/服务地址/status?value=${value}
其中${value}的取值为:OUT_OF_SERVICE , DOWN , UP
原文链接:https://www.cnblogs.com/bqzz/p/10294326.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:基本类型包装类缓存说明
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 【spring cloud hoxton】Ribbon 真的能被 spring-cloud-load 2020-06-08
- MyBatis整合双数据源 2020-06-04
- Spring07_纯注解实战及Spring整合Junit 2020-05-28
- ElasticSearch7.4.2安装、使用以及与SpringBoot的整合 2020-05-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash