初识微服务(上)

作为一名刚刚接触微服务的小白,在学习中获得了一下经验,总结了一些自己对springcloud的认识和理解,希望能与大家分享和交流,如有不对或者其他见解,欢迎指正(ps:本文多用通俗易懂的大白话,没有太多专业术语)。

对spring boot的认识:

在我看来,微服务是相对于传统服务来讲的:接下来简单的介绍下微服务和传统服务直接的区别:

传统服务:传统的单体架构

1.单体架构有比较复杂的结构;2.不易于维护,只要有一点需求的变更,就要把整个项目重新打包,发布;3.项目随时间越来越大,发布会越来越慢;4.不易更换框架等。

微服务:分布式架构

1.功能模块独立,每个服务运行于独立的进程;2.局部修改,易于部署;3.技术桟不受限等。

spring cloud

spring cloud是基于spring boot开发的,是对spring boot的封装&增强;是分布式系统的开发工具集(包括:服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等)。

接下来首先用到服务的发现注册:Eureka

Eureka来源于生产环境,springcloud对eureka的支持很好,每个微服务在启动时,都会将自己的ip和port注册到eureka上,接着服务会每隔30秒向eureka发起一次通知(心跳机制),如果服务连着3次(90秒)没有通知eureka,eureka就会认为该服务已经挂了,即会从注册中心剔除该服务;每台eureka server之间会同步服务注册表(高可用);客户端缓存:客户端缓存会把所以的注册表信息都缓存到本地,即使所有的eureka都挂了,短时间内也不影响服务提供者和消费者的调用。

以上是我对springcloud的简短说明,接下在说说我在demo开发的过程(本人亲测)。

第一步:创建maven/gradle项目,本文以maven项目为例。

可以自己创建maven项目,添加依赖到pom,这里我用的比较偷懒的方法,不管你用的IDE是Eclipse 还是 idea,你都可以在浏览器 :http://start.spring.io/ 创建项目,如图:

官网


这里你可以选择创建maven/gradle项目,可以添加你需要的各种依赖;(idea中集成的有此功能)。

在此创建两个工程:provider 和 customer,我们用RestTemplate来实现customer调用provider。

第二步:实现Eureka注册发现

1.通过上述,创建新工程my-eureka-service,加入spring-cloud-starter-eureka-service依赖,

2.在本服务的启动类上加注解 @EnableEurekaService/@EnableDiscoveryService;

3.在application.yml中加入配置。

eureka:instance:prefer-ip-address:true

eureka:client:service-url:defaultZone:http://localhost:8000/eureka/

启动,在浏览器中 http://localhost:8000  看到eureka主页,成功。但是现在还没有服务注册到Eureka上,接下来实现注册;

1.在provider工程中,加入spring-cloud-starter-eureka依赖;

2.在本服务到启动类上加注解@EnableEurekaClient/@EnableDiscoveryClient;

3.在applicatiom.yml中加入配置。

eureka:client:service-url:defaultZone:http://localhost:8000/eureka/

spring:application:name:myweb

启动,看到eureka主页中有provider工程极为成功。

接着以同样的方法,可以把服务消费者也注册到eureka上去,同样访问eureka,可以看到服务提供者和消费者都被注册在eureka上即为成功,接着调用测试demo验证即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容