资讯专栏INFORMATION COLUMN

SpringCloud(第 051 篇)EurekaServer集群高可用注册中心以及简单的安全认证

coordinate35 / 923人阅读

SpringCloud(第 051 篇)EurekaServer集群高可用注册中心以及简单的安全认证

-

一、大致介绍

</>复制代码

  1. 1、前面章节分析了一下 Eureka 的源码,我们是不是在里面注意到了 Peer 节点的复制,为什么要复制节点同步信息呢,其实就是为了同一个集群之间的EurekaServer一致性方案的一个实现;
  2. 2、于是我们在本章节就真正的来通过代码来实现一下EurekaServer之间的高可用注册中心。
  3. 3、至于所谓的安全认证,就是在我们的客户端配置defaultZone属性环节,要带上用户名密码才可以注册到高可用注册中心去;
二、实现步骤 2.1 添加 maven 引用包

</>复制代码

  1. 4.0.0
  2. springms-discovery-eureka-ha
  3. 1.0-SNAPSHOT
  4. jar
  5. com.springms.cloud
  6. springms-spring-cloud
  7. 1.0-SNAPSHOT
  8. org.springframework.cloud
  9. spring-cloud-starter-eureka-server
  10. org.springframework.boot
  11. spring-boot-starter-security
2.2 添加应用默认配置文件(springms-discovery-eureka-hasrcmainresourcesapplication.yml)

</>复制代码

  1. spring:
  2. application:
  3. name: springms-discovery-eureka-ha
  4. profiles:
  5. # 主要激活哪个配置文件,如果有不清楚的话,可以回头看看 Config 配置相关的知识,比如 springms-config-client、springms-config-server
  6. active: peer1
2.3 添加应用peer1节点默认配置文件(springms-discovery-eureka-hasrcmainresourcesapplication-peer1.yml)

</>复制代码

  1. # 配置 eureka 登录密码,输入地址 http://localhost:8761 时候就需要输入这个用户名密码登录进去
  2. security:
  3. basic:
  4. enabled: true
  5. user:
  6. name: admin
  7. password: admin
  8. server:
  9. port: 8401
  10. eureka:
  11. datacenter: SpringCloud # 修改 http://localhost:8761 地址 Eureka 首页上面 System Status 的 Data center 显示信息
  12. environment: Test # 修改 http://localhost:8761 地址 Eureka 首页上面 System Status 的 Environment 显示信息
  13. instance:
  14. hostname: peer1
  15. instance-id: ${spring.application.name}:${server.port}
  16. client:
  17. # register-with-eureka: false
  18. # fetch-registry: false
  19. service-url:
  20. defaultZone: http://admin:admin@peer2:8402/eureka,http://admin:admin@peer3:8403/eureka
2.4 添加应用peer2节点默认配置文件(springms-discovery-eureka-hasrcmainresourcesapplication-peer2.yml)

</>复制代码

  1. # 配置 eureka 登录密码,输入地址 http://localhost:8761 时候就需要输入这个用户名密码登录进去
  2. security:
  3. basic:
  4. enabled: true
  5. user:
  6. name: admin
  7. password: admin
  8. server:
  9. port: 8402
  10. eureka:
  11. datacenter: SpringCloud # 修改 http://localhost:8761 地址 Eureka 首页上面 System Status 的 Data center 显示信息
  12. environment: Test # 修改 http://localhost:8761 地址 Eureka 首页上面 System Status 的 Environment 显示信息
  13. instance:
  14. hostname: peer2
  15. instance-id: ${spring.application.name}:${server.port}
  16. client:
  17. # register-with-eureka: false
  18. # fetch-registry: false
  19. service-url:
  20. defaultZone: http://admin:admin@peer1:8401/eureka,http://admin:admin@peer3:8403/eureka
2.5 添加应用peer3节点默认配置文件(springms-discovery-eureka-hasrcmainresourcesapplication-peer3.yml)

