https://blog.youkuaiyun.com/hsrlzg/article/details/79388121
在之前的项目中,我们可以看到我们客户端要记录大量的地址信息,而且无法确定某个服务是否可用。所以我们启用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:点我下载