微服务里一个重要的概念就是服务注册与发现技术,当你有一个新的服务运行后,我们的服务中心可以感知你,然后把加添加到服务列表里,然后当你死掉后,会从服务中心把你移除,而你作为一个服务,对其它服务公开的只是服务名称,而不是最终的服务地址URL,这对于云平台,容器化架构来说是非常重要的!

  1. 安装单独的Eureka服务(server)

  2. 服务注册-aspnetcore建立Eureka客户端(client)

  3. 服务发现-实现服务与服务的调用

一 安装单独的Eureka服务

  1. 安装tomcat,到apache官网http://tomcat.apache.org下载tomcat

  2. 下载Eureka,可以到http://mvnrepository.com/artifact/com.netflix.eureka/eureka-server选择一下版本下载

  3. 配置端口,默认是8080,tomcat\webapps\eureka\WEB-INF\classes\eureka-client.properties

  4. 重启tomcat服务即可

二 aspnetcore建立Eureka客户端(client)

  1. nuget添加包包Pivotal.Discovery.Client

  2. 在startup.cs里添加客户端的自动发现代码(相对于eureka是客户端,事实上它是微服务里的一种服务)

  3. program里添加对某个端口的监听

  4. 将EurekaServer的地址添加到appsettings里

  5. 启动项目,然后去服务中心查看自己的新服务

在startup.cs里

       public void ConfigureServices(IServiceCollection services){services.AddDiscoveryClient(Configuration);services.AddMvc();}        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.public void Configure(IApplicationBuilder app, IHostingEnvironment env){            if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.UseMvc();app.UseDiscoveryClient();}

program里添加对某个端口的监听

 public static IWebHost BuildWebHost(string[] args) =>WebHost.CreateDefaultBuilder(args).UseStartup<Startup>().UseUrls("http://*:8010").Build();

将EurekaServer的地址添加到appsettings里,其中8010是自己监听的端口,Order是自己的名称

 "spring": {    "application": {      "name": "Order"}},  "eureka": {    "client": {      "serviceUrl": "http://localhost:8080/eureka/V2/",      "shouldFetchRegistry": false,      "shouldRegisterWithEureka": true},    "instance": {      "port": 8010}

然后启动项目,在你的服务中心就可以看到新加的服务了(http://localhost:8080/eureka/),这就是服务的注册!

三 服务发现-实现服务与服务的调用

我们在某个微服务的项目里,可以调用其它的服务,这类似于一种请求链的过程,以后我们讲spring cloud里会说其它相关的技术

       [HttpGet]             public IEnumerable<string> Get(){DiscoveryClient _discoveryClient = new DiscoveryClient(new EurekaClientConfig{EurekaServerServiceUrls = "http://localhost:8080/eureka/V2/",ProxyHost = "http://localhost:8080/eureka/V2/",ProxyPort = 8080,});            //得到服务中心所有服务和它的Url地址foreach (var item in _discoveryClient.Applications.GetRegisteredApplications())                yield return $"{item.Name}={item.Instances.FirstOrDefault().HomePageUrl}";}

页面显示的结果中我们看到了所有的服务,它的名称和它的URL,这种URL在容器化部署里是动态的,所以我们不能像原来那样,把它写死了,这也就是服务发现产生的原因!

好了,今天对于服务注册与服务发现就说到这里,都是比较实干的东西!

相关文章:

  • 手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)

  • spring cloud+dotnet core搭建微服务架构:服务发现(二)

原文地址:http://www.cnblogs.com/lori/p/7598058.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

微服务~Eureka实现的服务注册与发现及服务之间的调用相关推荐

  1. SpringCoud - 基础入门(服务注册与发现、服务调用、服务降级与熔断篇)

    SpringCloud:是一系列框架的有序集合,也是一套完整的微服务解决方案.利用SpringBoot的开发便利巧妙的简化了分布式系统基础设施的开发,如发现注册.配置中心.消息总线.负载均衡.断路器. ...

  2. 微服务架构 — 服务治理 — 服务注册与发现、服务订阅与通知

    目录 文章目录 目录 应用与服务的关系 服务注册与发现(Service Registration and Discovery) Service Registration Service Registr ...

  3. feign扫描_微服务通信之feign的注册、发现过程

    前言 feign 是目前微服务间通信的主流方式,是springCloud中一个非常重要的组件.他涉及到了负载均衡.限流等组件.真正意义上掌握了feign可以说就掌握了微服务. 一.feign的使用 f ...

  4. Consul 服务注册与发现03—— 服务消费者

    pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  5. Zookeeper 服务注册与发现02——服务消费者

    pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  6. 微服务架构-实现技术之三大关键要素1服务治理:服务注册中心+服务发布与注册+服务发现与调用+服务监控

    目录 一.服务注册中心:注册中心核心功能+实现策略 1.注册中心核心功能 2.注册中心实现策略 二.服务发布与注册 三.服务发现与调用 四.服务监控 基本思路:日志埋点 基本目标: 基本定位: 基本策 ...

  7. SpringCloud微服务:Eureka组件之服务注册与发现

    一.Eureka基本架构 1.Eureka角色结构图 角色职责如下: 1).Register:服务注册中心,它是一个Eureka Server ,提供服务注册和发现功能. 2).Provider:服务 ...

  8. 《深入理解 Spring Cloud 与微服务构建》第六章 服务注册和发现 Eureka

    <深入理解 Spring Cloud 与微服务构建>第六章 服务注册和发现 Eureka 文章目录 <深入理解 Spring Cloud 与微服务构建>第六章 服务注册和发现 ...

  9. gradle 指定springcloud 版本_SpringCloud微服务架构开发实战:实现服务注册与发现

    实现服务的注册与发现 在前面分别用Eureka Server和Eureka Client来搭建了一台注册服务器,以及多个Eureka Client客户端.Eureka Client在启动后,就会将自己 ...

