mpc-discovery-eureka(服务注册中心)

服务注册中心mpc-discovery-eurekaMPC平台的基础服务是基于 Netflix Eureka NetflixJava实现的开源软件)。服务治理(Eureka)包括服务注册、服务发现和服务检测监控等

Eureka 作为服务治理,必然满足下面几点:

- 服务本身不存在单点故障,

- 支持集群,即高可用性

- 服务与服务之间通过服务注册中心找到彼此实例

作为服务端(即服务注册中心),包括
- 管理服务实例
- 提供服务注册或下线
- 提供服务发现
- 提供服务注册表至两类客户端(即服务提供者和消费者)
 
作为客户端(即服务提供者和消费者),包括
- 连接服务注册中心
- 向服务注册中心注册或者下线服务实例
- 向服务注册中心或服务注册缓存列表查询服务

下面一起看下Eureka的工作原理

 

上图简要描述了Eureka的基本架构,由3个角色组成:

扫描二维码关注公众号,回复: 2810498 查看本文章

· Eureka Server:提供服务注册和发现

· Provider Service B :服务提供方,将自身服务注册到Eureka,从而使服务消费方能够找到

· Consumer ServiceA:服务消费方,从Eureka获取注册服务列表,从而能够消费服务。

需要注意的是,上图中的3个角色都是逻辑角色。在实际运行中,这几个角色甚至可以是同一个实例,比如在我们项目中,Eureka Server和Service Provider就是同一个JVM进程。

 

 

上图更进一步的展示了3个角色之间的交互。

Service Provider会向Eureka Server做Register(服务注册)、Renew(服务续约)、Cancel(服务下线)等操作;

Eureka Server之间会做注册服务的同步,从而保证状态一致;

Service Consumer会向Eureka Server获取注册服务列表,并消费服务。

工作原理清楚了下面开始代码之旅吧

首先需要说明一下mpc\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.jb.mpc</groupId>
	<artifactId>mpc</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>pom</packaging>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>
	<modules>
		<module>mpc-discovery-eureka</module>
		<module>mpc-grs-config</module>
		<module>mpc-grs-dao-equipment</module>
		<module>mpc-grs-graph</module>
		<module>mpc-grs-shapeproperty</module>
		<module>mpc-grs-topo</module>
		<module>mpc-grs-zuul</module>
		<module>mpc-grs-entity </module>
	</modules>
	<parent>
		<!-- springboot 依赖 -->
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.4.1.RELEASE</version>
	</parent>
	<dependencyManagement>
		<dependencies>
			<dependency>
			<!-- springcloud依赖 -->
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Camden.SR1</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
</project>

下面介绍mpc-discovery-eureka服务下的相关配置和代码

首先我们还是先来看一下他的pom.xml文件:mpc\mpc-discovery-eureka\pom.xml

<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>
 <!-- Spring Boot 启动父依赖 -->
	<parent>
		<groupId>com.jb.mpc</groupId>
		<artifactId>mpc</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>

	<artifactId>mpc-discovery-eureka</artifactId>
	<packaging>jar</packaging>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
	 <!-- Spring Cloud Netflix Eureka Server 依赖 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>
	</dependencies>

</project>

从此文件我们可以得知,如果我们想要配置一个服务注册中心,我们只需要依赖com.jb.mpcspring-cloud-starter-eureka-server

l com.jb.mpc统一版本控制

l spring-cloud-starter-eureka-server服务注册中心服务

接下来我们在看一个非常重要的配置文件:mpc\mpc-discovery-eureka\src\main\resources\application.yml

server:
  port: 8761 #服务端口
    
eureka: 
  instance:
    hostname: localhost #设置主机名
  client: 
    register-with-eureka: false # 是否向 Eureka 注册服务。该应用为服务注册中心,不需要自注册,设置为 false
    fetch-registry: false # 是否检索服务。该应用为服务注册中心,职责为注册和发现服务,无需检索服务,设置为 false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/


最后我们在看一下这个服务的启动文件:mpc\mpc-discovery-eureka\src\main\java\com\jb\mpc\EurekaApplication.java

package com.jb.mpc;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

/**
 * 运行Eureka服务器
 * @author pangps
 */
@SpringBootApplication // Spring Boot 应用标识
@EnableEurekaServer // Eureka Server 标识并会自动化读取相关配置。
public class EurekaApplication {
	public static void main(String[] args) {
		// 程序启动入口
        // 启动嵌入式的 Tomcat 并初始化 Spring 环境及其各 Spring 组件
		SpringApplication.run(EurekaApplication.class, args);
	}
}

这就是一个服务注册中心所有的配置和相关代码,鼠标右键点击Run As --Spring Boot App启动服务。

 成功标志:


到这里我们整个服务注册中心就完成了,感觉是不是很简单呢!



猜你喜欢

转载自blog.csdn.net/pangpengshuai/article/details/75084411