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

简介:

微服务里一个重要的概念就是服务注册与发现技术,当你有一个新的服务运行后,我们的服务中心可以感知你,然后把加添加到服务列表里,然后当你死掉后,会从服务中心把你移除,而你作为一个服务,对其它服务公开的只是服务名称,而不是最终的服务地址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在容器化部署里是动态的,所以我们不能像原来那样,把它写死了,这也就是服务发现产生的原因!

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

感谢各位阅读!

 本文转自博客园张占岭(仓储大叔)的博客,原文链接:微服务~Eureka实现的服务注册与发现及服务之间的调用,如需转载请自行联系原博主。

目录
相关文章
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
弹性计算 Kubernetes API
构建高效后端服务:微服务架构的深度剖析与实践####
本文深入探讨了微服务架构的核心理念、设计原则及实现策略,旨在为开发者提供一套系统化的方法论,助力其构建灵活、可扩展且易于维护的后端服务体系。通过案例分析与实战经验分享,揭示了微服务在提升开发效率、优化资源利用及增强系统稳定性方面的关键作用。文章首先概述了微服务架构的基本概念,随后详细阐述了其在后端开发中的应用优势与面临的挑战,最后结合具体实例,展示了如何从零开始规划并实施一个基于微服务的后端项目。 ####
|
NoSQL 前端开发 测试技术
👀探秘微服务:从零开启网关 SSO 服务搭建之旅
单点登录(Single Sign-On,简称SSO)是一种认证机制,它允许用户只需一次登录就可以访问多个应用程序或系统。本文结合网关和SaToken快速搭建可用的Session管理服务。
923 8
|
弹性计算 持续交付 API
构建高效后端服务:微服务架构的深度解析与实践
在当今快速发展的软件行业中,构建高效、可扩展且易于维护的后端服务是每个技术团队的追求。本文将深入探讨微服务架构的核心概念、设计原则及其在实际项目中的应用,通过具体案例分析,展示如何利用微服务架构解决传统单体应用面临的挑战,提升系统的灵活性和响应速度。我们将从微服务的拆分策略、通信机制、服务发现、配置管理、以及持续集成/持续部署(CI/CD)等方面进行全面剖析,旨在为读者提供一套实用的微服务实施指南。
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评。然而,“客户端不发送心跳检测”是使用中常见的问题之一。本文详细探讨了该问题的原因及解决方法,包括检查客户端配置、网络连接、日志、版本兼容性、心跳检测策略、服务实例注册状态、重启应用及环境变量等步骤,旨在帮助开发者快速定位并解决问题,确保服务正常运行。
224 5
|
监控 Nacos 数据安全/隐私保护
动态服务管理平台在微服务架构中的实践与探索
动态服务管理平台在微服务架构中的实践与探索
|
运维 监控 Nacos
探索微服务架构下的服务治理:动态服务管理平台的力量
探索微服务架构下的服务治理:动态服务管理平台的力量
|
监控 持续交付 数据库
构建高效的后端服务:微服务架构的深度解析
在现代软件开发中,微服务架构已成为提升系统可扩展性、灵活性和维护性的关键。本文深入探讨了微服务架构的核心概念、设计原则和最佳实践,通过案例分析展示了如何在实际项目中有效地实施微服务策略,以及面临的挑战和解决方案。文章旨在为开发者提供一套完整的指导框架,帮助他们构建出更加高效、稳定的后端服务。
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
690 6
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
331 1

热门文章

最新文章