网站系统平台建设,dedecms源码下载,最好的网站建设哪家好,电子商务网站模板使用 Spring Cloud 实现微服务系统 准备工作#xff1a;为了方便创建项目#xff0c;以及各版本以来关系#xff0c;此次创建项目使用 Spring Assistant插件。 创建单体服务中心项目 启用服务端的服务注册#xff0c;发现功能 EnableEurekaServer
SpringBootApplication
pu… 使用 Spring Cloud 实现微服务系统 准备工作为了方便创建项目以及各版本以来关系此次创建项目使用 Spring Assistant插件。 创建单体服务中心项目 启用服务端的服务注册发现功能 EnableEurekaServer
SpringBootApplication
public class EurekaServerDemoApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerDemoApplication.class, args);}} 配置“服务中心”地址端口号应用名称 # 端口
server.port8080
# 服务名
spring.application.nameEureka Server Demo
# 是否注册到 Eureka Server默认为true
eureka.client.register-with-eurekatrue
# 是否从 Eureka Server 获取注册信息默认为true
eureka.client.fetch-registrytrue
# 设置与 Eureka Server 进行交互的地址查询服务和注册服务都需要使用他。多个地址使用 , 分割。
eureka.client.service-url.default-zonehttp://localhost:8080/eureka/ giteehttps://gitee.com/Jacob-gitee/eureka/tree/master/eureka1/ 实现服务集群 配置虚拟地址 # 节点1
127.0.0.1 node1
# 节点2
127.0.0.1 node2
# 节点3
127.0.0.1 node3 多环境配置 创建节点 node1 配置文件 application-node1.pproperties并指向 node2 和 node3。 # 端口
server.port8081
# 服务名
spring.application.nameEureka Server Demo
# 节点名
eureka.instance.hostnamenode1
# 是否注册到 Eureka Server默认为true
eureka.client.register-with-eurekatrue
# 是否从 Eureka Server 获取注册信息默认为true
eureka.client.fetch-registrytrue
# 设置与 Eureka Server 进行交互的地址查询服务和注册服务都需要使用他。多个地址使用 , 分割。
eureka.client.service-url.defaultZonehttp://node2:8082/eureka/,http://node3:8083/eureka/ 创建节点 node2 配置文件 application-node2.pproperties并指向 node1 和 node3。 # 端口
server.port8082
# 服务名
spring.application.nameEureka Server Demo
# 节点名
eureka.instance.hostnamenode2
# 是否注册到 Eureka Server默认为true
eureka.client.register-with-eurekatrue
# 是否从 Eureka Server 获取注册信息默认为true
eureka.client.fetch-registrytrue
# 设置与 Eureka Server 进行交互的地址查询服务和注册服务都需要使用他。多个地址使用 , 分割。
eureka.client.service-url.defaultZonehttp://node1:8081/eureka/,http://node3:8083/eureka/ 创建节点 node3 配置文件 application-node3.pproperties并指向 node1 和 node2。 # 端口
server.port8083
# 服务名
spring.application.nameEureka Server Demo
# 节点名
eureka.instance.hostnamenode3
# 是否注册到 Eureka Server默认为true
eureka.client.register-with-eurekatrue
# 是否从 Eureka Server 获取注册信息默认为true
eureka.client.fetch-registrytrue
# 设置与 Eureka Server 进行交互的地址查询服务和注册服务都需要使用他。多个地址使用 , 分割。
eureka.client.service-url.defaultZonehttp://node1:8081/eureka/,http://node2:8082/eureka/ 打包和部署 打包 使用 Maven 命令 进行打包 部署 服务中心 集群 在 3个DOS命令窗口分别暑促一下命令启动服务中心 # node1
java -jar eureka-0.0.1.jar --spring.profiles.activenode1
# node2
java -jar eureka-0.0.1.jar --spring.profiles.activenode2
# node3
java -jar eureka-0.0.1.jar --spring.profiles.activenode3 giteehttps://gitee.com/Jacob-gitee/eureka/tree/master/eureka 实现单体服务提供者客户端 使用插件创建 客户端最后使用选择 Eureka Discovery Client 添加依赖 !-- 不加此依赖会registration status: 204 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency 添加配置 # 服务名
spring.application.nameprovider
# 应用的端口号
server.port8000
provider.nameprovider0
# 服务中心 地址
eureka.client.service-url.defaultZonehttp://node1:8081/eureka/ 启用客户端的服务注册发现功能 EnableDiscoveryClient
SpringBootApplication
public class EurekaServerClientApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerClientApplication.class, args);}} 使用 Eureka 启用客户端服务的注册和发现功能可以使用注解 EnableEurekaClient 和 EnableDiscoveryClient 来实现。如果使用其他服务中心(zookeeperConsul)则使用 EnableDiscoveryClient 来实现。EnableEurekaClient 是 Eureka 的专用注解。 实现服务提供者接口 RestController
public class HellController {Value(${server.port})private String port;Value(${provider.name})private String name;GetMapping(hello)public String hello(){return provider: name port:port;}
} 实现服务提供者集群 多环境配置 创建配置文件 application-provider1.properties并做如下配置 # 服务名
spring.application.nameprovider
# 应用的端口号
server.port8001
# 自定义配置项
provider.nameprovider1
# 服务中心 地址
eureka.client.service-url.defaultZonehttp://node1:8081/eureka/,http://node2:8082/eureka/,http://node3:8083/eureka/ 创建配置文件 application-provider2.properties并做如下配置 # 服务名
spring.application.nameprovider
# 应用的端口号
server.port8002
# 自定义配置项
provider.nameprovider2
# 服务中心 地址
eureka.client.service-url.defaultZonehttp://node1:8081/eureka/,http://node2:8082/eureka/,http://node3:8083/eureka/ 打包启动 # 打包
mvn clean package
# 启动
java -jar eureka-clien.0.0.1.jar --spring.profiles.activeprovider1
java -jar eureka-clien.0.0.1.jar --spring.profiles.activeprovider2 用 Feign 实现服务消费者 创建 Eureka 的客户端 创建过程 参照实现单体服务提供者客户端 添加依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency 添加配置 # 服务名
spring.application.nameconsumer
# 应用的端口号
server.port9000
# 不注册到服务中心
eureka.client.register-with-eurekafalse
# 服务中心 地址
eureka.client.service-url.defaultZonehttp://node1:8081/eureka/,http://node2:8082/eureka/,http://node3:8083/eureka/ 启用客户端的发现和远程调用 // 启动 feign 远程调用服务
EnableFeignClients
// 启用客户端的服务注册发现功能
EnableDiscoveryClient
SpringBootApplication
public class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}} 调用服务提供者接口 // 远程服务名
FeignClient(name provider)
public interface MyFeignClient {// 此接口需要和远程调用接口方法名参数保持一致GetMapping(/hello)public String hello();} 实现客户端接口 RestController
public class FeignController {Autowiredprivate MyFeignClient myFeignClient;GetMapping(hello)public String hello(){return myFeignClient.hello();}} 测试微服务系统