SpringCloud + Eureka / Nacos

git:https://github.com/huanmsf/springCloudLearn.git

项目目录:

父pom:

<?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>spring.cloud.learn</groupId><artifactId>sc-learn</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><modules><module>api</module><module>consumer-eureka</module><module>consumer-nacos</module><module>provider-eureka</module><module>provider-nacos</module><module>eureka-server</module></modules><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Finchley.RELEASE</spring-cloud.version><spring-boot.version>2.0.4.RELEASE</spring-boot.version><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>0.2.1.RELEASE</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>0.2.1.RELEASE</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId><version>2.1.1.RELEASE</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId><version>2.0.0.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.0.3.RELEASE</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.1.1.RELEASE</version></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

基于Eureka的服务注册和发现 provider-eureka

目录

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><parent><groupId>spring.cloud.learn</groupId><artifactId>sc-learn</artifactId><version>1.0-SNAPSHOT</version><relativePath>../pom.xml</relativePath></parent><groupId>sc.learn.provider.eureka</groupId><artifactId>provider-eureka</artifactId><version>0.0.1-SNAPSHOT</version><name>provider-eureka</name><description>Demo project for Spring Boot</description><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>spring.cloud.learn.api</groupId><artifactId>api</artifactId><version>1.0-SNAPSHOT</version><scope>compile</scope></dependency><dependency><groupId>spring.cloud.learn.api</groupId><artifactId>api</artifactId><version>2.1.4.RELEASE</version><scope>compile</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency></dependencies></project>

application.yml

server:port: 7070spring:application:name: provider-eurekaeureka:client:serviceUrl:defaultZone: http://localhost:8888/eureka/

ProviderEurekaApplication

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

EchoServiceController

@RestController
@RequestMapping("/pe")
public class EchoServiceController {@Autowiredprivate EchoService echoService;@GetMapping("/echo")public String echo(@RequestParam String name) {return echoService.echo(name);}
}

结果

基于Eureka的服务注册和发现 consumer-eureka

目录

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><parent><groupId>spring.cloud.learn</groupId><artifactId>sc-learn</artifactId><version>1.0-SNAPSHOT</version><relativePath>../pom.xml</relativePath></parent><groupId>sc.learn.consumer.eureka</groupId><artifactId>consumer-eureka</artifactId><version>0.0.1-SNAPSHOT</version><name>consumer-eureka</name><description>Demo project for Spring Boot</description><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>spring.cloud.learn.api</groupId><artifactId>api</artifactId><version>1.0-SNAPSHOT</version><scope>compile</scope></dependency><dependency><groupId>spring.cloud.learn.api</groupId><artifactId>api</artifactId><version>2.1.4.RELEASE</version><scope>compile</scope></dependency></dependencies></project>

application.yml

server:port: 7000spring:application:name: consumer-eurekaeureka:client:serviceUrl:defaultZone: http://localhost:8888/eureka/

ConsumerEurekaApplication

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

InvokeEchoServiceController

@RestController
@RequestMapping("/ce")
public class InvokeEchoServiceController {@Autowiredprivate HelloController helloController;@GetMapping("/echo")public String echo(@RequestParam String name) {return helloController.hello(name);}}

HelloController

@FeignClient(value = "provider-eureka")
public interface HelloController {@GetMapping("/pe/echo")String hello(@RequestParam(value = "name") String name);
}

结果

基于Nacos的服务注册和发现和配置中心 provider-nacos

目录

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><parent><groupId>spring.cloud.learn</groupId><artifactId>sc-learn</artifactId><version>1.0-SNAPSHOT</version><relativePath>../pom.xml</relativePath></parent><groupId>sc.learn.provider.nacos</groupId><artifactId>provider-nacos</artifactId><version>0.0.1-SNAPSHOT</version><name>provider-nacos</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency></dependencies></project>

bootstrap.properties

spring.application.name=provider-nacos
server.port=9090
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

application.properties 空着,配置中心只能写在bootstrap.properties中,不然报错

ProviderNacosApplication

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

EchoController

@RestController
@RequestMapping("/pn")
@RefreshScope
public class EchoController {@Value("${sys.user.name:null}")private String user;@GetMapping(value = "/hello")public String hello(@RequestParam String name) {return user + "Hello : " + name;}@GetMapping(value = "/echo")public String echo(@RequestParam String name) {return user + "Echo : " + name;}
}

结果

基于Nacos的服务注册和发现和配置中心 consumer-nacos

目录

bootstrap.properties

server.port=9000
spring.application.name=consumer-nacos
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

ConsumerNacosApplication

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ConsumerNacosApplication {@LoadBalanced@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}public static void main(String[] args) {SpringApplication.run(ConsumerNacosApplication.class, args);}}

EchoControllerCn

@RestController
@RequestMapping("/cn")
@RefreshScope
public class EchoControllerCn {private final RestTemplate restTemplate;@Value("${sys.user.name:null}")private String user;@Autowiredpublic EchoControllerCn(RestTemplate restTemplate) {this.restTemplate = restTemplate;}@GetMapping(value = "/hello")public String echo(@RequestParam String name) {return restTemplate.getForObject("http://nacos-provider/pn/hello?name=" + name, String.class);}@Autowiredprivate HelloController2 helloController2;@Autowiredprivate HelloController helloController1;@GetMapping(value = "/hello1")public String echo1(String name) {return user + helloController1.hello(name);}@GetMapping(value = "/hello2")public String echo2(String name) {return user + helloController2.hello(name);}
}

