前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >选择服务注册于发现-Eureka

选择服务注册于发现-Eureka

作者头像
每天学Java
发布2020-06-02 10:19:44
4480
发布2020-06-02 10:19:44
举报
文章被收录于专栏:每天学Java每天学Java每天学Java

前言

昨天将SSO的前期的准备工作(界面,后台业务逻辑)做完了,而接下来的就是与数据库进行交互,这里我并没有选择直接在SSO服务配置数据库信息与数据库进行交互,而是决定通过 SpringCloud与数据服务(再启动一个项目)进行交互。

这样的做的考虑是想SSO应用仅仅负责登录,保持职责单一,而数据库服务单独启动一个项目去实现,也方便后面其他应用使用,所以第一步就是选择注册中心,关于注册中心有博主知道的有Eureka ,Zookeeper , Consul 以及最近听说由阿里开源的nacos。

几种注册中心对CAP支持情况

Eureka AP(高可用+分区容错)
Zookeeper CP(强一致+分区容错)
Consul CP(强一致+分区容错)其一致性算法采用Raft,该算法比zookeeper使用的Paxos算法更加简单
nacos 听说就比较高级了,因为Nacos Server 可以运行在多种模式下,当前支持三种模式:AP、CP和 MIXED(博主这里还未使用过,所以不过分解读)

这里博主选择使用Eureka,因为其他三种都需要单独安装,无法直接通过 SpringBoot进行使用,其次Eureka并非像网上所言,停止维护,博主在Git上发现Eureka1维护还是很频繁的。

Server搭建过程

新建项目的过程与SpringBoot没什么区别,可以通过勾选完成自动化配置

而如果项目之前已经新建好了,我们也可以引入依赖来达到相同效果

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
                <dependencies>
                    <dependency>
                        <groupId>org.springframework.cloud</groupId>
                        <artifactId>spring-cloud-dependencies</artifactId>
                        <version>Greenwich.SR3</version>
                        <type>pom</type>
                        <scope>import</scope>
                    </dependency>
                </dependencies>
     </dependencyManagement>

修改配置文件

server.port=7999

eureka.instance.hostname=127.0.0.1

#表明自己是一个eureka服务,而非Client
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

#地址
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

启动类增加@EnableEurekaServer注解启动即可。

Client搭建过程

而SSO需要像注册中心注册服务,也得引入Eureka的客户端依赖

 <dependencies>
       <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

修改配置文件

# SSO 80端口
server.port=80
# 默认路径,注意不能少反斜杠,也不能在反斜杠后面多一些空格
spring.thymeleaf.prefix=classpath:/templates/
# 后缀
spring.thymeleaf.suffix=.html
# 缓存
spring.thymeleaf.cache=false
#Eureka
spring.application.name=sso
#显示主机IP
eureka.instance.prefer-ip-address=true
#注册名称
eureka.instance.instance-id=${spring.application.name}(${spring.cloud.client.ip-address}:${server.port})
#心跳检测为10S
eureka.instance.lease-renewal-interval-in-seconds=10
#注册中心地址
eureka.client.service-url.defaultZone=http://127.0.0.1:7999/eureka/

启动类增加@EnableEurekaClient注解,启动

效果
可见SSO服务已经注册上去

当我们停止SSO服务后,我们可以发现界面上该服务显示Down

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 每天学Java 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Server搭建过程
  • Client搭建过程
  • 效果
  • 可见SSO服务已经注册上去
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档