当前位置: 首页 > news >正文

java springboot b2b2c shop 多用户商城系统源码-(七)高可用的分布式配置中心(Spring Cloud Config)...

讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如下:

一、准备工作

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

在其pom.xml文件引入Eureka的起步依赖spring-cloud-starter-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>eureka-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>eureka-server</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.RC1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</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-eureka,代码如下:

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</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-eureka,代码如下:

<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-eureka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>复制代码
配置文件bootstrap.properties,注意是bootstrap。加上服务注册地址为http://localhost:8889/eureka/
复制代码
1
2
3
4
5
6
7
8
9
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

  架构代码如下:

java springboot b2b2c shop 多用户商城系统源码

Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六


转载于:https://juejin.im/post/5c4e74d1f265da614a3ad986

相关文章:

  • 如何利用分层测试概念设计针对性测试用例
  • Firefox 66 将自带自动屏蔽声音功能
  • npm install 报错
  • as3调用外部应用程序 as调用外部exe文件as3调用bat文件 未测试
  • 使用Linux中的 v i m 编辑器
  • Chrome 72 禁止第三方程序代码注入
  • python博客
  • windows2012服务器中安装php7+mysql5.7+apache2.4环境
  • Python 基础起步 (十) 什么叫函数?
  • mysql innodb 索引使用指南
  • linux命令行模式下输入Ctrl+s后界面锁定,假死。
  • CLR的执行模型(1):将源代码编译成托管模块
  • 聊聊flink的TableFactory
  • SpringAOP源码分析总结
  • mongodb分片
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 0基础学习移动端适配
  • 2018一半小结一波
  • ES6语法详解(一)
  • express.js的介绍及使用
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • gf框架之分页模块(五) - 自定义分页
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Mysql优化
  • SpingCloudBus整合RabbitMQ
  • 代理模式
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 前端学习笔记之观察者模式
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 微服务框架lagom
  • 白色的风信子
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 阿里云移动端播放器高级功能介绍
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​VRRP 虚拟路由冗余协议(华为)
  • # 数据结构
  • #14vue3生成表单并跳转到外部地址的方式
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (LeetCode C++)盛最多水的容器
  • (Oracle)SQL优化技巧(一):分页查询
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (四)Linux Shell编程——输入输出重定向
  • ******之网络***——物理***
  • ***监测系统的构建(chkrootkit )
  • **python多态
  • .“空心村”成因分析及解决对策122344
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版