springcloud是什么

基于spring boot实现的服务治理工具包,管理和协微服务

把别人的东西拿来组合在一起,形成各种组件

微服务协调者【service registtry注册中心 Eureka】--统一的网关【api gateway-zuul】

负载均衡【ribbon】--分布式配置 【config】-断路器【hystrix】

服务者--消费者 都向Eureka注册中心去注册,一个负责生产,一个负责消费

idea 如何创建多个模块 。

和eclipse有点区别,创建maven项目

看下项目结构

和eclipse中的workspace一样。

1.创建EurekaServer

带个端口明确一下。

2.创建生产者和消者共用的接口

3.创建服务提供者

4.创建服务消费者

现在的项目架构

开始配置

想让项目中的四个模块 都拥有spring boot

让四个模块继承一个父亲 。在总项目的pom.xml中添加spring boot ,这个下面的四个模块都会继承

总项目的pom.xml

${spring-cloud.version} 是一个变量,要定义在properties中。

以下代码是引入spring cloud.

一定要注意版本是否正确。我在这里就入了一个大坑 。

先开始定义的spring-cloud.version写成了 spring-cloud.verison,导致cloud怎么也导入不进来

费了很大功夫才发现。

 <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.SR1</spring-cloud.version>
</properties> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
springboot 与springcoud 的版本选择

这里要注意springboot 与springcoud 的版本的匹配,可以参考:

https://spring.io/projects/spring-cloud

springboot的最新版 ,springcloud不一定就支持,要看对应关系 。

这里有一位同学写的踩坑旅程,有兴趣的可以参考一下。少走一些弯路

https://blog.51cto.com/honly/2156583?source=dra

以下图中可以看到。srpingboot 2.0开 头的版本,要用springcloud的Finchley来适配

Finchley 又分为 Release ,SR1-SR4 . 选择自己需要的就可以。 比如Finchley Release 或者Finchley SR1

以下网址是springcloud maven中面仓库的地址

https://repo1.maven.org/maven2/org/springframework/cloud/spring-cloud-dependencies/

可以看到Finchley.Release是Finchley最新发布的一个版本,之后才有sr1-4

然后是Greenwich.Releash版本,这个是针对springboot 2.1.x版本做的适配

每个版本都有针对的说明 : 比如

finchley.Release的官方说明:https://spring.io/blog/2018/06/19/spring-cloud-finchley-release-is-available

中文说明 参考:https://www.oschina.net/news/97226/spring-cloud-finchley-released

显著变化:

  • 与 Spring Boot 2.0.x 兼容
  • 不支持 Spring Boot 1.5.x
  • 最低要求 Java 8
  • 新增 Spring Cloud Function 和 Spring Cloud Gateway

以下代码是表示所有的模块都继承springboot

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

如果表示模块继承了,在模块的pom.xml中

//<artifactId>microservice_paent</artifactId> 表示继承了父类
<parent>
<artifactId>microservice_paent</artifactId>
<groupId>com.project</groupId>
<version>1.0-SNAPSHOT</version>
</parent>

Eureka注册中心的pom.xml

添加springboot ,spring.cloud的依赖。

 <dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

Eureka注册的配置

在src->main->resources中添加 application.yml.指定服务器端口号,同时配置 Eureka的配置

server:
port: 7001
eureka:
instance:
hostname: 127.0.0.1
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone:http://${eureka.instance.hostname}:${server.port}/eureka/

在src->main->java中添加新类。

这些类似于单项目 springboot项目的创建。

这里如果@EnableEurekaServer不出现智能提示,或者明显有错误,需要去检查springcloud是否导入 进来

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication
@EnableEurekaServer
public class EurekaServiceApplication {
public static void main(String[] args) { SpringBootApplication.run(EurekaServiceApplication.class,args);
}
}

也可以去检查依赖的包里是否有cloud的字样,比如下图,如果没有,检查配置 pom.xml确保springcloud导入进来再进行操作。

下面就会有区别了。请等下一篇 ,今天有几个坑入的比较深

