SpringCloud学习之路(三)-Eureka服务配置

在之前的项目中,我们可以看到我们客户端要记录大量的地址信息,而且无法确定某个服务是否可用。所以我们启用Eureka注册中心来统一管理微服务,新建一个模块microcloud-eureka-7001:


里面包含pom.xml和配置文件application.yml以及启动类Eureka_7001_StartSpringCloudApplication.java

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.jmx</groupId>
    <artifactId>microcloud</artifactId>
    <version>0.0.1</version>
  </parent>
  <groupId>com.jmx</groupId>
  <artifactId>microcloud-eureka-7001</artifactId>
  <version>0.0.1</version>
  <name>microcloud-eureka-7001</name>
  <url>http://maven.apache.org</url>
  
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-config</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jetty</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>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>springloaded</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>
	</dependencies>
</project>

application.yml

server:
  port: 7001
  
eureka:
  instance:                   #定义Eureka实例
    hostname: eureka-7001.com #Eureka实例所在的主机名

  #eureka默认情况下,把自己当做客户端来注册自己,所以我们要禁用它
  client:
    register-with-eureka: false #表示是否将自己注册到Eureka Server上,默认为true 
    fetch-registry: false       #表示是否从Eureka Server上获取注册信息,默认为true
    
    
  

Eureka_7001_StartSpringCloudApplication.java

package com.jmx.microcloud;

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

/**程序主类
 * @author JMX
 *
 */
@SpringBootApplication
@EnableEurekaServer
public class Eureka_7001_StartSpringCloudApplication {
    public static void main(String[] args) {
	SpringApplication.run(Eureka_7001_StartSpringCloudApplication.class, args);
    }

}

同样的,我们在C:\Windows\System32\drivers\etc路径下的hosts里最后面添加地址用于模拟Eureka注册中心

127.0.0.1   eureka-7001.com #Eureka注册中心

启动启动类,浏览器输入http://eureka-7001.com:7001/


我们的Eureka注册中心就配置好了.

2.在我们的微服务中注册成Eureka的客户端,修改microcloud-provider-dept-8001的pom.xml,添加Eureka的客户端相关依赖

pom.xml

<!-- Eureka服务-->
		<dependency>
		    <groupId>org.springframework.cloud</groupId>
		    <artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-config</artifactId>
		</dependency>

修改application.yml配置文件添加客户端相关配置

server:
  port: 8001
  
eureka:
  client:         #客户端进行Eureka注册的配置
    service-url:
      defaultZone: http://eureka-7001.com:7001/eureka/
      
mybatis:
  config-location: classpath:mybatis/mybatis.cfg.xml    # mybatis配置文件所在路径
  type-aliases-package: com.jmx.vo                      # 定义所有操作类的别名所在包
  mapper-locations:                                     # 所有的mapper映射文件
  - classpath:mybatis/mapper/**/*.xml
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource    # 配置当前要使用的数据源的操作类型
    driver-class-name: org.gjt.mm.mysql.Driver      # 配置MySQL的驱动程序类
    url: jdbc:mysql://localhost:3307/jmx8001?useUnicode=true&characterEncoding=utf-8       # 数据库连接地址
    username: root                                  # 数据库用户名
    password: 123456                                # 数据库连接密码
    dbcp2:                                          # 进行数据库连接池的配置
      min-idle: 5                                   # 数据库连接池的最小维持连接数    
      initial-size: 5                               # 初始化提供的连接数
      max-total: 5                                  # 最大的连接数
      max-wait-millis: 200                          # 等待连接获取的最大超时时间
  application:                                      
    name: provider-8001                             # Eureka注册中心服务名

修改Dept_8001_StartSpringCloudApplication.java,在启动类添加@EnableEurekaClient注解

package com.jmx.microcloud;

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

/**程序主类
 * @author JMX
 *
 */
@SpringBootApplication
@EnableEurekaClient
public class Dept_8001_StartSpringCloudApplication {
    public static void main(String[] args) {
	SpringApplication.run(Dept_8001_StartSpringCloudApplication.class, args);
    }

}

启动该主类,浏览器输入http://eureka-7001.com:7001/


这样我们就把8001端口这个微服务注册到了Eureka注册中心了.

3.Eureka微服务信息,上面那张图看出我们的微服务是主机名拼凑而成的连接,这样在应用环境是非常不友好的,应该是IP或者域名

结合起来,我们先配置资源文件以及导入资源插件.打开我们的microcloud的pom.xml

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.jmx</groupId>
	  <artifactId>microcloud</artifactId>
	  <version>0.0.1</version>
	  <packaging>pom</packaging>
	  	<name>microcloud</name>
		<url>http://maven.apache.org</url>
	<properties>
		<jdk.version>1.8</jdk.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.jmx</groupId>
				<artifactId>microcloud-api</artifactId>
				<version>0.0.1</version>
			</dependency>
			<dependency>	
				<groupId>com.jmx</groupId>
				<artifactId>microcloud-security</artifactId>
				<version>0.0.1</version>
			</dependency>
			<dependency>	<!-- 进行SpringCloud依赖包的导入处理 -->
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Dalston.SR1</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>	<!-- SpringCloud离不开SpringBoot,所以必须要配置此依赖包 -->
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>1.5.4.RELEASE</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>mysql</groupId>
				<artifactId>mysql-connector-java</artifactId>
				<version>5.0.4</version>
			</dependency>
			<dependency>
				<groupId>com.alibaba</groupId>
				<artifactId>druid</artifactId>
				<version>1.0.31</version>
			</dependency>
			<dependency>
				<groupId>org.mybatis.spring.boot</groupId>
				<artifactId>mybatis-spring-boot-starter</artifactId>
				<version>1.3.0</version>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<build>
		<finalName>microcloud</finalName>
		<!-- 配置资源文件 -->
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>	
			</resource>
		</resources>
		<plugins>
		<!-- 处理资源插件-->
			<plugin>
			    <groupId>org.apache.maven.plugins</groupId>
			    <artifactId>maven-resources-plugin</artifactId>
			    <configuration>
			       <delimiters>
			       	 <delimiter>$</delimiter>
			       </delimiters>
			    </configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>${jdk.version}</source><!-- 源代码使用的开发版本 -->
					<target>${jdk.version}</target><!-- 需要生成的目标class文件的编译版本 -->
					<encode>${project.build.sourceEncoding}</encode>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<modules>
		<module>microcloud-api</module>
		<module>microcloud-provider-dept-8001</module>
    	<module>microcloud-consumer-80</module>
    	<module>microcloud-security</module>
    	<module>microcloud-eureka-7001</module>
  </modules>
</project>

然后修改我们的微服务microcloud-provider-dept-8001的pom.xml导入微服务监控插件

<!--微服务监控插件-->
		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>

然后配置我们微服务的相关信息,修改application.yml

server:
  port: 8001
  
eureka:
  client:         #客户端进行Eureka注册的配置
    service-url:
      defaultZone: http://eureka-7001.com:7001/eureka/
  instance:
    instance-id: dept-8001.com    #在信息列表时显示主机名称
    prefer-ip-address: true       #访问路径变为IP地址
    
info:
  app.name: jmx-microcloud
  company.name: www.52jmx.com
  build.artifactId: $project.artifactId$
  build.version: $project.version$

我们启动Eureka以及微服务,浏览器输入http://eureka-7001.com:7001/


双击我们微服务的地址



输入账号密码


我们在application.yml的配置就显示出来了。

4.Eureka发现服务以及相关保护模式,实际项目中我们的Eureka是作为所有微服务的监控处理的,新服务追加的时候应该可以进行注册,某个微服务下线后可以进行清理。(此项如无特殊需求,一般我们都是默认处理)既然是设置Eureka的设置我们便修改microcloud-eureka-7001的application.yml的内容

application.yml

server:
  port: 7001

eureka:
  instance:                   #定义Eureka实例
    hostname: eureka-7001.com #Eureka实例所在的主机名

  #eureka默认情况下,把自己当做客户端来注册自己,所以我们要禁用它
  client:
    register-with-eureka: false #表示是否将自己注册到Eureka Server上,默认为true 
    fetch-registry: false       #表示是否从Eureka Server上获取注册信息,默认为true
  server:
    eviction-interval-timer-in-ms: 6000 #设置清理的间隔时间(默认6000ms)
    enable-self-preservation: false #关闭保护模式

