上一篇文章已经说明了一下,关于spring boot创建maven项目的简单步骤,相信很多熟悉Maven+Eclipse作为开发常用工具的朋友们都一目了然,这篇文章主要讲解一下,构建spring boot+spring cloud实现微服务的框架搭建过程,不过在此之前我们要先了解一下spring boot+spring cloud服务框架的功能组建和一些常提起的概念。

1:注册中心,spring boot+spring cloud使用Eureka作为服务的注册中心,早dubbo+zookeeper的微服务中也常使用zookeeper作为服务的注册中心

2:服务治理,和服务的调度

3:客户端负载均衡(包括常用的三种负载均衡策略)

4:服务远程调度的容错保护,即电路设计中所说到的保险丝(熔断机制)

5:spring cloud的声明式远程调度

6:服务路由和服务的转发

笔者这里个人感觉作为spring boot+spring cloud构建的微服务,熟悉上面几点的概念,然后带着框架的概念再去有点有面的看框架设计的本质,起全局性和概括性都了然于胸。

好了废话不多说下面我们开始创建spring boot+spring cloud的微服务吧。

(声明:JDK 1.8,spring boot:1.5.10.RELEASE,spring cloud:Edgware.SR2)

一:创建服务的注册中心

File---->new----->other

如下图,我们选择Eureka Discov,和Eure Server两个模块的组件。搭建完成我们来看一下搭建完成后,我们来看一下搭建好的项目目录结构,以及项目所使用到的maven组件间的相互依赖。

注:这里为什么要多啰嗦几句,来说明一下为什么,因为再使用maven作为jar包间的相互依赖,常常会出翔jar包版本的冲突,spring boot和spring cloud就有版本的冲突。不过Eclipse再我们选择spring Boot版本的时候就帮我们选定了最兼容的版本,这里小伙伴本要特别注意。不然踩到坑了你会很痛苦。所有在别人项目里跑的66的代码到你这里就变得四面楚歌。

这是项目的结果图,再上一篇文章中我们介绍过了,这里就不过多的介绍,我们看看注册中心的代码,如下,蓝色部分,需要我们加上注册中心的注解表示。@EnableEurekaServer

我们看看maven的jar包依赖

下面是,application.properties的配置文件。

为方便搭建的复制粘贴这里直接贴上代码如下,

#设置注册中心端口
server.port=8000
#注入的服务应用名称
spring.application.name=registry-center
#安全认证
security.basic.enabled=true
security.user.name=top-registry-center
security.user.password=123456
security.user.role=admin
eureka.instance.hostname=peer1
#关闭注册中心,注册自己到本地服务
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
#注册中心控制台地址
#eureka.client.serviceUrl.defaultZone=http://114.55.73.147:18020/eureka/
#无关紧要的注册中心配置信息,标记注册中心的健康信息
eureka.instance.statusPageUrlPath=/info
eureka.instance.healthCheckUrlPath= /health

下面我们,启动main方法

RegistryCenterApplication,如下所示,我们发现多了spring Boot App,我们选中启动

然后浏览器打开:输入local host:8000

最后补充一点,看看如下笔者另外的一个访问路径:peer1:8000,

这里是要配置windows的host主机名作为映射的。

如下所示:

我们看到127.0.0.1 localhost映射的就是我们的本机的地址

我们在这里多加一下peer1的注册中心地址配置

