Spring Boot整合Spring Cloud实现微服务架构学习

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接出处:https://blog.csdn.net/qq\_3076499,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。

当你看到这的时候,温馨提示:在学习springcloud之前,请先学习springboot,因为springcloud是基于springboot。

微服务架构

什么是微服务架构?

架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行

SOA到微服务架构的演进过程

作用:各服务可独立应用,组合服务也可系统应用(巨石应用[monolith]的简化实现策略-平台思想)

SOA架构与微服务架构区别?

SOA架构主要针对企业级、采用ESB服务(ESB企业服务总线),非常重,需要序列化和反序列化,采用XML格式传输。

微服务架构主要互联网公司,轻量级、小巧,独立运行,基于Http+Rest+JSON格式传输。

什么是springcloud?

    SpringCloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、负载均衡、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。

服务提供者与消费关系

服务提供者:提供服务被人调用

消费者:调用被人服务

springcloud的组织架构如下图:

那么简单的介绍就到这。如有不明白的不妨可以访问springcloud官方链接:http://projects.spring.io/spring-cloud/.

那么下面我们开始基于springboot搭建springcloud环境:

1:首先搭建springboot cloud注册中心

为了对多个springboot应用进行发现以及管理,可使用eureka服务。在启动类中增加@EnableEurekaServer即可。同时添加配置文件。eureka注册中心,会等待应用主动向其进行注册,而eureka注册中心在发现了新的应用后,会持续向应用发送心跳,判断其是否存活,并定时向注册中心发送心跳包,告知其存活情况。

1.1创建一个maven项目:如图所示

1.2 向Pom中导入所需要的相应依赖

<parent>

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

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

<version>1.5.2.RELEASE</version>

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

</parent>

<properties>

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

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

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

</properties>

<dependencies>

<!--eureka server -->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka-server</artifactId>

</dependency>

<!-- spring boot test -->

<dependency>

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

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

<scope>test</scope>

</dependency>

</dependencies>

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Dalston.RC1</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

<build>

<plugins>

<plugin>

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

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

</plugin>

</plugins>

</build>

<repositories>

<repository>

<id>spring-milestones</id>

<name>Spring Milestones</name>

<url>https://repo.spring.io/milestone</url>

<snapshots>

<enabled>false</enabled>

</snapshots>

</repository>

</repositories>

1.2配置****application.yml

<table><tbody><tr><td style="vertical-align:top;"><p><span style="color:#00c832;">server:</span></p><p><span style="color:#000000;">&nbsp;&nbsp;</span><span style="color:#00c832;">port:</span><span style="color:#000000;">&nbsp;8888</span></p><p><span style="color:#00c832;">eureka:</span></p><p><span style="color:#000000;">&nbsp;&nbsp;</span><span style="color:#00c832;">instance:</span></p><p><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#00c832;">hostname:</span><span style="color:#000000;">&nbsp;localhost</span></p><p><span style="color:#000000;">&nbsp;&nbsp;</span><span style="color:#00c832;">client:</span></p><p><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><u><span style="color:#00c832;">registerWithEureka</span></u><span style="color:#00c832;">:</span><span style="color:#000000;">&nbsp;</span><strong><span style="color:#094f05;">false</span></strong></p><p><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><u><span style="color:#00c832;">fetchRegistry</span></u><span style="color:#00c832;">:</span><span style="color:#000000;">&nbsp;</span><strong><span style="color:#094f05;">false</span></strong></p><p><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><u><span style="color:#00c832;">serviceUrl</span></u><span style="color:#00c832;">:</span></p><p><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#00c832;">defaultZone:</span><span style="color:#000000;">&nbsp;http://${eureka.instance.hostname}:${server.port}/eureka/</span></p></td></tr></tbody></table>

1.3启动EurekaServer

<table><tbody><tr><td style="vertical-align:top;"><p><span style="color:#646464;">@SpringBootApplication</span></p><p><span style="color:#646464;">@EnableEurekaServer</span></p><p><strong><span style="color:#7f0055;">public</span></strong><span style="color:#000000;">&nbsp;</span><strong><span style="color:#7f0055;">class</span></strong><span style="color:#000000;">&nbsp;App {</span></p><p><strong><span style="color:#7f0055;">public</span></strong><span style="color:#000000;">&nbsp;</span><strong><span style="color:#7f0055;">static</span></strong><span style="color:#000000;">&nbsp;</span><strong><span style="color:#7f0055;">void</span></strong><span style="color:#000000;">&nbsp;main(String[] </span><span style="color:#6a3e3e;">args</span><span style="color:#000000;">) {</span></p><p><span style="color:#000000;">SpringApplication.</span><em><span style="color:#000000;">run</span></em><span style="color:#000000;">(App.</span><strong><span style="color:#7f0055;">class</span></strong><span style="color:#000000;">, </span><span style="color:#6a3e3e;">args</span><span style="color:#000000;">);</span></p><p><span style="color:#000000;">}</span></p><p><span style="color:#000000;">}</span></p><p>&nbsp;</p></td></tr></tbody></table>

运行之后输入http:localhost:8888就可以了。

本文转自 https://blog.csdn.net/qq_30764991/article/details/80032382,如有侵权,请联系删除。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

springcloud eureka.instance

1.在springcloud中服务的 InstanceID默认值是:${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance\_id:${server.port}},也就是:主机名:应用名:应用端口。如图1

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )