文章目录

  • 服务提供方:
  • 服务消费者
  • 测试

先启动本地的nacos中心
代码:

服务提供方:

依赖:

<dependencies><!--SpringCloud ailibaba nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- SpringBoot整合Web组件 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--日常通用jar包配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

配置:

server:port: 9001spring:application:name: nacos-payment-providercloud:nacos:discovery:server-addr: localhost:8848 #配置Nacos地址management:endpoints:web:exposure:include: '*'

controller:

@RestController
public class PaymentController
{@Value("${server.port}")private String serverPort;@GetMapping(value = "/payment/nacos/{id}")public String getPayment(@PathVariable("id") Integer id){return "nacos registry, serverPort: "+ serverPort+"\t id"+id;}
}

启动类:

@EnableDiscoveryClient
@SpringBootApplication
public class PaymentMain9001
{public static void main(String[] args) {SpringApplication.run(PaymentMain9001.class, args);}
}

服务消费者

依赖:

   <dependencies><!--SpringCloud ailibaba nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- 引入自己定义的api通用包,可以使用Payment支付Entity --><dependency><groupId>com.atguigu.springcloud</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency><!-- SpringBoot整合Web组件 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--日常通用jar包配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

配置:

server:port: 83spring:application:name: nacos-order-consumercloud:nacos:discovery:server-addr: localhost:8848#消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:nacos-user-service: http://nacos-payment-provider

service:

@FeignClient(value = "nacos-payment-provider",fallback = PaymentFallbackService.class)
public interface PaymentService
{@GetMapping(value = "/paymentSQL/{id}")public CommonResult<Payment> paymentSQL(@PathVariable("id") Long id);
}
@Component
public class PaymentFallbackService implements PaymentService
{@Overridepublic CommonResult<Payment> paymentSQL(Long id){return new CommonResult<>(44444,"服务降级返回,---PaymentFallbackService",new Payment(id,"errorSerial"));}
}

config:

@Configuration
public class ApplicationContextConfig
{@Bean@LoadBalancedpublic RestTemplate getRestTemplate(){return new RestTemplate();}
}

controller:

@RestController
@Slf4j
public class OrderNacosController
{@Resourceprivate RestTemplate restTemplate;@Value("${service-url.nacos-user-service}")private String serverURL;@GetMapping(value = "/consumer/payment/nacos/{id}")public String paymentInfo(@PathVariable("id") Long id){return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);}}

启动类:

@EnableDiscoveryClient
@SpringBootApplication
@EnableFeignClients
public class OrderNacosMain84
{public static void main(String[] args) {SpringApplication.run(OrderNacosMain84.class, args);}
}

测试

查看nacos管理界面:

访问接口:

nacos+openfeign服务提供和服务消费远程调用代码简单实例2相关推荐

  1. 学习笔记-RPC远程调用概念和实例

    RPC远程调用概念和实例 一定要注意顺序,先hook,然后invoke,再rpc 逆向三段: 第三段RPC:Remote Procedure Call 远程调用 FRIDA精髓:远程调动 frida( ...

  2. 我眼中的服务提供和服务消费

    服务提供和消费脑图 服务提供和消费脑图 参见: 服务提供者, 服务消费者, 服务注册中心 服务提供者 1.服务提供者启动,解析xml文件中配置的服务,这里使用Dom4j解析. 2.将服务的一些相关信息 ...

  3. eureka组件服务集群,feign远程调用,生产者服务集群,ribbon组件(负载均衡),hystrix组件(断路器),zuul(网关路由)

    一.搭建Eureka服务集群 1.创建和一个父module(用于依赖管理) a. 配置pom文件 <?xml version="1.0" encoding="UTF ...

  4. 服务提供和服务支持的区别

    Service Support 描述的是IT Team的日常运维流程,主要面向"用户"(也就是IT 系统的日常使用者):         Service delivery  描述的 ...

  5. nacos作注册中心+feign接口调用进行服务提供和服务消费代码示例

    文章目录 依赖 服务提供者 服务消费者 验证 依赖 <parent><groupId>org.springframework.cloud</groupId>< ...

  6. android模拟打印机服务,Android下的POS打印机调用的简单实现

    本文基于GP58系列,它可以兼容ESC/POS指令集,对EPSON的打印机通用. Android下的设备调试,如果设备提供了驱动,按照厂家的驱动调试即可:设备未提供驱动,只能按照通用的方法进行调试.这 ...

  7. SpringCloud微服务架构,Spring Cloud 服务治理(Eureka,Consul,Nacos),Ribbon 客户端负载均衡,RestTemplate与OpenFeign实现远程调用

    什么是SpringCloud 微服务架构 • "微服务"一词源于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到 http://mar ...

  8. 架构设计:远程调用服务架构设计及zookeeper技术详解(上篇)

    一.序言 Hadoop是一个技术生态圈,zookeeper是hadoop生态圈里一个非常重要的技术,当我研究学习hadoop的相关技术时候,有两块知识曾经让我十分的困惑,一个是hbase,一个就是zo ...

  9. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

最新文章

  1. Java 8中的时间日期库DateTime API及示例
  2. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件)
  3. activiti实现跳转节点的方法
  4. 关于编写流程的一些经验
  5. android WebView总 结
  6. 《Essential C++》笔记之设计一个泛型算法(二)
  7. 由于UPS故障,造成所有服务器断电。( 重启后,机器的IP也许会发生改变(包括服务器))
  8. MR Mapper类
  9. 微服务学习第四十七节 Nacos一致性协议:Distro协议
  10. python如何设置当前工作路径?
  11. deactivate不能关闭venv
  12. grok logstash配置_logstash grok匹配
  13. 新版微信页面底部导航问题
  14. Java集合判空/非空
  15. vue(移动端)使用高德地图实现精准定位
  16. 【STM8】PWM 捕获实战:占空比和频率(TIM2)
  17. Python的面向对象,魔术方法、类的三大特征、自省、实例空间、经典类与新式类
  18. 关于word和excel实现套打快递单的问题
  19. lol桌面图标在计算机哪找,玩英雄联盟重新创建桌面图标的方法
  20. Flink教程(27)- Flink Metrics监控

热门文章

  1. linux 支持的字体命令,Linux设置显示中文和字体
  2. vue中怎么点击修改文字_Vue.js点击切换按钮改变内容
  3. Android Studio同步失败设置代理,Android Studio如何设置代理?
  4. Mysql和mono,.net – Mac OS X Mono和MySql连接器问题
  5. 学妹问我:怎么从网页下载所有图片?我答:天机不可泄露
  6. 三十二、深入Python中的文件操作
  7. 五十六、TodoList的三种写法,祭奠我的前端之路
  8. 二、数据分析前,打下数据处理基础(上)
  9. 五、Requests库详细的用法
  10. 小白入门商业数据分析师的课程测评