spring Boot+spring Cloud实现微服务详细教程第二篇的更多相关文章

  1. spring Boot+spring Cloud实现微服务详细教程第一篇

    前些天项目组的大佬跟我聊,说项目组想从之前的架构上剥离出来公用的模块做微服务的开发,恰好去年的5/6月份在上家公司学习了国内开源的dubbo+zookeeper实现的微服务的架构.自己平时对微服务的设 ...

  2. Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务

    Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具:Spr ...

  3. Spring Boot 和 Docker 实现微服务部署

    Spring boot 开发轻巧的微服务提供了便利,Docker 的发展又极大的方便了微服务的部署.这篇文章介绍一下如果借助 maven 来快速的生成微服务的镜像以及快速启动服务. 其实将 Sprin ...

  4. Spring boot学习1 构建微服务:Spring boot 入门篇

    Spring boot学习1 构建微服务:Spring boot 入门篇 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...

  5. 使用Ratpack与Spring Boot构建高性能JVM微服务

    在微服务天堂中Ratpack和Spring Boot是天造地设的一对.它们都是以开发者为中心的运行于JVM之上的web框架,侧重于生产率.效率以及轻量级部署.他们在服务程序的开发中带来了各自的好处.R ...

  6. 基于Spring Cloud的微服务入门教程

    (本教程的原地址发布在本人的简书上:http://www.jianshu.com/p/947d57d042e7,若各位看官有什么问题或不同看法请在这里或简书留言,谢谢!) 本人也是前段时间才开始接触S ...

  7. (子文章)Spring Boot搭建两个微服务模块

    目录 1. 创建工程和user-service模块 1.1 创建空工程 1.2 在空工程里新建Module 2. 配置文件 2.1 pom.xml 2.2 application.yml 3. 代码 ...

  8. spring boot 集成 zookeeper 搭建微服务架构

    PRC原理 RPC 远程过程调用(Remote Procedure Call) 一般用来实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地系统资源一样,通过网络传输去访问远程系统资源,R ...

  9. 在Azure DevOps Server中运行基于Spring Boot和Consul的微服务项目单元测试

    1 概述 谈到微服务架构体系,绕不开服务发现这个功能.服务发现机制是简化微服务配置.实现容灾.水平扩缩容.提高运维效率的重要方式.在服务发现工具中,Consul在部署和使用方面与容器结合的天衣无缝,成 ...

随机推荐

  1. 深刻理解iosBlock

    深刻理解iosBlock ///一个控制器里的方法 - (void)setRefreshHeader { ACWeakSelf(self); self.tableView.mj_header = [M ...

  2. linux dhcp搭建及pxe无人值守装机

    DHCP动态主机配置协议:由IETF组织制定,用来简化主机ip地址分配管理可以自动分配的入网参数ip地址/子网掩码/广播地址默认网关地址DNS服务器地址 ----------------------- ...

  3. for、for in和while以及do while

    for循环:一般用在已知判断条件的循环; for(变量初始化;循环条件判断;循环后的执行){ 代码块 } //变量初始化可以省略,但是分号不能省.有多个的话用逗号隔开 //循环条件判断是true还是f ...

  4. CAN总线基础知识(一)

    1.CAN总线是什么? CAN(Controller Area Network)是ISO国际标准化的串行通信协议.广泛应用于汽车.船舶等.具有已经被大家认可的高性能和可靠性. CAN控制器通过组成总线 ...

  5. Linux查看内存使用量和交换区使用量

    Linux查看内存使用量和交换区使用量 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ free -m total used free shared buffe ...

  6. Cookie操作类、压缩、序列化

    1.cookie类 CartCookie.cs using System; using System.Data; using System.Configuration; using System.We ...

  7. Django学习-21-表关系参数

    一对多关系 ForeignKey(ForeignObject) # ForeignObject(RelatedField) to, # 要进行关联的表名 to_field=None, # 要关联的表中 ...

  8. “玲珑杯”ACM比赛 Round #4 B Best couple

    一眼的KM,但是建图的时候记得不用的点设为0,点少的一边补齐,这个非常重要,因为KM追求完全匹配,如果无法完全匹配会非常慢 #include<bits/stdc++.h> using na ...

  9. 2015 Multi-University Training Contest 4 Walk Out

    Walk Out Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total S ...

  10. AJAX的简洁写法

    // ajax操作 $('#btn').on('click',function(){ var url = "{:url('confirm')}"; var actual_money ...