微服务与Eureka注册中心的心跳时间自定义,心跳检测是检测微服务是否宕机的重要手段,我们修改microcloud-provider-dept-8001的application.yml

server:
  port: 8001
  
eureka:
  client:         #客户端进行Eureka注册的配置
    service-url:
      defaultZone: http://eureka-7001.com:7001/eureka/
  instance:
    lease-expiration-duration-in-seconds: 5 #设置心跳的周期间隔(默认90s)[如果5s没响应默认服务宕机]
    lease-renewal-interval-in-seconds: 2  #设置心跳时间间隔(默认30s)
    instance-id: dept-8001.com    #在信息列表时显示主机名称
    prefer-ip-address: true       #访问路径变为IP地址
    
info:
  app.name: jmx-microcloud
  company.name: www.52jmx.com
  build.artifactId: $project.artifactId$
  build.version: $project.version$
  

微服务端直接通过发现服务获取一些服务信息,我们修改DeptRest.java与启动类Dept_8001_StartSpringCloudApplication.java

DeptRest.java

package com.jmx.microcloud.rest;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.jmx.microcloud.service.IDeptService;
import com.jmx.vo.Dept;

@RestController
public class DeptRest {
    
    @Autowired
    private IDeptService ideptService;
    
    @Autowired
    private DiscoveryClient client;//Eureka的发现服务
    
    @RequestMapping(value="/dept/get/{id}",method=RequestMethod.GET)
    public Dept get(@PathVariable(value="id")int id) {
	return ideptService.get(id);
    }
    
    @RequestMapping(value="/dept/add",method=RequestMethod.POST)
    public boolean add(@RequestBody Dept dept) {
	return ideptService.add(dept);
    }
    
    @RequestMapping(value="/dept/list",method=RequestMethod.GET)
    public List<Dept> list() {
	return ideptService.list();
    }
    
    @RequestMapping("/dept/sessionid")
    public String id(HttpServletRequest request) {
		return request.getSession().getId();
    }
    
    @RequestMapping("/dept/discover")
    public DiscoveryClient discover() {
	      //直接返回发现服务信息
		return this.client;
    }
}

Dept_8001_StartSpringCloudApplication.java

package com.jmx.microcloud;

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

/**程序主类
 * @author JMX
 *
 */
@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
public class Dept_8001_StartSpringCloudApplication {
    public static void main(String[] args) {
	SpringApplication.run(Dept_8001_StartSpringCloudApplication.class, args);
    }

}

OK了发现服务配置好了启动微服务以及Eureka注册中心,浏览器输入:http://dept-8001.com:8001/dept/discover(我们直接跳过Eureka注册中心进行访问)


5.Eureka注册中心的安全配置,修改microcloud-eureka-7001的pom.xml文件追加SpringSecurity的依赖包,在application.yml里面追加认证账户密码.

pom.xml

	    <!-- 追加Security安全依赖包 -->
		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-security</artifactId>
		</dependency>

application.yml

server:
  port: 7001

security:
  basic:
    enabled: true #启用安全处理
  user:
    name: edmin   #用户名
    password: jmxhello   #密码
eureka:
  instance:                   #定义Eureka实例
    hostname: eureka-7001.com #Eureka实例所在的主机名

  #eureka默认情况下,把自己当做客户端来注册自己,所以我们要禁用它
  client:
    register-with-eureka: false #表示是否将自己注册到Eureka Server上,默认为true 
    fetch-registry: false       #表示是否从Eureka Server上获取注册信息,默认为true
  server:
    eviction-interval-timer-in-ms: 6000 #设置清理的间隔时间(默认6000ms)
    enable-self-preservation: false #关闭保护模式

并在微服务microcloud-provider-dept-8001追加Security安全配置,修改application.yml

server:
  port: 8001
  
eureka:
  client:         #客户端进行Eureka注册的配置
    service-url:
      defaultZone: http://edmin:jmxhello@eureka-7001.com:7001/eureka/
  instance:
    lease-expiration-duration-in-seconds: 5 #设置心跳的周期间隔(默认90s)[如果5s没响应默认服务宕机]
    lease-renewal-interval-in-seconds: 2  #设置心跳时间间隔(默认30s)
    instance-id: dept-8001.com    #在信息列表时显示主机名称
    prefer-ip-address: true       #访问路径变为IP地址
    
info:
  app.name: jmx-microcloud
  company.name: www.52jmx.com
  build.artifactId: $project.artifactId$
  build.version: $project.version$
  
  
  
  
  
mybatis:
  config-location: classpath:mybatis/mybatis.cfg.xml    # mybatis配置文件所在路径
  type-aliases-package: com.jmx.vo                      # 定义所有操作类的别名所在包
  mapper-locations:                                     # 所有的mapper映射文件
  - classpath:mybatis/mapper/**/*.xml
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource    # 配置当前要使用的数据源的操作类型
    driver-class-name: org.gjt.mm.mysql.Driver      # 配置MySQL的驱动程序类
    url: jdbc:mysql://localhost:3307/jmx8001?useUnicode=true&characterEncoding=utf-8       # 数据库连接地址
    username: root                                  # 数据库用户名
    password: 123456                                # 数据库连接密码
    dbcp2:                                          # 进行数据库连接池的配置
      min-idle: 5                                   # 数据库连接池的最小维持连接数    
      initial-size: 5                               # 初始化提供的连接数
      max-total: 5                                  # 最大的连接数
      max-wait-millis: 200                          # 等待连接获取的最大超时时间
  application:                                      
    name: provider-8001                             # Eureka注册中心服务名

6.Eureka的集群HA机制,我们既然要做Eureka的集群,那么就会面临多主机的处理,我们修改C:\Windows\System32\drivers\etc路径下的hosts最后添加Eureka集群的模拟地址

127.0.0.1   eureka-7001.com #Eureka注册中心的集群-0
127.0.0.1   eureka-7002.com #Eureka注册中心的集群-1
127.0.0.1   eureka-7003.com #Eureka注册中心的集群-2

项目中从microcloud-eureka-7001复制2份改名为microcloud-eureka-7002与microcloud-eureka-7003,如下图所示


修改microcloud-eureka-7001的application.yml

application.yml

server:
  port: 7001

security:
  basic:
    enabled: true #启用安全处理
  user:
    name: edmin   #用户名
    password: jmxhello   #密码
eureka:
  instance:                   #定义Eureka实例
    hostname: eureka-7001.com #Eureka实例所在的主机名

  #eureka默认情况下,把自己当做客户端来注册自己,所以我们要禁用它
  client:
    service-url:
      defaultZone: http://edmin:jmxhello@eureka-7002.com:7002/eureka,http://edmin:jmxhello@eureka-7003.com:7003/eureka
    register-with-eureka: false #表示是否将自己注册到Eureka Server上,默认为true 
    fetch-registry: false       #表示是否从Eureka Server上获取注册信息,默认为true
  server:
    eviction-interval-timer-in-ms: 6000 #设置清理的间隔时间(默认6000ms)
    enable-self-preservation: false #关闭保护模式

接着修改microcloud-eureka-7002与microcloud-eureka-7003的Springboot的启动类以及application.yml的端口号以及客户端注册Eureka地址

microcloud-eureka-7002的启动类Eureka_7002_StartSpringCloudApplication.java与application.yml

Eureka_7002_StartSpringCloudApplication.java

package com.jmx.microcloud;

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

/**程序主类
 * @author JMX
 *
 */
@SpringBootApplication
@EnableEurekaServer
public class Eureka_7002_StartSpringCloudApplication {
    public static void main(String[] args) {
	SpringApplication.run(Eureka_7002_StartSpringCloudApplication.class, args);
    }

}

application.yml

server:
  port: 7002

security:
  basic:
    enabled: true #启用安全处理
  user:
    name: edmin   #用户名
    password: jmxhello   #密码
