微服务,springBoot,SpringCloud

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/csolo/article/details/79982388

在学习SpringCloud之前,先梳理一下基础知识,本章节的目标就是了解如下基础知识:

 

  • 微服务
  • SpringCloud
  • Springboot
  • 最后通过搭建一个简单的Springboot 的 helloworld 结束本章。

一、什么是微服务

传统企业架构里面,一般分为数据库、服务端处理、前端展现。服务端一般是单体模块或者单体的进程,随着web端的业务越来越复杂,对于服务端的要求也越来越高,服务接口越来越多。一开始人们采用服务总线来解决服务发现和服务治理的问题,随着互联网兴起,接口的调用性能和稳定性问题越来越突出,因此去中心化成为服务治理之后一个被大家高度重视的问题,在这个背景下,越来越多的公司采用了微服务来进行服务端的设计,从之前的淘宝dubbo,到后来的SpringCloud, 微服务现在已经成为后端服务设计中最为流行的一种技术选型。

       

二、SpringCloud简介

微服务概念兴起后,有许多相关的框架在技术人员中流传出来,如果前面提过的dubbo,其他还有批量任务的 Elastic-job 一系列的技术框架,但是都是基于微服务中的某一个点的问题进行解决,SpringCloud的出现,给技术人员提供了一个解决微服务架构实施的综合性解决框架。

SpringCloud包含了多个子项目:

Spring Cloud Config: 配置管理工具

Spring Cloud Netflix: 核心组件,含有Eureka: 服务治理组件(服务注册中心,服务注册和发现机制)

Hystrix:容错管理组件,实现断路器模式

Ribbon:客户端负载均衡的服务调用组件

Spring Cloud Bus: 事件、消息总线

Spring Cloud Cluster:集群

等等,还有很多不一一列举。

三、Spring Boot简介

SpringCloud的工程构建是基于Spring Boot实现,因此有必要先了解一下Spring Boot, 通过创建一个简单的web工程来了解一下SpringBoot:建议使用IDEA作为开发工具

首先通过建立一个Model来建立一个SpringBoot工程:

点击下一步:

填入Model 的元数据相关信息后,继续next

这里选择Web,next后,填入模块的名称:

点击finish后,就出现如下的工程结构:

上面这张图显示了工程结构,其中pom.xml是maven工程的配置文件,里面会有工程的依赖,我们使用了spring initialzr向导,因此会在pom.xml 中自动填入初始的依赖;其次默认src main 目录下有一个java ,一个resources,在java 中放置代码,在resources中放工程的资源如配置文件,图中的application.yml 也是配置文件,是后来加入的,这是springboot的特色配置文件,在代码区的 HelloControler也是后来代码,后面会说明,系统默认会有一个应用入口类,SpringbootApplication。最后test区是放置单元测试代码的区域。

建立起工程后,我们准备开发一个小demo,helloword。

首先看一下pom.xml

 
  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  4. <modelVersion>4.0.0</modelVersion>

  5.  
  6. <groupId>com.study</groupId>

  7. <artifactId>springboot</artifactId>

  8. <version>0.0.1-SNAPSHOT</version>

  9. <packaging>jar</packaging>

  10.  
  11. <name>springboot</name>

  12. <description>Demo project for Spring Boot</description>

  13.  
  14. <parent>

  15. <groupId>org.springframework.boot</groupId>

  16. <artifactId>spring-boot-starter-parent</artifactId>

  17. <version>2.0.1.RELEASE</version>

  18. <relativePath/> <!-- lookup parent from repository -->

  19. </parent>

  20.  
  21. <properties>

  22. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  23. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

  24. <java.version>1.8</java.version>

  25. </properties>

  26.  
  27. <dependencies>

  28. <dependency>

  29. <groupId>org.springframework.boot</groupId>

  30. <artifactId>spring-boot-starter-web</artifactId>

  31. </dependency>

  32.  
  33. <dependency>

  34. <groupId>org.springframework.boot</groupId>

  35. <artifactId>spring-boot-starter-test</artifactId>

  36. <scope>test</scope>

  37. </dependency>

  38. </dependencies>

  39.  
  40. <build>

  41. <plugins>

  42. <plugin>

  43. <groupId>org.springframework.boot</groupId>

  44. <artifactId>spring-boot-maven-plugin</artifactId>

  45. </plugin>

  46. </plugins>

  47. </build>

  48.  
  49.  
  50. </project>

如果以后自己的工程中有其他依赖,可以自己添加,上面是创建工程时就自己创建的,还记得前面我们选的web 选项吗,在这里就有sping-boot-starter-web。

其次,我们写一个controler,默认调用都被这个controler处理

 
  1. package com.study.springboot.controler;

  2.  
  3. import org.springframework.web.bind.annotation.RequestMapping;

  4. import org.springframework.web.bind.annotation.RestController;

  5.  
  6. @RestController

  7. public class HelloController {

  8.  
  9. @RequestMapping("/sayhello")

  10. public String Hello() {

  11. return "Hello World!";

  12. }

  13. }

在springboot中采用了注解方式来开发,提升开发效率,上面这段就是当http://localhost:port/sayhello调用时,返回hello world。接着,创建一下运用的配置文件,在resource 目录下,我们创建一个文件application.yml

 
  1. server:

  2. #配置服务器启动端口

  3. port: 8028

  4. #配置访问的上下文路径,就是localhost:8028后面需要的上下文路径

  5. context-path: /sayhello

Springboot采用了递进式样的配置文件格式yml,有点类似python,当然也可以用默认的application.properties

上面等于server.port=8028

最后,我们看一下demo的入口:

 
  1. package com.study.springboot;

  2.  
  3. import org.springframework.boot.SpringApplication;

  4. import org.springframework.boot.autoconfigure.SpringBootApplication;

  5.  
  6. @SpringBootApplication

  7. public class SpringbootApplication {

  8.  
  9. public static void main(String[] args) {

  10. SpringApplication.run(SpringbootApplication.class, args);

  11. }

  12. }

这个类没有做任何处理,创建时就是这样,,我们直接把它运行起来:

运行后,我们在浏览器输入url  http://localhost:8028/sayhello,浏览器就会返回如下信息:

一个简单的 Springboot demo 就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值