</>复制代码

  1. # 配置 eureka 登录密码,输入地址 http://localhost:8761 时候就需要输入这个用户名密码登录进去
  2. security:
  3. basic:
  4. enabled: true
  5. user:
  6. name: admin
  7. password: admin
  8. server:
  9. port: 8403
  10. eureka:
  11. datacenter: SpringCloud # 修改 http://localhost:8761 地址 Eureka 首页上面 System Status 的 Data center 显示信息
  12. environment: Test # 修改 http://localhost:8761 地址 Eureka 首页上面 System Status 的 Environment 显示信息
  13. instance:
  14. hostname: peer3
  15. instance-id: ${spring.application.name}:${server.port}
  16. client:
  17. # register-with-eureka: false
  18. # fetch-registry: false
  19. service-url:
  20. defaultZone: http://admin:admin@peer1:8401/eureka,http://admin:admin@peer2:8402/eureka
2.6 添加 EurekaServer 微服务启动类(springms-discovery-eureka-hasrcmainjavacomspringmscloudEurekaServerHaApplication.java)

</>复制代码

  1. package com.springms.cloud;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
  5. /**
  6. * 服务发现服务端EurekaServer微服务高可用。
  7. *
  8. * Eureka默认端口是8761
  9. * http://localhost:8761/eureka/apps 可以查看注册到该服务器上的一堆微服务实例的信息。
  10. *
  11. * @author hmilyylimh
  12. *
  13. * @version 0.0.1
  14. *
  15. * @date 2017/10/25
  16. *
  17. */
  18. @SpringBootApplication
  19. @EnableEurekaServer
  20. public class EurekaServerHaApplication {
  21. public static void main(String[] args) {
  22. SpringApplication.run(EurekaServerHaApplication.class, args);
  23. System.out.println("【【【【【【 EurekaHa微服务 】】】】】】已启动.");
  24. }
  25. }
三、测试

</>复制代码

  1. 测试之前,我们得配置一下Run Configuration,如何快速启动运行三个EurekaServer微服务;
  2. 在 Run/Debug Configuration(新建一个Spring Boot) -> Spring Boot -> EurekaServerHaApplication_8401_peer1(给界面顶部 Name 字段属性命名) -> Configuration -> Spring Boot Settings -> Active Profiles: Peer1
  3. 在 Run/Debug Configuration(新建一个Spring Boot) -> Spring Boot -> EurekaServerHaApplication_8402_peer2(给界面顶部 Name 字段属性命名) -> Configuration -> Spring Boot Settings -> Active Profiles: Peer2
  4. 在 Run/Debug Configuration(新建一个Spring Boot) -> Spring Boot -> EurekaServerHaApplication_8403_peer3(给界面顶部 Name 字段属性命名) -> Configuration -> Spring Boot Settings -> Active Profiles: Peer3
  5. /****************************************************************************************
  6. 测试一:EurekaServer集群高可用注册中心以及简单的安全认证(正常测试):
  7. 1、注解:EnableEurekaClient
  8. 2、按照上面依次运行启动 EurekaServerHaApplication_8401_peer1、EurekaServerHaApplication_8402_peer2、EurekaServerHaApplication_8403_peer3 模块服务,启动3个端口;
  9. 3、在浏览器输入地址 http://localhost:8401 并输入用户名密码 admin/admin 进入 8401 端口这台服务正常启动;
  10. 4、在浏览器输入地址 http://localhost:8402 并输入用户名密码 admin/admin 进入 8402 端口这台服务正常启动;
  11. 5、在浏览器输入地址 http://localhost:8403 并输入用户名密码 admin/admin 进入 8403 端口这台服务正常启动;
  12. 6、注意一下,当前已经注册的实例信息里面,都有三台微服务,说明小小的高可用集群已经呈现在大家的眼前了;
  13. ****************************************************************************************/
  14. /****************************************************************************************
  15. 测试二:用户微服务接口测试(采用 springms-provider-user 给 springms-discovery-eureka-ha 模块做测试,测试EurekaClient客户端注册进EurekaServer高可用集群中):
  16. 1、注解:EnableEurekaClient
  17. 2、修改 defaultZone 的接入地址值如下:
  18. ###################################################################################
  19. # 测试二:测试EurekaClient客户端注册进EurekaServer高可用集群中
  20. defaultZone: http://admin:admin@peer1:8401/eureka,,http://admin:admin@peer2:8402/eureka,,http://admin:admin@peer3:8403/eureka
  21. ###################################################################################
  22. 3、启动 springms-discovery-eureka-ha 模块服务,启动3个端口;
  23. 4、启动 springms-provider-user 模块服务,启动1个端口;
  24. 5、在浏览器输入地址http://localhost:7900/simple/1 可以看到信息成功的被打印出来,说明用户微服务正常;
  25. 6、在浏览器输入地址 http://localhost:8401 并输入用户名密码 admin/admin 进入Eureka微服务显示在网页中,说明用户微服务确实注册到了 eureka 服务中;
  26. 7、在浏览器输入地址 http://localhost:8401/eureka/apps/springms-provider-user 可以看到自定义的 信息以及用户微服务的相关信息成功的被展示出来了;
  27. 8、在浏览器输入地址 http://localhost:8402/eureka/apps/springms-provider-user 可以看到自定义的 信息以及用户微服务的相关信息成功的被展示出来了;
  28. 9、在浏览器输入地址 http://localhost:8403/eureka/apps/springms-provider-user 可以看到自定义的 信息以及用户微服务的相关信息成功的被展示出来了;
  29. 注意:这里我们要回到 springms-provider-user 项目代码中稍微修改,也写了一个对应的《测试二》测试步骤,即可实现我们这个高可用的《测试二》样例,;
  30. ****************************************************************************************/
