不惑之年的硬件牛人转到软件自学之spring cloud:(三)改造一个高可用注册中心并改造一个服务

前言:笔者曾经有18年的硬件研发经验,从(1)51单片机到(2)FPGA到(3)嵌入式ARM(ARM9到CORTEX A9)全都研发设计过,产品从(1)B超的整机研发到(2)智能家居系统到(3)无线电监测机到(4)平板电脑研发到(5)路灯智能控制到(5)工业电脑均有涉及,从(1)普通的电子技术工程师到(2)副总工程师到(3)副总经理到(4)事业部总经理。。。目前已经步入不惑之年的我对于物联网技术的热衷,决定从硬件开始全面转到物联技术框架之一的spring cloud技术,把我的整个学习经历和大家一起分享,也期待在之后有更多机会和大家一起合作,探讨。

      今天是:2018年4月9日    研究主题:改造一个高可用注册中心

      一、我们将以前写好的“cjb1-euerka”改造一个高可用的注册中心,这个改造的目的在于:增强系统的可用性,而不能用单节点的服务注册中心的方式。这个改造内容虽然简单,但也消耗了我半天时间,有部分老是不对,peer2和peer1只能注册起一个,研究了很久发现pom.xml中的内容不对,更改如下:

<?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.example.demo</groupId>
   <artifactId>cjb1-eureka</artifactId>
   <version>1.0.0</version>
   <packaging>jar</packaging>

   <name>cjb1-eureka</name>
   <description>Spring Cloud In Action</description>

   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.3.7.RELEASE</version>
      <relativePath/>
   </parent>

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

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

   <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Brixton.SR5</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>

</project>

二、新建两个配置文件,分别为:application-peer1.properties和application-peer2.properties


内容如下:

1、application-peer1.properties,目的在于:作为peer1服务中心配置,并将serviceUril指向peer2;

spring.application.name=eureka-server
server.port=1111
eureka.instance.hostname=peer1

eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka/

2、application-peer2.properties,目的在于:作为peer2服务中心配置,并将serviceUril指向peer1;

spring.application.name=eureka-server
server.port=1112
eureka.instance.hostname=peer2

eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/

三、需要在C:\Windows\System32\drivers\etc\hosts文件中增加如下内容,才能在本地正确访问到:


四、一切准备就绪,就欠JAR包了,很多书里面都没有讲清楚这步,我来告诉你:

1、点击右边的“Maven Projects”选项里面的“package”


这样可以在项目里面生成项目的jar包,为:cjb1-eureka-1.0.0.jar,并将其复制到C盘下面,如下图:


2、进入WINDOWS的命令框,这个就不用说了吧:

分别运行:java -jar cjb1-eureka-1.0.0.jar”--spring.profiles.active=peer1java -jar cjb1-eureka-1.0.0.jar”--spring.profiles.active=peer2



3、接下来就是见证奇迹的时候了,如下图分别在网址中输入:http://localhost:1111/http://localhost:1112/如下图:



五、以上已经完成高可用的注册中心,接着我们将改造一个服务,使其可以在两个注册中心均可以注册以之前做好的“cjb1”为例

1、将里面的“application.properties”的url地址改成如下:

spring.application.name=cjb1-service
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka/
server.port=8081

2、运行程序,并在两个网址http://localhost:1111/http://localhost:1112/都可以看到服务均能在上面注册:



六、如果需要完整代码的朋友,可以加入作者QQ群:智物联的spring cloud,入群说明:spring cloud代码需求


     




猜你喜欢

转载自blog.csdn.net/weixin_38638578/article/details/79865846