用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

㐅韵味十足的    -  云代码空间

——

SpringCloud分布式微服务云架构 第七篇: 高可用的分布式配置中心(Spring Cloud

2019-12-12|377阅||

摘要:上一篇文章讲述了一个服务如何从配置中心读取文件配置中心如何从远程git读取配置文件当服务实例很多时都从配置中心读取文件这时可以考虑将配置中心做成一个微服务将其集群化从而达到高可用架构图如下 一、准备工作 继续使用

上一篇文章讲述了一个服务如何从配置中心读取文件配置中心如何从远程git读取配置文件当服务实例很多时都从配置中心读取文件了解springcloud架构可以加求求三五三六二四七二五九这时可以考虑将配置中心做成一个微服务将其集群化从而达到高可用架构图如下
å¨è¿ÂéÂÂæÂÂå¥å¾çÂÂæÂÂè¿°

一、准备工作

继续使用上一篇文章的工程创建一个eureka-server工程用作服务注册中心。

在其pom.xml文件引入Eureka的起步依赖spring-cloud-starter-netflix- eureka-server代码如下:

<?xml version="1.0" encoding="UTF-8"?>  
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    <modelVersion>4.0.0</modelVersion>  
  
    <groupId>com.forezp</groupId>  
    <artifactId>config-server</artifactId>  
    <version>0.0.1-SNAPSHOT</version>  
    <packaging>jar</packaging>  
  
    <name>config-server</name>  
    <description>Demo project for Spring Boot</description>  
  
    <parent>  
        <groupId>com.forezp</groupId>  
        <artifactId>sc-f-chapter7</artifactId>  
        <version>0.0.1-SNAPSHOT</version>  
    </parent>  
  
    <dependencies>  
        <dependency>  
            <groupId>org.springframework.cloud</groupId>  
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-web</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework.cloud</groupId>  
            <artifactId>spring-cloud-config-server</artifactId>  
        </dependency>  
  
    </dependencies>  
    <build>  
        <plugins>  
            <plugin>  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-maven-plugin</artifactId>  
            </plugin>  
        </plugins>  
    </build>  
  
  
  
</project>  
 

在配置文件application.yml上指定服务端口为8889加上作为服务注册中心的基本配置代码如下
server:  
  port: 8889  
  
eureka:  
  instance:  
    hostname: localhost  
  client:  
    registerWithEureka: false  
    fetchRegistry: false  
    serviceUrl:  
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/  
入口类
@EnableEurekaServer  
@SpringBootApplication  
public class EurekaServerApplication {  
  
    public static void main(String[] args) {  
        SpringApplication.run(EurekaServerApplication.class, args);  
    }  
}  
 

二、改造config-server

在其pom.xml文件加上EurekaClient的起步依赖spring-cloud-starter-netflix-eureka-client代码如下:

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

 配置文件application.yml指定服务注册地址为http://localhost:8889/eureka/其他配置同上一篇文章完整的配置如下
spring.application.name=config-server  
server.port=8888  
  
spring.cloud.config.server.git.uri=https://github.com/forezp/SpringcloudConfig/  
spring.cloud.config.server.git.searchPaths=respo  
spring.cloud.config.label=master  
spring.cloud.config.server.git.username= your username  
spring.cloud.config.server.git.password= your password  
eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/  

 后需要在程序的启动类Application加上@EnableEureka的注解。

 

三、改造config-client

将其注册微到服务注册中心作为Eureka客户端需要pom文件加上起步依赖spring-cloud-starter-netflix-eureka-client代码如下

<dependencies>  
        <dependency>  
            <groupId>org.springframework.cloud</groupId>  
            <artifactId>spring-cloud-starter-config</artifactId>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-web</artifactId>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework.cloud</groupId>  
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>  
        </dependency>  
    </dependencies>  
 配置文件bootstrap.properties注意是bootstrap。加上服务注册地址为http://localhost:8889/eureka/
spring.application.name=config-client  
spring.cloud.config.label=master  
spring.cloud.config.profile=dev  
#spring.cloud.config.uri= http://localhost:8888/  
  
eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/  
spring.cloud.config.discovery.enabled=true  
spring.cloud.config.discovery.serviceId=config-server  
server.port=8881  

 spring.cloud.config.discovery.enabled 是从配置中心读取文件。

spring.cloud.config.discovery.serviceId 配置中心的servieId即服务名。

这时发现在读取配置文件不再写ip地址而是服务名这时如果配置服务部署多份通过负载均衡从而高可用。

 

依次启动eureka-servr,config-server,config-client

访问网址http://localhost:8889/ 

å¨è¿ÂéÂÂæÂÂå¥å¾çÂÂæÂÂè¿°
访问http://localhost:8881/hi浏览器显示

foo version 3

 

顶 1踩 0收藏
文章评论
共1 条评论 1/1页
发表评论

个人资料

  • 昵称: 㐅韵味十足的
  • 等级: 中级程序员
  • 积分: 455
  • 代码: 0 个
  • 文章: 12 篇
  • 随想: 0 条
  • 访问: 5 次
  • 关注

人气代码

    最新提问

      站长推荐