HelloController

@FeignClient(value = "provider-nacos")
public interface HelloController {@GetMapping("/pn/hello")String hello(@RequestParam(value = "name") String name);}

结果

Nacos 服务器

nacos多环境配置

参考:https://www.cnblogs.com/didispace/p/10340685.html#undefined

修改配置文件

nacos.config-dev.properties:

sys.user.name=user-dev

nacos.config-test.properties:

sys.user.name=user-test

指定配置文件前缀

spring.cloud.nacos.config.prefix=nacos.config

添加启动参数

-Dspring.profiles.active=test

结果:

Nacos配置

转载于:https://www.cnblogs.com/lanqie/p/10691414.html

spring cloud 学习笔记(1)相关推荐

  1. Spring Cloud 学习笔记(四)-Spring Cloud Hystrix

    Spring Cloud 学习笔记(四)-Spring Cloud Hystrix 由于前一阵子项目的原因,今天才继续弄上,今天想学习一下Hystrix组件 这个组件还挺抽象的,最开始我一直没太明白, ...

  2. Spring Cloud 学习笔记(2 / 3)

    Spring Cloud 学习笔记(1 / 3) Spring Cloud 学习笔记(3 / 3) - - - 56_Hystrix之全局服务降级DefaultProperties 57_Hystri ...

  3. Spring Cloud 学习笔记(2 3)

    Spring Cloud 学习笔记(1 / 3) Spring Cloud 学习笔记(3 / 3) - - - 56_Hystrix之全局服务降级DefaultProperties 57_Hystri ...

  4. Spring Cloud 学习笔记(1 / 3)

    Spring Cloud 学习笔记(2 / 3) Spring Cloud 学习笔记(3 / 3) - - - 01_前言闲聊和课程说明 02_零基础微服务架构理论入门 03_第二季Boot和Clou ...

  5. Spring Cloud学习笔记—网关Spring Cloud Gateway官网教程实操练习

    Spring Cloud学习笔记-网关Spring Cloud Gateway官网教程实操练习 1.Spring Cloud Gateway介绍 2.在Spring Tool Suite4或者IDEA ...

  6. Spring Cloud学习笔记

    Spring Cloud学习笔记 相关代码地址:https://github.com/gongxings/spring-cloud-study.git 一.工程环境搭建 spring cloud版本: ...

  7. Spring Cloud学习笔记【十二】Hystrix的使用和了解

    Spring Cloud学习笔记[十二]Hystrix的使用和了解 Hystrix [hɪst'rɪks],中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力.本文所说的Hystrix是Net ...

  8. Spring Cloud 学习笔记(3 3)

    Spring Cloud 学习笔记(1 / 3) Spring Cloud 学习笔记(2 / 3) - - - 108_Nacos之Linux版本安装 109_Nacos集群配置(上) 110_Nac ...

  9. Spring Cloud 学习笔记(3 / 3)

    Spring Cloud 学习笔记(1 / 3) Spring Cloud 学习笔记(2 / 3) - - - 108_Nacos之Linux版本安装 109_Nacos集群配置(上) 110_Nac ...

  10. Spring Cloud 学习笔记一 微服务架构

    文章目录 前言 一.微服务 二.微服务的特点 1.小型化 2.自治化 3. 扁平化 4. 轻量级设计 5. 渐进式设计 微服务架构和整体式架构的区别 微服务架构和SOA的比较 区别一:微服务通信的轻量 ...

最新文章

  1. Appearing and Disappearing consts in C++
  2. T-SQL查询高级—SQL Server索引中的碎片和填充因子
  3. 医保费用监控指标体系建立(四)医疗机构指标分析
  4. 包含contains
  5. javascript --- 防抖与节流
  6. java fx 建立窗体,3花式窗体与JavaFX CSS
  7. NetSetMan Pro v5.1.1 网络参数配置工具便携版
  8. oracle免安装和安装版区别,Oracle免安装客户端
  9. CST Studio Suite 2020 安装教程
  10. 刚开始做斗音掌握这5点至少让你少走半年弯路
  11. php tdd,用phpUnit入门TDD
  12. android校准电池,安卓手机电量校准教程
  13. 重启服务器命令有哪些,每一个重启命令区别又是什么?
  14. 微信小程序-001-抽签功能-008-简单登录
  15. 2021计算机技术考研非全日制,2021考研考非全日制还是全日制?盘点你不懂的非全日制深层含义~...
  16. mysql数据库插入数据为空_插入数据成功,但是数据库中显示为空(菜鸟提问)...
  17. 百度地图最新版本sdk使用系列(六)-搜索周边美食,加油站等,并使用infoWindow展示
  18. java获取微信用户源码_Java微信公众平台开发(十)--微信用户信息的获取
  19. 重庆大学考试计算机应用基础b卷,重庆大学2019年10月网上考试建筑结构设计B卷.docx...
  20. 解析:Outlook弹框问题

热门文章

  1. springboot vue组件写的个人博客系统
  2. java生成json字符串的方法
  3. 数据结构与算法之递推算法 C++与PHP实现
  4. xcode 4.2 开发2——TabelView
  5. ubuntu 19.04 + lenovo-xiaoxin-I2000 触摸板右键单击无法使用
  6. PHP错误处理注册机制
  7. IOS中通知中心NSNotificationCenter应用总结
  8. [Django]模型提高部分--聚合(group by)和条件表达式+数据库函数
  9. 数据结构——单人名单
  10. mac ssh key 的获取 (转)