SpringCloud XIII 가상 머신 구축 서비스 소비자 클러스터.

VM은 서비스 소비자 클러스터를 구축 할 수 있습니다.

그릴 ① /usr/java/jdk1.8.0_11/bin/java : bash는 리눅스에서 jdk1.8 설치, SpringCloud XI 가상 머신 빌드 유레카 클러스터를 비나을 실행할 수 없습니다 . 가상 머신 설치 jdk1.8를 설정합니다.

그릴 ② 전기 공급 업체 예순한, Nginx의 설치 및 시작을 . Nginx에의 consumer01,02,03는 기계 노드에 장착되어 있습니다. 나중에 발견, nginx를 설치하지 마십시오.

그리 ③ 육십 전력 공급, Nginx의 부하 분산 가용성 + Nginx에 Nginx의 클러스터를 달성 keepalived, 2 개 개의 주요 유통 장비 대리점 (하나 개 이상의 백업 유통 될 수있다) . Keepalived consumer01,02,03은 기계 노드에 장착되어 있습니다. 리눅스는 터치 파일을 생성 MKDIR을 가진 폴더를 만듭니다.

④consumer 하위 프로젝트의 POM 파일은 다음을 추가해야합니다 :

<!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-core -->
		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-core</artifactId>
			<version>1.11.125</version>
		</dependency>

		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-autoscaling</artifactId>
			<version>1.11.125</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-bom -->
		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-bom</artifactId>
			<version>1.11.125</version>
			<type>pom</type>
		</dependency>

		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-ec2</artifactId>
			<version>1.11.125</version>
		</dependency>
		<!-- <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-pom</artifactId> 
			<version>1.11.125</version> </dependency> -->
		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-sts</artifactId>
			<version>1.11.125</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.jdom/jdom2 -->
		<dependency>
			<groupId>org.jdom</groupId>
			<artifactId>jdom2</artifactId>
			<version>2.0.6</version>
		</dependency>









		<dependency>
			<groupId>org.apache.maven.shared</groupId>
			<artifactId>maven-dependency-tree</artifactId>
			<version>3.0.1</version>
		</dependency>
		<dependency>
			<groupId>org.vafer</groupId>
			<artifactId>jdependency</artifactId>
			<version>2.1.1</version>
		</dependency>
		<dependency>
			<groupId>org.ow2.asm</groupId>
			<artifactId>asm</artifactId>
			<version>7.0-beta</version>
		</dependency>
		<dependency>
			<groupId>org.ow2.asm</groupId>
			<artifactId>asm-analysis</artifactId>
			<version>7.0-beta</version>
		</dependency>
		<dependency>
			<groupId>org.ow2.asm</groupId>
			<artifactId>asm-tree</artifactId>
			<version>7.0-beta</version>
		</dependency>
		<dependency>
			<groupId>org.ow2.asm</groupId>
			<artifactId>asm-commons</artifactId>
			<version>7.0-beta</version>
		</dependency>
		<dependency>
			<groupId>org.ow2.asm</groupId>
			<artifactId>asm-util</artifactId>
			<version>7.0-beta</version>
		</dependency>







		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-loader-tools</artifactId>
			<version>2.2.4.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>4.3.13.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.apache.maven.shared</groupId>
			<artifactId>maven-shared-utils</artifactId>
			<version>3.2.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.9</version>
		</dependency>
		<dependency>
			<groupId>org.apache.maven</groupId>
			<artifactId>maven-core</artifactId>
			<version>3.3.9</version>
		</dependency>
		<dependency>
			<groupId>org.apache.maven</groupId>
			<artifactId>maven-repository-metadata</artifactId>
			<version>3.3.9</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.aether</groupId>
			<artifactId>aether-util</artifactId>
			<version>1.0.2.v20150114</version>
		</dependency>
		<dependency>
			<groupId>com.google.inject</groupId>
			<artifactId>guice</artifactId>
			<version>4.0</version>
		</dependency>
		<dependency>
			<groupId>org.codehaus.plexus</groupId>
			<artifactId>plexus-archiver</artifactId>
			<version>3.7.0</version>
		</dependency>
		<dependency>
			<groupId>org.ow2.asm</groupId>
			<artifactId>asm-commons</artifactId>
			<version>7.0</version>
		</dependency>
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>19.0</version>
		</dependency>


	</dependencies>
	<!-- <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> 
		<version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> 
		</configuration> </plugin> <plugin> <artifactId> maven-assembly-plugin </artifactId> 
		<configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> 
		</descriptorRefs> <archive> <manifest> <mainClass>com.lss.springcloud.EurekaServer7001_App</mainClass> 
		</manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> 
		<phase>package</phase> <goals> <goal>single</goal> </goals> </execution> 
		</executions> </plugin> </plugins> </build> -->

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