四、下载地址

https://gitee.com/ylimhhmily/SpringCloudTutorial.git

SpringCloudTutorial交流QQ群: 235322432

SpringCloudTutorial交流微信群: 微信沟通群二维码图片链接

欢迎关注,您的肯定是对我最大的支持!!!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67878.html

相关文章

  • SpringCloud 004 )用户服务类(添加服务注册,将用户微服务注册到 EurekaS

    摘要:接收参数对象添加用户微服务启动类用户服务类添加服务注册,将用户微服务注册到中。 SpringCloud(第 004 篇)用户服务类(添加服务注册,将用户微服务注册到 EurekaServer 中) - 一、大致介绍 通过添加注解 EnableEurekaClient,将用户微服务注册到 EurekaServer 中。 二、实现步骤 2.1 添加 maven 引用包 4.0....

    Darkgel 评论0 收藏0
  • SpringCloud 003 )服务发现服务端EurekaServer微服务

    摘要:第篇服务发现服务端微服务一大致介绍众所周知,在现在互联网开发中,访问地址的和端口号是动态的,一个服务停掉再重新启用后和端口就可能发生了改变,所以用硬编码是肯定不行了。再对外提供服务的时候便不再使用挂掉的服务提供者的和端口。 SpringCloud(第 003 篇)服务发现服务端EurekaServer微服务 - 一、大致介绍 1、众所周知,在现在互联网开发中,访问地址的IP和端口号是...

    wuyumin 评论0 收藏0
  • 2021 年最新基于 Spring Cloud 微服务架构分析

    摘要:是一个相对比较新的微服务框架,年才推出的版本虽然时间最短但是相比等框架提供的全套的分布式系统解决方案。提供线程池不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务器雪崩的问题。通过互相注册的方式来进行消息同步和保证高可用。 Spring Cloud 是一个相对比较新的微服务框架,...

    cikenerd 评论0 收藏0
  • 外行人都能看懂SpringCloud,错过了血亏!

    摘要:集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。这样就高兴了,可以专心写自己的,前端就专门交由小周负责了。于是,小周和就变成了协作开发。都是为了项目正常运行以及迭代。 一、前言 只有光头才能变强 认识我的朋友可能都知道我这阵子去实习啦,去的公司说是用SpringCloud(但我觉得使用的力度并不大啊~~)... 所以,这篇主要来讲讲SpringClou...

    沈建明 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<