eureka:
  instance:                   #定义Eureka实例
    hostname: eureka-7002.com #Eureka实例所在的主机名

  #eureka默认情况下,把自己当做客户端来注册自己,所以我们要禁用它
  client:
    service-url:
      defaultZone: http://edmin:jmxhello@eureka-7001.com:7001/eureka,http://edmin:jmxhello@eureka-7003.com:7003/eureka
    register-with-eureka: false #表示是否将自己注册到Eureka Server上,默认为true 
    fetch-registry: false       #表示是否从Eureka Server上获取注册信息,默认为true
  server:
    eviction-interval-timer-in-ms: 6000 #设置清理的间隔时间(默认6000ms)
    enable-self-preservation: false #关闭保护模式

microcloud-eureka-7003的启动类Eureka_7003_StartSpringCloudApplication.java与application.yml

Eureka_7003_StartSpringCloudApplication.java

package com.jmx.microcloud;

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

/**程序主类
 * @author JMX
 *
 */
@SpringBootApplication
@EnableEurekaServer
public class Eureka_7003_StartSpringCloudApplication {
    public static void main(String[] args) {
	SpringApplication.run(Eureka_7003_StartSpringCloudApplication.class, args);
    }

}

application.yml

server:
  port: 7003

security:
  basic:
    enabled: true #启用安全处理
  user:
    name: edmin   #用户名
    password: jmxhello   #密码
eureka:
  instance:                   #定义Eureka实例
    hostname: eureka-7003.com #Eureka实例所在的主机名

  #eureka默认情况下,把自己当做客户端来注册自己,所以我们要禁用它
  client:
    service-url:
      defaultZone: http://edmin:jmxhello@eureka-7001.com:7001/eureka,http://edmin:jmxhello@eureka-7002.com:7002/eureka
    register-with-eureka: false #表示是否将自己注册到Eureka Server上,默认为true 
    fetch-registry: false       #表示是否从Eureka Server上获取注册信息,默认为true
  server:
    eviction-interval-timer-in-ms: 6000 #设置清理的间隔时间(默认6000ms)
    enable-self-preservation: false #关闭保护模式

把我们的Eureka注册中心的所有服务都启动起来,浏览器分别输入:

http://edmin:jmxhello@eureka-7001.com:7001
http://edmin:jmxhello@eureka-7002.com:7002
http://edmin:jmxhello@eureka-7003.com:7003


从上面三幅图里我们看见了我们的Eureka注册中心分别在三台主机上部署成功,成功实现了集群部署.然后我们将微服务注册进去修改microcloud-provider-dept-8001的application.yml添加其他Eureka注册中心的主机地址

application.yml

server:
  port: 8001
  
eureka:
  client:         #客户端进行Eureka注册的配置
    service-url:
      defaultZone: http://edmin:jmxhello@eureka-7001.com:7001/eureka/,http://edmin:jmxhello@eureka-7002.com:7002/eureka/,http://edmin:jmxhello@eureka-7003.com:7003/eureka/
  instance:
    lease-expiration-duration-in-seconds: 5 #设置心跳的周期间隔(默认90s)[如果5s没响应默认服务宕机]
    lease-renewal-interval-in-seconds: 2  #设置心跳时间间隔(默认30s)
    instance-id: dept-8001.com    #在信息列表时显示主机名称
    prefer-ip-address: true       #访问路径变为IP地址
    
info:
  app.name: jmx-microcloud
  company.name: www.52jmx.com
  build.artifactId: $project.artifactId$
  build.version: $project.version$
  
  
  
  
  
mybatis:
  config-location: classpath:mybatis/mybatis.cfg.xml    # mybatis配置文件所在路径
  type-aliases-package: com.jmx.vo                      # 定义所有操作类的别名所在包
  mapper-locations:                                     # 所有的mapper映射文件
  - classpath:mybatis/mapper/**/*.xml
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource    # 配置当前要使用的数据源的操作类型
    driver-class-name: org.gjt.mm.mysql.Driver      # 配置MySQL的驱动程序类
    url: jdbc:mysql://localhost:3307/jmx8001?useUnicode=true&characterEncoding=utf-8       # 数据库连接地址
    username: root                                  # 数据库用户名
    password: 123456                                # 数据库连接密码
    dbcp2:                                          # 进行数据库连接池的配置
      min-idle: 5                                   # 数据库连接池的最小维持连接数    
      initial-size: 5                               # 初始化提供的连接数
      max-total: 5                                  # 最大的连接数
      max-wait-millis: 200                          # 等待连接获取的最大超时时间
  application:                                      
    name: provider-8001                             # Eureka注册中心服务名

