微服务基础实践一:基于rest实现服务之间的调用
一:概念
所谓的微服务,就是把以前单体的一个应用根据数据库或者业务等等进行拆分,实现解耦,同时也为以后的服务应用升级提供可控性。通俗一点,就是应用加功能更快并且性能也更好,最重要的是,不会影响到别的服务,比如说你的系统把用户管理单独弄成了一个微服务,那么有一天你的需求变更了,要给用户增加一个点赞功能,按照旧的做法,需要重新部署应用,但是如果你的系统采用的是微服务的架构,这个时候就不需要停掉整个系统然后去升级,只需要简单的对用户这个服务进行升级,并且系统在升级期间主要的其他功能也是正常使用的。
我们先来说说大家最疑惑的一点,就是单体应用拆成微服务的时候,就变成多个项目,那么项目之间是如何进行调用的呢?这里可以用rest风格服务调用。
二:使用
1、新建一个springboot项目
这步太简单了,不会的自己百度idea新建一个springboot项目
2、先写serviece2项目的内容
其实就是写一个简单的restful接口,并且返回一个sting字符串
如图,application.yml里面就只设置了访问端口为8080
接下来就是写service1,然后通过RestTemplate去请求service2的请求地址,实现接口的调用,同样,application.yml里面只设置了请求服务1的端口为8081
最后就是测试,启动两个项目,我们想要通过service1去访问service的一个接口,按照我们的代码就是访问http://localhost:8081/callservice2
那么现在一个最简单的服务之间的调用就出来了。在微服务springcloud中,我们还需要一个注册中心,各个服务之间的发现和注册都是通过中心进行集中管理。cloud里面常用的有eureka和connul和zookeeper。并且,cloud中我们用feign去做服务之间的调用。跟这个rest方式对比就是比较简洁和方便。
留下一个问题。怎么把这两个项目弄成一个maven多模块的项目。
答案你们可以自己写,我把它写好最后放百度云上面了。
链接:https://pan.baidu.com/s/1PQDIopnG15SvU9DJlOZtdQ 密码:oly0 (maven父子项目模版)
链接:https://pan.baidu.com/s/1TgE6rKctDZavDNjc7rN19Q 密码:k7kl (本文案例)
下一个内容就是实现负载均衡的spirngcloud注册中心eureka。
这里先说下springcloud微服务架构的一些理论知识。能力有限,只能讲我知道的东西,不喜勿喷,欢迎加我微信15626154768
整个Web应用组织为一系列小的Web服务。这些小的Web服务可以独立地编译及部署,并通过各自暴露的API接口相互通讯。它们彼此相互协作,作为一个整体为用户提供功能,却可以独立运行扩展。这其中多亏了各个组建之间的相互协作