Spring Cloud微服务实战

发布时间:2018-03-13编辑:caoww阅读(690)

Spring Cloud微服务构建 :Spring Boot


image.png

Spring Boot的基础结构分为三大块

    src/main/java: 主程序入口 通过直接运行RegistryApplication,可以启动Spring Boot应用

    src/main/resources: 配置目录

    src/test/           单元测试目录


实现Restful API


在Spring Boot中创建一个Resultful API的实现代码同Spring MVC应用一样,只是不需要像SpringMVC那样先做很多配置,

而是想下面这样直接开始编写Controller内容:

@RestController
public class HelloController{
        @RequestMapping("/hello")
        public String index(){
            return "Hello World";
        }

        }



启动该应用,通过浏览器访问http://localhost:8080/hello  

可以返回预期的结果 : hello world.


启动Spring Boot应用方法

  • 通过main函数的类来启动

  • 通过maven的命令  mvn spring-boot:run命令

  • 打包成jar  通过java -jar xxx.jar 来启动应用


备注:  如果需要设置启动端口除了在配置文件中指定

还可以通过java -jar xxx.jar --server.port=8888 直接通过命令的形式设置server.port属性

同理 --spring.profiles.active=prod


加载顺序

  1. 在命令行中传入参数

  2. SPRING_APPLICATION_JSON 中的属性。  它是以JSON格式配置在心痛环境变量中的内容

  3. java:comp/env 中的JNDI 属性

  4. Java 的系统属性, 可以通过system.getproperties()获得的内容

  5. 操作系统的环境变量

  6. 通过 random.* 配置的随机属性

  7. 位于当前应该 jar 包之外 针对不同{profile}环境的配置文件内容

  8. 位于当前应用jar 包之内, 针对不同的{profile}环境的配置文件内容

  9. 位于当前应用jar包之外的,application.properties和YAML配置内容

  10. 位于当前应用jar包之内的application。properties和YAML配置内容

  11. 在@Configuration 注解修改的类中 通过@propertySource注解定义的属性

  12. 应用默认属性  使用springApplication.setDefaultProperties 定义的内容


优先级按上面的顺序由高到低  数字越小优先级越高



服务治理: Spring Cloud Eureka


  • 构建服务注册中心

  • 服务注册和服务发现

  • Eureka 的基础架构

  • Eureka 的服务治理机制

  • Eureka 的配置


服务治理

包括服务注册和服务发现


服务注册:在服务治理框架中 ,通常会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机和端口

版本号,通信协议等一些附加的信息告知注册中心,注册中心按服务名分类组织服务清单。


服务发现:由于在服务治理框架下运作,服务间的调用不再通过制定具体的实例地址来实现,而是通过向服务名发起请求调用

实现。所以,服务调用方在调用服务提供方接口的时候,并不知道具体的服务实例的位置。因此,调用方需要向服务注册中心

咨询服务,并且获取所有服务的是咧清单,以实现对具体服务实例的访问。


Netflix Eureka


通过@EnableEurekaServer 注解启动一个服务注册中心 提供给其他应该对话。

Instances currently registered with Eureka

这个为空 则说明该注册中心还没有注册任何服务











标签

评论