spring: application: name: foo cloud: config: uri: ${SPRING_CONFIG_URI:http://localhost:8888}
标签:学习 dex lan files ogr board pre size 替换
SpringCloud ?
SpringCloud是基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路空间,服务网关,负载均衡,熔断器等组件。
springcloud能够实现分布式、版本控制配置,服务注册与发现,路由,服务于服务的调用,负载均衡配置,断路器,分布式消息管理。
我们学习springcloud的主要途径是参考springcloud官方文档和springcloud中文文档。
springcloud微服务技术栈实现的技术有哪些?
服务的注册与发现使用的是Eureka。
服务消费者是rest+ribbon
服务消费者是feign
断路器是hystrix
断路器监控使用的是hystrix dashboard
路由网关使用的zuul
分布式配置使用的是spring cloud config
消息总线使用的是spring cloud bus
服务链路追踪是spring cloud sleuth
SpringCloud目前国内的使用情况是怎么样的?
springcloud在阿里云服务容器化之后的架构。
Spring Cloud专注于提供良好的开箱即用经验的典型用例和可扩展性机制覆盖。
分布式/版本化配置
服务注册和发现
路由
service - to - service调用
负载均衡
断路器
分布式消息传递
Spring Boot对于如何使用Spring构建应用程序有一个看法:例如它具有常规配置文件的常规位置,以及用于常见管理和监视任务的端点。Spring Cloud建立在此之上,并添加了一些可能系统中所有组件将使用或偶尔需要的功能。
一个Spring Cloud应用程序通过创建一个“引导”上下文来进行操作,这个上下文是主应用程序的父上下文。开箱即用,负责从外部源加载配置属性,还解密本地外部配置文件中的属性。这两个上下文共享一个Environment
,这是任何Spring应用程序的外部属性的来源。Bootstrap属性的优先级高,因此默认情况下不能被本地配置覆盖。
引导上下文使用与主应用程序上下文不同的外部配置约定,因此使用bootstrap.yml
application.yml
(或.properties
)代替引导和主上下文的外部配置。例:
spring: application: name: foo cloud: config: uri: ${SPRING_CONFIG_URI:http://localhost:8888}
如果您的应用程序需要服务器上的特定于应用程序的配置,那么设置spring.application.name
(在bootstrap.yml
或application.yml
)中是个好主意。
您可以通过设置spring.cloud.bootstrap.enabled=false
(例如在系统属性中)来完全禁用引导过程。
SpringCloud入门操作
Maven搭建父项目,一般常用的有两种方法。
1)建立一个空项目
2)建立一个纯 pom 项目
由于父项目主要是作为子模块的容器,并不需要太多的功能或配置,所以建议采用第一种模式:建立一个空项目。
项目名称 - edu
项目目录:E:\springcloud\edu
点击“Finish”完成空项目创建。
创建两个pom集合模块,用来管理下级子项目。
注意利用主菜单里的 File -> New -> Module 菜单项来创建 1 级子模块
注:后面的子模块都是采用 SpringInitializr 来创建。
同上步骤,创建 other 模块,假设也是 pom 类型
具体模块参数如下:
微服务模块建立在 microsvc pom 模块下,所以,需要在 microsvc 子模块上点击右键菜单,进行子模块创建操作。
新建模块,同样是采用 Spring Initializr 模式,注意,采用 Maven Project 类型,里面会包含 java 代码。
暂时不加入依赖,到时可根据需要增加
将 user 模块的父模块设置为 microsvc 的主要目的,就是利用 microsvc 来管理 user 及其它后续子模块的依赖关系。
查看 user 模块和 microsvc模块的 pom 文件,可以看到依赖部分变成黄色的警示色,表示依赖重复了:
在 com.tanbushi.edu.microsvc.user 下新建包 controller,用来存放控制器的代码
新建包:controller
在 UserController.java 文件里写入如下代码:
package com.tanbushi.edu.microsvc.user.controller;
/**
* Created by Administrator on 2019/5/27.
*/
@RestController
public class UserController {
@RequestMapping(value="/hello")
public String hello(){
return "hello from UserController";
}
}
实际代码效果见下图:
缺少注解对应的依赖,需要补齐。
鼠标点击 @RestController 上,会弹出红色警示灯,并点击倒三角号,出现操作提示,点击第一条即可增加依赖
从下图可以看到成功 import
出现下图界面,可以看到 8100 http 端口成功启动监听
在浏览器里输入:http://127.0.0.1:8100/hello
基本方法和 user 模块类似,快速列举如下,不做赘述
运行题库模块的启动函数 QuestionApplication 后,进行浏览器测试:
标签:学习 dex lan files ogr board pre size 替换
原文地址:https://www.cnblogs.com/jingjinggood/p/12255188.html