上一篇文章我们介绍了eureka服务注册中心的搭建,这篇文章介绍一下如何使用eureka服务注册中心,搭建一个简单的服务端注册服务,客户端去调用服务使用的案例。

案例中有三个角色:服务注册中心、服务提供者、服务消费者,其中服务注册中心就是我们上一篇的eureka单机版启动既可,流程是首先启动注册中心,服务提供者生产服务并注册到服务中心中,消费者从服务中心中获取服务并执行。

服务提供

我们假设服务提供者有一个hello方法,可以根据传入的参数,提供输出“hello xxx,this is first messge”的服务

1、pom包配置

创建一个springboot项目,pom.xml中添加如下配置:

<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>复制代码

2、配置文件

application.properties配置如下:

spring.application.name=spring-cloud-producer
server.port=9000
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/复制代码

参数在上一篇都已经解释过,这里不多说。

3、启动类

启动类中添加@EnableDiscoveryClient注解

@SpringBootApplication
@EnableDiscoveryClient
public class ProducerApplication {public static void main(String[] args) {SpringApplication.run(ProducerApplication.class, args);}
}复制代码

4、controller

提供hello服务

@RestController
public class HelloController {@RequestMapping("/hello")public String index(@RequestParam String name) {return "hello "+name+",this is first messge";}
}复制代码

添加@EnableDiscoveryClient注解后,项目就具有了服务注册的功能。启动工程后,就可以在注册中心的页面看到SPRING-CLOUD-PRODUCER服务。

到此服务提供者配置就完成了。

服务调用

1、pom包配置

和服务提供者一致

<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>复制代码

2、配置文件

application.properties配置如下:

spring.application.name=spring-cloud-consumer
server.port=9001
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/复制代码

3、启动类

启动类添加@EnableDiscoveryClient@EnableFeignClients注解。

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}}复制代码

  • @EnableDiscoveryClient :启用服务注册与发现
  • @EnableFeignClients:启用feign进行远程调用

Feign是一个声明式Web Service客户端。使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。

4、feign调用实现

@FeignClient(name= "spring-cloud-producer")
public interface HelloRemote {@RequestMapping(value = "/hello")public String hello(@RequestParam(value = "name") String name);
}复制代码

  • name:远程服务名,及spring.application.name配置的名称

此类中的方法和远程服务中contoller中的方法名和参数需保持一致。

5、web层调用远程服务

将HelloRemote注入到controller层,像普通方法一样去调用即可。

@RestController
public class ConsumerController {@AutowiredHelloRemote HelloRemote;@RequestMapping("/hello/{name}")public String index(@PathVariable("name") String name) {return HelloRemote.hello(name);}}复制代码

到此,最简单的一个服务注册与调用的例子就完成了。

整体代码结构如下:

完整项目的源码来源

转载于:https://juejin.im/post/5c3450e6e51d4552475fa99c

JAVA springboot ssm b2b2c多用户商城系统源码(三):服务提供与调用相关推荐

  1. JAVA springboot ssm b2b2c多用户商城系统源码:服务消费(基础)...

    使用LoadBalancerClient 在Spring Cloud Commons中提供了大量的与服务治理相关的抽象接口,包括DiscoveryClient.这里我们即将介绍的LoadBalance ...

  2. JAVA springboot ssm b2b2c多用户商城系统源码-SSO单点登录之OAuth2.0登录流程(2)

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...

  3. JAVA springboot ssm b2b2c多用户商城系统源码(三)SpringBoot用JdbcTemplates访问Mysql

    准备工作 jdk 1.8 maven 3.0 idea mysql 初始化mysql: -- create table `account` DROP TABLE `account` IF EXISTS ...

  4. (八)JAVA springcloud ssm b2b2c多用户商城系统源码:配置中心服务化和高可用

    server端改造 1.添加依赖 <dependencies><dependency><groupId>org.springframework.cloud</ ...

  5. JAVA ssm b2b2c多用户商城系统源码 (十二)springboot集成apidoc

    首先声明下,apidoc是基于注释来生成文档的,它不基于任何框架,而且支持大多数编程语言,为了springboot系列的完整性,所以标了个题. 一.apidoc简介 apidoc通过在你代码的注释来生 ...

  6. JAVA ssm b2b2c多用户商城系统源码

    最近公司要开发商城,让我多方咨询,最后看了很多,要不就是代码.表字段注释不全,要不就是bug多,要么就是文档缺少,最后决定自己开发一套商城. 下面是开发的一些心得体会,权且记录下来,给自己做个记录把. ...

  7. JAVA b2b2c多用户商城系统源码-服务发现服务端EurekaServer微服务

    一.大致介绍 1.众所周知,在现在互联网开发中,访问地址的IP和端口号是动态的,一个服务停掉再重新启用后IP和端口就可能发生了改变,所以用硬编码是肯定不行了.于是我们尝试使用新的技术来解决这一难题.需 ...

  8. JooLun B2B2C多用户商城系统源码—多终端,无加密,不限域名,专业二开

    Uniapp是目前商城开发前端技术中的热门,Uniapp的大火让开发者和企业都很兴奋,对于uniapp开发的商城源码,优点非常明显,就是开发成本低,uniapp商城源码编写一套源代码就能打包成小程序. ...

  9. JAVA springcloud ssm b2b2c多用户商城系统-docker-hystrix-dashboard-turbine(九)

    简介 spring cloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.Hystrix的主要优点之一是它收集关于每个HystrixCommand的一套指标.Hystrix仪表 ...

最新文章

  1. Bootstrap 简洁、直观、强悍、移动设备优先的前端开发框架,让web开发更迅速、简单。...
  2. MyBatis学习总结(一)——MyBatis快速入门
  3. postgresql 备份恢复(一)
  4. 数据科学竞赛-数据挖掘赛流程
  5. Google Maps API 初级2
  6. plot函数_R语言基础绘图函数散点图~跟着Nature Communications学画图~Figure1
  7. 米莱狄机器人怎么那么多_米莱狄究竟应该怎么玩?
  8. linux sftp 增加用户(centos)
  9. 6,EWF写保护功能介绍与使用
  10. 2021MySql-8.0.26安装详细教程(保姆级)
  11. RS422-RS485-RS232标准接线
  12. 技术图文:如何利用 C#+Echarts 绘制 Smoothed Line Chart?
  13. 计算机第四轮学科评估排名,最权威中国高校学科排名,全国第四轮学科评估结果出炉!...
  14. mysql where clause is ambiguous_mysql …in where clause is ambiguous
  15. 网页浏览flash时不停黑屏
  16. java的Map接口
  17. 轻量化网络:ShuffleNet v2解析
  18. 教学|3D建模之,游戏场景创建大致流程
  19. Ubuntu apt卸载
  20. 史上最强《Java 开发手册》泰山版王者归来!

热门文章

  1. databus mysql搭建_databus bootstrap 部署
  2. QT每日一练day5:QLabel和按钮窗口打印功能
  3. 视觉SLAM-显示相机的位姿
  4. html渲染json的插件,[ json editor] 如何在网页中使用Json editor 插件
  5. qq如何用其他进制登录
  6. java 类加载的机制面试题_java 类加载机制 阿里面试题
  7. C++socket编程(七):7.2 XHttp项目创建接收浏览器请求
  8. java 赋值md5_Hook Java API以获得MD5加密前数据
  9. 怎么把文件上传云服务器上,如何把文件上传到云服务器上
  10. qomo linux最新版本,“珠峰”Qomo Linux新版本将迎来重大变革