spring cloud 学习笔记(1)
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)相关推荐
- Spring Cloud 学习笔记(四)-Spring Cloud Hystrix
Spring Cloud 学习笔记(四)-Spring Cloud Hystrix 由于前一阵子项目的原因,今天才继续弄上,今天想学习一下Hystrix组件 这个组件还挺抽象的,最开始我一直没太明白, ...
- Spring Cloud 学习笔记(2 / 3)
Spring Cloud 学习笔记(1 / 3) Spring Cloud 学习笔记(3 / 3) - - - 56_Hystrix之全局服务降级DefaultProperties 57_Hystri ...
- Spring Cloud 学习笔记(2 3)
Spring Cloud 学习笔记(1 / 3) Spring Cloud 学习笔记(3 / 3) - - - 56_Hystrix之全局服务降级DefaultProperties 57_Hystri ...
- Spring Cloud 学习笔记(1 / 3)
Spring Cloud 学习笔记(2 / 3) Spring Cloud 学习笔记(3 / 3) - - - 01_前言闲聊和课程说明 02_零基础微服务架构理论入门 03_第二季Boot和Clou ...
- Spring Cloud学习笔记—网关Spring Cloud Gateway官网教程实操练习
Spring Cloud学习笔记-网关Spring Cloud Gateway官网教程实操练习 1.Spring Cloud Gateway介绍 2.在Spring Tool Suite4或者IDEA ...
- Spring Cloud学习笔记
Spring Cloud学习笔记 相关代码地址:https://github.com/gongxings/spring-cloud-study.git 一.工程环境搭建 spring cloud版本: ...
- Spring Cloud学习笔记【十二】Hystrix的使用和了解
Spring Cloud学习笔记[十二]Hystrix的使用和了解 Hystrix [hɪst'rɪks],中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力.本文所说的Hystrix是Net ...
- Spring Cloud 学习笔记(3 3)
Spring Cloud 学习笔记(1 / 3) Spring Cloud 学习笔记(2 / 3) - - - 108_Nacos之Linux版本安装 109_Nacos集群配置(上) 110_Nac ...
- Spring Cloud 学习笔记(3 / 3)
Spring Cloud 学习笔记(1 / 3) Spring Cloud 学习笔记(2 / 3) - - - 108_Nacos之Linux版本安装 109_Nacos集群配置(上) 110_Nac ...
- Spring Cloud 学习笔记一 微服务架构
文章目录 前言 一.微服务 二.微服务的特点 1.小型化 2.自治化 3. 扁平化 4. 轻量级设计 5. 渐进式设计 微服务架构和整体式架构的区别 微服务架构和SOA的比较 区别一:微服务通信的轻量 ...
最新文章
- Appearing and Disappearing consts in C++
- T-SQL查询高级—SQL Server索引中的碎片和填充因子
- 医保费用监控指标体系建立(四)医疗机构指标分析
- 包含contains
- javascript --- 防抖与节流
- java fx 建立窗体,3花式窗体与JavaFX CSS
- NetSetMan Pro v5.1.1 网络参数配置工具便携版
- oracle免安装和安装版区别,Oracle免安装客户端
- CST Studio Suite 2020 安装教程
- 刚开始做斗音掌握这5点至少让你少走半年弯路
- php tdd,用phpUnit入门TDD
- android校准电池,安卓手机电量校准教程
- 重启服务器命令有哪些,每一个重启命令区别又是什么?
- 微信小程序-001-抽签功能-008-简单登录
- 2021计算机技术考研非全日制,2021考研考非全日制还是全日制?盘点你不懂的非全日制深层含义~...
- mysql数据库插入数据为空_插入数据成功,但是数据库中显示为空(菜鸟提问)...
- 百度地图最新版本sdk使用系列(六)-搜索周边美食,加油站等,并使用infoWindow展示
- java获取微信用户源码_Java微信公众平台开发(十)--微信用户信息的获取
- 重庆大学考试计算机应用基础b卷,重庆大学2019年10月网上考试建筑结构设计B卷.docx...
- 解析:Outlook弹框问题
热门文章
- springboot vue组件写的个人博客系统
- java生成json字符串的方法
- 数据结构与算法之递推算法 C++与PHP实现
- xcode 4.2 开发2——TabelView
- ubuntu 19.04 + lenovo-xiaoxin-I2000 触摸板右键单击无法使用
- PHP错误处理注册机制
- IOS中通知中心NSNotificationCenter应用总结
- [Django]模型提高部分--聚合(group by)和条件表达式+数据库函数
- 数据结构——单人名单
- mac ssh key 的获取 (转)