SpringCloud介绍及入门一的更多相关文章

  1. SpringCloud介绍及入门(二)

    接口的实现 在user_service_interface中添加一个User的类. 增加私有属性 id,name , 并利用快捷键Alt+Insert 实现get,set的快速生成. 实体类User ...

  2. java框架之SpringCloud(1)-微服务及SpringCloud介绍

    微服务概述 是什么 业界大牛 Martin Fowler 这样描述微服务: 参考[微服务(Microservices)-微服务原作者Martin Flower博客翻译]. 下面是关于上述博客中的部分重 ...

  3. .NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一)

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下FluentValidation验证组件.那里只是概述了一下,并没有对其使用和强大功能做深入研究 ...

  4. freemarker语法介绍及其入门教程实例

    # freemarker语法介绍及其入门教程实例 # ## FreeMarker标签使用 #####一.FreeMarker模板文件主要有4个部分组成</br>####  1.文本,直接输 ...

  5. (转)私有代码存放仓库 BitBucket介绍及入门操作

    转自:http://blog.csdn.net/lhb_0531/article/details/8602139 私有代码存放仓库 BitBucket介绍及入门操作 分类: 研发管理2013-02-2 ...

  6. NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(转载)

    原文地址:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_FluentValidation_1.html 阅读目录 1.基本介绍 ...

  7. springcloud+eureka简单入门案例

    springcloud+eureka简单入门案例 一.服务提供者 直接提供服务,入门案例没有特别要设置的地方,注意下端口,由于要启动多个服务,可能会冲突 配置文件(src/main/resources ...

  8. 读写Word的组件DocX介绍与入门

    本文为转载内容: 文章原地址:http://www.cnblogs.com/asxinyu/archive/2013/02/22/2921861.html 开源Word读写组件DocX介绍与入门 阅读 ...

  9. [转帖]Druid介绍及入门

    Druid介绍及入门 2018-09-19 19:38:36 拿着核武器的程序员 阅读数 22552更多 分类专栏: Druid   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议 ...

随机推荐

  1. django.http.request中QueryDict 对象

    在一个 HttpRequest 对象中, GET 和 POST 属性都是 django.http.QueryDict 的实例. QueryDict 是一个类似于字典的类,专门用来处理用一个键的多值.当 ...

  2. 【转载】 C#中PadRight函数以特定字符在字符串结尾补足位数

    在C#开发过程中字符串String类处理过程中,有时字符串长度不够时,需要在右侧侧指定特定的字符来补足字符串长度,此时可以使用String类下的PadRight方法对字符串结尾按特定的字符补足位数.M ...

  3. MySQL存储引擎的介绍

    数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建.查询.更新和删除数据操作.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎还可以获得特定的功能. ...

  4. Excel导入+写入数据库

    1.引用服务 2.前端 <h2>这里是上传Excel功能页面</h2> <div> <form action="/Improve_Excel/get ...

  5. Elasticsearch vs Solr 搜索引擎对比和选型

    前言 全文搜索属于最常见的需求,开源的 Elasticsearch 是目前全文搜索引擎的首选. 基于Lucene它可以快速地储存.搜索和分析海量数据.维基百科.Stack Overflow.Githu ...

  6. OSI七层模型的新认识

    OSI 七层模型是internet的基石,它并没有制定一个标准,规定我们要怎么去做.美国军方曾把它精简到四层,只是站在了更实用的层次. 我们先来看看这个模型.   应用层->Applicatio ...

  7. Python 渗透测试编程技术方法与实践 ------全书整理

    1.整个渗透测试的工作阶段 ( 1 )前期与客户的交流阶段.( 2 )情报的收集阶段.( 3 )威胁建模阶段.( 4 )漏洞分析阶段.( 5 )漏洞利用阶段.( 6 )后渗透攻击阶段.( 7 )报告阶 ...

  8. 【OF框架】配置信息Config添加配置和代码调用api

    一.配置规范 配置信息全部写在OF.WebShell项目文件config.json中 配置键使用OF.开头,配置格式如下: { "OF.IgnoredUrl": "log ...

  9. Nginx access_log日志添加返回字段

    主要为方便单用户请求日志回溯分析   记录用户标记. 将用户信息打印在access_log 日志里. 步骤: 1.重写nginx 的log格式 一般是地址是  /etc/nginx/conf.d/ng ...

  10. 工程代码不编译src的java目录下的xml文件问题及解决

    IDEA的maven项目中,默认源代码目录下(src/main/java目录)的xml等资源文件并不会在编译的时候一块打包进classes文件夹,而是直接舍弃掉.如果使用的是Eclipse,Eclip ...