最新文章

  1. Linker加载so失败问题分析
  2. tableau应用实战案例(五十)-销售业绩的tableau可视化案例
  3. 【视频】vue 插值表达式之三元运算符的使用
  4. android 流量统计不准确_汽车里程表上显示的百公里油耗准确吗?是不是真的是欢乐表...
  5. 微型计算机电源的选购应注意哪些问题,购买小功率ups电源的注意事项
  6. web开发的一些材料
  7. 静态导入 java面试_Java面试系列【静态导入】-静态导入,基础篇
  8. 优化理论06-----共轭梯度法、线性共轭方向法、HS、FR-CG、PR-CG、PR+-CG
  9. Netty权威指南学习笔记
  10. c 程序设计语言试卷,C语言程序设计试题及答案
  11. 准备好了吗?GNN 图神经网络 2021 年的5大应用热点
  12. wo-27s管理员账户和密码_开机密码忘了怎么解决
  13. HSL、RGB颜色转换
  14. 执行引擎的工作过程、Java代码编译和执行的过程、解释器、JIT编译器
  15. 使用opencv-python快速读取视频——进阶版
  16. vulnhub靶场,bulldog1
  17. Zigbee设备入网流程分析(关联方式)
  18. 第1天-代码随想录刷题训练| 704二分查找、26移除元素
  19. 实习生招聘--CVTE笔试【1】
  20. 技术出身能做好管理吗?——能!

热门文章

  1. hibernate级联操作详解
  2. OpenSSL--Window生成证书实战
  3. 【转】卖场开设社区便利店,不仅卖货,还有家政服务、售后衔接等(图)
  4. 聊一聊基于Nacos的metadata完成服务间的AB测试
  5. 客户要求ASP.NET Core API返回特定格式,怎么办?
  6. C#垃圾回收机制(GC)
  7. iNeuOS工业互联平台,发布消息管理、子用户权限管理、元件移动事件、联动控制、油表饼状图和建筑类设备驱动,v3.4版本...
  8. 听说你刚转了Java?准备转回.NET吧!
  9. 年轻有为的老黄2020
  10. IdentityServer4系列 | 资源密码凭证模式