启动微服务,分别刷新三个端口的Eureka注册中心,然后查看是否注册成功。我们发现三个地址的微服务都已经注册成功




7.Eureka的服务发布,我们需要新增一个microcloud-eureka-server的模块,修改application.yml

application.yml

spring:
  profiles:
    active:
    - dev-7001    #设置常用的活动Eureka注册中心
---               #Eureka注册中心7001
spring:  
  profiles: dev-7001
  application:
    name:  microcloud-eureka-7001
server:
  port: 7001

security:
  basic:
    enabled: true #启用安全处理
  user:
    name: edmin   #用户名
    password: jmxhello   #密码
eureka:
  instance:                   #定义Eureka实例
    hostname: eureka-7001.com #Eureka实例所在的主机名

  #eureka默认情况下,把自己当做客户端来注册自己,所以我们要禁用它
  client:
    service-url:
      defaultZone: http://edmin:jmxhello@eureka-7002.com:7002/eureka,http://edmin:jmxhello@eureka-7003.com:7003/eureka
    register-with-eureka: false #表示是否将自己注册到Eureka Server上,默认为true 
    fetch-registry: false       #表示是否从Eureka Server上获取注册信息,默认为true
  server:
    eviction-interval-timer-in-ms: 6000 #设置清理的间隔时间(默认6000ms)
    enable-self-preservation: false #关闭保护模式


---         #Eureka注册中心7002
spring:
  profiles: dev-7002
  application:
    name:  microcloud-eureka-7002
server:
  port: 7002

security:
  basic:
    enabled: true #启用安全处理
  user:
    name: edmin   #用户名
    password: jmxhello   #密码
eureka:
  instance:                   #定义Eureka实例
    hostname: eureka-7002.com #Eureka实例所在的主机名

  #eureka默认情况下,把自己当做客户端来注册自己,所以我们要禁用它
  client:
    service-url:
      defaultZone: http://edmin:jmxhello@eureka-7001.com:7001/eureka,http://edmin:jmxhello@eureka-7003.com:7003/eureka
    register-with-eureka: false #表示是否将自己注册到Eureka Server上,默认为true 
    fetch-registry: false       #表示是否从Eureka Server上获取注册信息,默认为true
  server:
    eviction-interval-timer-in-ms: 6000 #设置清理的间隔时间(默认6000ms)
    enable-self-preservation: false #关闭保护模式
---         #Eureka注册中心7003
spring:
  profiles: dev-7003 
  application:
    name:  microcloud-eureka-7003 
    
server:
  port: 7003

security:
  basic:
    enabled: true #启用安全处理
  user:
    name: edmin   #用户名
    password: jmxhello   #密码
eureka:
  instance:                   #定义Eureka实例
    hostname: eureka-7003.com #Eureka实例所在的主机名

  #eureka默认情况下,把自己当做客户端来注册自己,所以我们要禁用它
  client:
    service-url:
      defaultZone: http://edmin:jmxhello@eureka-7001.com:7001/eureka,http://edmin:jmxhello@eureka-7002.com:7002/eureka
    register-with-eureka: false #表示是否将自己注册到Eureka Server上,默认为true 
    fetch-registry: false       #表示是否从Eureka Server上获取注册信息,默认为true
  server:
    eviction-interval-timer-in-ms: 6000 #设置清理的间隔时间(默认6000ms)
    enable-self-preservation: false #关闭保护模式

然后在microcloud-eureka-server模块上运行maven的build命令[clean install package]


打包成功我们在microcloud-eureka-server的target目录下有eureka-server.jar包


到此,我们的Eureka注册中心已经完成。

项目Demo:点我下载

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值