그런 다음 깨끗한 메이븐, 설치합니다.

nginx를 설치하지 마십시오 ⑤. 직접 Keepalived.conf 구성 파일. 첫 번째 노드 구성 서비스 소비자.

 

CD의 / etc / keepalived /
VI keepalived.conf 
keepalived.cnf 내용은 다음과 같습니다

global_defs {
   router_id  MySQL-HA
} 
 
vrrp_script check_run {
script "/etc/keepalived/microservicejar.sh"
interval   2
}
 
vrrp_sync_group VG1 {
group {
VI_1
}
}
 
vrrp_instance VI_1 {
    state  BACKUP
    interface eth1 
    virtual_router_id 51
   # nopreempt
    priority 100 
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1234
    }
    track_script {
    check_run
    }
 
 
    unicast_src_ip 192.168.10.115
    unicast_peer {
        192.168.10.116
        192.168.10.117
    }
 
 
 
    virtual_ipaddress {
       192.168.100.188
    }
}

CD의 / etc / keepalived

터치 microservicejar.sh

우리는 /etc/keepalived/microservicejar.sh

microservicejar.sh 내용은 다음과 같습니다 :

#!/bin/sh
ps -fe | grep microservicecloud.jar | grep -v grep
if [ $? -ne 0 ]
then
service keepalived stop
fi

그렇지 발견 바인드 된 경우 가상 IP, 당신은 다음 단계를 수행 잊어 버린 수 있습니다

 chmod를 + X /etc/keepalived/microservicejar.sh

스크립트에 권한을 부여합니다.

 

 

 

IP

당신은 바인딩 할 볼 수 있습니다.

 

소비자 역할을하는 두 번째 노드를 구성 ⑥.

vim /etc/keepalived/keepalived.conf 

keepalived.conf 的内容是:

global_defs {
   router_id  MySQL-HA
} 
 
vrrp_script check_run {
script "/etc/keepalived/microservicejar.sh"
interval   2
}

 
vrrp_sync_group VG1 {
group {
VI_1
}
}
 
vrrp_instance VI_1 {
    state  BACKUP
    interface eth1 
    virtual_router_id 51
   # nopreempt
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1234
    }
    track_script {
    check_run
    }

 
 
    unicast_src_ip 192.168.10.116
    unicast_peer {
        192.168.10.115
        192.168.10.117
    }
 
 
 
    virtual_ipaddress {
       192.168.100.188
    }
}

vim /etc/keepalived/microservicejar.sh 
microservicejar.sh 的内容是:

#!/bin/sh
ps -fe | grep microservicecloud.jar | grep -v grep
if [ $? -ne 0 ]
then
service keepalived stop
fi

 

如果发现不能绑定虚拟IP,则可能是忘记执行以下步骤:

 chmod +x /etc/keepalived/microservicejar.sh

给脚本赋予权限。

⑦配置第三台服务消费者节点。

vim /etc/keepalived/keepalived.conf 

keepalived.conf 的内容是:

global_defs {
   router_id  MySQL-HA
} 
 
vrrp_script check_run {
script "/etc/keepalived/microservicejar.sh"
interval   2
}

 
vrrp_sync_group VG1 {
group {
VI_1
}
}
 
vrrp_instance VI_1 {
    state  BACKUP
    interface eth2 
    virtual_router_id 51
   # nopreempt
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1234
    }
    track_script {
    check_run
    }

 
 
    unicast_src_ip 192.168.10.117
    unicast_peer {
        192.168.10.115
        192.168.10.116
    } 
 
 
    virtual_ipaddress {
       192.168.100.188
    }
}

 vi /etc/keepalived/microservicejar.sh 
 

microservicejar.sh 的内容是:

#!/bin/sh
ps -fe | grep microservicecloud.jar | grep -v grep
if [ $? -ne 0 ]
then
service keepalived stop
fi

 

如果发现不能绑定虚拟IP,则可能是忘记执行以下步骤:

 chmod +x /etc/keepalived/microservicejar.sh

给脚本赋予权限。

 

至此可以达到ribbon的负载均衡高可用。

发布了155 篇原创文章 · 获赞 1 · 访问量 1万+

추천

출처blog.csdn.net/lbh19630726/article/details/104101361