ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

创建provider服务

2019-09-22 14:35:49  阅读:177  来源: 互联网

标签:服务 spring provider eureka 服务端 创建 server 我们 cloud


如何在高可用的Erueka注册中心中构建Proivider服务,也就是我们现在要去构建Provider服务,在我们刚刚搭建好的

Eureka当中,去完成服务的注册,那么我们首先要去创建一个服务,回到我们的Eclipse当中,我们找一个已有的项目,来

构建自己的服务,比如我们用

springcloud-eureka-provider

修改一下他的pom文件,在这里我们要把artifactId和name修改一下,然后再看pom文件里面,我们这个原本是拷贝server的,

咱们当时加了一个-server,当时咱们要加server的原因是什么,咱们要搭建的是一个服务端,然后从官网上下载的配置文件,

配置信息是没有-server的,其实加不加-server,你当前的jar包是客户端的还是服务端的,它是这样的一个过程,我们刚刚搭建的

是eureka server端,然后我们其他的服务,需要在serevr端注册的,我们称之为客户端,那么在官网上提供的dependencies

标签里面呢,他默认的是客户端,所以我们现在要编写的就是客户端,然后向服务端注册,所以这块我们可以把-sever去掉

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

但是如果你搭建的是服务端的话,要有一个-server,我现在引入的是服务端的jar包,其他的我们来看一下,我们只需要拷贝这两个

就可以了,然后我们spring-boot的WEB启动器,这些我们都留着,其他的也没什么了

<dependencyManagement>
	<dependencies>
		<dependency>    
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-dependencies</artifactId>
			<version>Dalston.SR1</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

这个是cloud要用到的,然后回到我们的代码当中,在这里我们先要标记一下,修改pom文件,第一步应该是创建项目,现在我把-sever去掉

之后,马上注解就报错了,报错的原因是,现在在这个jar包当中,是客户端的jar包,客户端的jar包没有@EnableEurekaServer,我们先把

他去掉,这是我们项目的一个结构,然后第二步,修改pom文件,然后我们把pom文件的内容copy过来,粘到里面,需要改的地方,原来我们

是有一个-server的,pom文件修改以后,第三步就是修改启动类,那么启动类要修改什么呢,首先我们肯定是不能够用

@EnableEurekaServer注解的,我们要换成什么呢,我们这边要是一个客户端了,所以肯定要用一个客户端的注解了,这个注解叫什么呢,

叫@EnableEurekaClient,如果你在谁的启动类上加上他,那么就表示谁是服务的客户端,未来可以向Eureka服务端注册的

@EnableEurekaClient
@SpringBootApplication
public class EurekaProviderApplication {
	public static void main(String[] args) {
		SpringApplication.run(EurekaProviderApplication.class, args);
	}
}

改完启动的注解以后,Provider的服务是不是就创建完了,不是这样的,我们还有地方需要修改,在哪儿呢,就是我们的properties文件,

properties文件当中

spring.application.name=springcloud-eureka-provider

这个名称我们可以改一下,我们叫springcloud-eureka-provider,然后端口不能是8761了,我们换一个,我们换9090吧

server.port=9090

然后这个我们也不要了,这是服务端的相关配置

eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false

那我这里要添加什么呢,你想啊,未来的这个服务,需要到Eureka的服务端去完成我们的服务注册,那他是不是得知道,当前服务端,

在什么位置,是不是得知道访问服务端的地址,所以这里还得去配一个在客户端的配置文件当中,去配置服务端的连接地址,那服务端

的链接地址怎么配呢,其实用到的配置项,就是我们之前配高可用的Eureka集群当中的设置服务注册中心地址这个,配置信息,拿过来,

放到这里,然后这一块我们需要注意,现在我们配的是指向eureka2呢,然后我们是一个集群,现在我的注册地址,如果只给eureka2,

表示未来只会在eureka2节点当中去注册,那么eureka1就不会注册了,那么也就意味着未来,一旦eureka2宕掉了,eureka1里面是没有

服务信息的,那么我们是不是集群当中的所有节点,都应该对这个集群进行注册,那么怎么办呢,怎么解决这个问题呢,很简单,在我们的

地址后面,用逗号分隔,然后在逗号后面,加上其他链接的地址,我就把这个改成1,当然顺序没有关系,表示既向端口8761的服务注册,

也向集群的这个节点进行注册,然后我们再看,我们现在要访问集群的节点,客户端,客户端是在window里面的

eureka.client.serviceUrl.defaultZone=http://10.40.8.152:8761/eureka,http://10.40.8.152:8762/eureka

那么我们要访问的这个地址呢,在linux下,而且这块是通过hostname,通过域名来访问的,那么如果没有域名解析的话,

它是无法访问eureka1和eureka2的,所以我们是不是还得修改windows的host文件,将eureka1和eureka2的域名,映射到他的IP上,

所以这一块我们还得有一个环节,但是我们先把配置文件里的内容copy到文件当中,修改provider的配置文件

eureka.client.serviceUrl.defaultZone=http://10.40.8.152:8761/eureka,http://10.40.8.152:8762/eureka
spring.application.name=springcloud-eureka-provider
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ipAddress}
:${spring.application.instance_id:${server.port}}

然后我们添加的是这个信息,然后第五步,修改windows的host文件,那么windows的host在哪儿呢,应该能知道,打开我们的电脑

我们来看一下,在C盘的windows目录下,有一个etc,是system32,在windows的system32下,有一个drivers,然后进来,drivers里面

有etc,然后etc下有一个hosts文件,我们把它整理到笔记当中,这个是Windows的hosts的文件路径,然后打开我们的host文件,

在这里我们来添加一下,添加什么呢,就是把我们的eureka1,ereuka2的域名,我们应该134下是eureka1,135下是eureka2

192.168.80.134 eureka1

192.168.80.135 eureka2

这样我们就把host文件修改完了,这样我们一个Provider的服务就填写完毕了
<?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.learn.cloud</groupId>
	<artifactId>springcloud-eureka-provider</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>
 
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.12.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>	
	
    <dependencyManagement>
        <dependencies>
            <dependency>    
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
	
	<dependencies>
		<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-security</artifactId>
        </dependency>
	</dependencies>
	
	<!-- 这个插件,可以将应用打包成一个可执行的jar包 -->
	<build>
	    <plugins>
	        <plugin>
	            <groupId>org.springframework.boot</groupId>
	            <artifactId>spring-boot-maven-plugin</artifactId>
	        </plugin>
	    </plugins>
	</build>
 
  
</project>
server.port=9090
eureka.client.serviceUrl.defaultZone=http://10.40.8.152:8761/eureka,http://10.40.8.152:8762/eureka
spring.application.name=springcloud-eureka-provider
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ipAddress}:${spring.application.instance_id:${server.port}}
package com.learn;

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

@EnableEurekaClient
@SpringBootApplication
public class EurekaProviderApplication {
	public static void main(String[] args) {
		SpringApplication.run(EurekaProviderApplication.class, args);
	}
}

 

标签:服务,spring,provider,eureka,服务端,创建,server,我们,cloud
来源: https://blog.csdn.net/Leon_Jinhai_Sun/article/details/101157466

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有