eureka

造轮子-AgileConfig基于.NetCore的一个轻量级配置中心

生来就可爱ヽ(ⅴ<●) 提交于 2020-07-26 23:50:22
微服务确实是行业的一个趋势,我自己也在把一些项目往微服务架构迁移。玩微服务架构配置中心是一个绕不过去的东西,有很多大牌的可以选,比如spring-cloud-config,apoll,disconf等等。而我为什么还要造一个轮子呢?一来这些都不是.net实现的,我就想试试用.net core实现一个,而且他们也对.net不太友好,也只有apoll提供了官方的.net客户端。二来这些组件都太重量级了,比如apoll,光跑起来就要部署多个节点(admin,portal,meta sevice)还要依赖eureka。很多旧的项目往微服务迁移的时候并不是一下次全部调整完成的,可能是一步步来的,比如先把所有的服务都容器化,并没有使用微服务全家桶。而且有的项目也不需要微服务全家桶,毕竟微服务不是银弹,很多项目单体结构就足够了,有些项目传统的SOA架构也可以了。(唠叨一句,那种毫无流量毫无并发的项目,几人几天就搞完的强上微服务真的好吗?)但是这些项目也可能是分布式的,容器化部署的,那么这些项目我觉得也是需要配置中心的,因为在分布式、容器化环境下更改配置实在是太麻烦了。可以说配置中心并不是微服务独有的。基于以上原因我提炼了一些配置中心必备的功能,做的尽量简单(陋),开发了AgileConfig,为.net core的生态尽一份绵薄之力。 Github求star: AgileConfig

Spring Boot (十): Spring Boot Admin 监控 Spring Boot 应用

一世执手 提交于 2020-07-26 17:01:34
1. 引言 ,在微服务的体系中,我们的服务数量是非常多的,这同样不方便我们人工管理,在这样的背景下,诞生了另一个开源软件,也是本篇文章要介绍的: Spring Boot Admin 。(了解源码可+求求: 1791743380) 2. Spring Boot Admin 简介 Spring Boot Admin 是一个 Web 应用,用于管理和监视 Spring Boot 应用程序的运行状态。每个 Spring Boot 应用程序都被视为客户端并注册到管理服务器。背后的数据采集是由 Spring Boot Actuator 端点提供。前端 Spring Boot Admin UI 展示使用 VueJs 将数据展示在前端。 本文将介绍如何使用 Spring Boot Admin 对 Spring Boot 进行监控。 3. 工程实战 3.1 创建父工程 spring-boot-admin 依赖文件 pom.xml 如下: 代码清单:spring-boot-admin/pom.xml <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding

一起来学Spring Cloud | 第四章:服务消费者 ( Feign )

不羁的心 提交于 2020-07-26 07:03:48
上一章节,讲解了SpringCloud如何通过RestTemplate+Ribbon去负载均衡消费服务,本章主要讲述如何通过Feign去消费服务。 一、Feign 简介: Feign是一个便利的rest框架,在Ribbon的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法,不需要自己构建http请求,简化了调用。但是最后的原理还是通过ribbon在注册服务器中找到服务实例,然后对请求进行分配。 在工作中,我们基本上都是使用Feign来进行服务调用,因为Feign使用起来就像是调用自身本地的方法一样,而感觉不到是调用远程方法,相当舒服,它主要有3个优点。 1. feign本身里面就包含有了ribbon,具有负载均衡的能力 2. fegin是一个采用基于接口的注解的编程方式,更加简便 3. fegin整合了Hystrix,具有熔断的能力 二、 准备工作: 1. 启动eureka-server 工程,eureka注册中心就启动了。 2. 启动springcloud-eureka-client工程,springcloud-eureka-client工程的端口为9300。 3. 将springcloud-eureka-client工程的application.properties文件中端口改成9400,然后再启动springcloud-eureka-client

SpringCloud之Hystrix

﹥>﹥吖頭↗ 提交于 2020-07-26 04:39:17
在微服务架构中,微服务之间互相依赖较大,相互之间调用必不可免的会失败。但当下游服务A因为瞬时流量导致服务崩溃,其他依赖于A服务的B、C服务由于调用A服务超时耗费了大量的资源,长时间下去,B、C服务也会崩溃。Hystrix就是用来解决服务之间相互调用失败,避免产生蝴蝶效应的熔断器,以及提供降级选项。Hystrix通过隔离服务之间的访问点,阻止它们之间的级联故障以及提供默认选项来实现这一目标,以提高系统的整体健壮性。 它主要解决什么问题? 用来避免由于服务之间依赖较重,出现个别服务宕机、停止服务导致大面积服务雪崩的情况。 一、Maven依赖 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud<

spring cloud 整合 springboot-admin 监控中心

你。 提交于 2020-07-26 01:02:31
Admin监控应用 Spring Boot提供的监控接口,例如:/health、/info等等,实际上除了之前提到的信息,还有其他信息业需要监控:当前处于活跃状态的会话数量、当前应用的并发数、延迟以及其他度量信息。下面我们来了解如何使用spring-boot-admin来监控我们的系统。 admin-server-ui pom.xml 配置: < parent > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-parent </ artifactId > < version > 1.4.3.RELEASE </ version > < relativePath /> </ parent > < dependencyManagement > < dependencies > < dependency > < groupId > org.springframework.cloud </ groupId > < artifactId > spring-cloud-dependencies </ artifactId > < version > Camden.SR5 </ version > < type > pom </ type > < scope >

Zuul学习(一)——登陆鉴权

随声附和 提交于 2020-07-24 17:45:06
1.项目模块图 2.首先得有一个eureka的服务,所有的服务都是注册到eureka上的 3.在pom.xml中引入zuul相关的依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> 4.编写application.yml,这里先配置user模块的路由地址 spring: application: name: zuul # 服务端口号 server: port: 9050 #Eureka 相关配置 eureka: client: service-url: defaultZone: http://localhost:9000/eureka/ # 构建路由地址 zuul: routes: # 这里可以自定义 user: /api/user/** 5.在启动类添加相应的注解 @SpringBootApplication @EnableZuulProxy @EnableEurekaClient public class ZuulApplication { public static void main(String[] args) { SpringApplication.run

SpringCloud入门学习(Java分布式基础)

依然范特西╮ 提交于 2020-07-24 04:56:59
你好我是辰兮,很高兴你能来阅读,本篇文章是关于SpringCloud分布式微服务框架的学习,初识SpringCloud接下来会整理更多相关知识,分享获取新知,大家一起进步。 1.JAVA基础面试常考问题 : JAVA面试基础常考题汇集 2.JAVA面试SSM框架常考 : JAVA框架面试题汇集 文章目录 一、Spring Cloud简介 二、Spring Cloud核心子项目 三、Spring Cloud面试常考 一、Spring Cloud简介 Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式环境中运行良好,包括开发人员自己的笔记本电脑,裸机数据中心,以及Cloud Foundry等托管平台。 Spring Cloud是一个基于Spring Boot实现的云原生应用开发工具,它为基于JVM的云原生应用开发中涉及的配置管理、服务发现、熔断器、智能路由、微代理、控制总线、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 ①首先,尽管Spring Cloud带有“Cloud”这个单词,但它并不是云计算解决方案,而是在SpringBoot基础之上构建的

造轮子-AgileConfig基于.NetCore的一个轻量级配置中心

隐身守侯 提交于 2020-07-23 20:00:26
微服务确实是行业的一个趋势,我自己也在把一些项目往微服务架构迁移。玩微服务架构配置中心是一个绕不过去的东西,有很多大牌的可以选,比如spring-cloud-config,apoll,disconf等等。而我为什么还要造一个轮子呢?一来这些都不是.net实现的,我就想试试用.net core实现一个,而且他们也对.net不太友好,也只有apoll提供了官方的.net客户端。二来这些组件都太重量级了,比如apoll,光跑起来就要部署多个节点(admin,portal,meta sevice)还要依赖eureka。很多旧的项目往微服务迁移的时候并不是一下次全部调整完成的,可能是一步步来的,比如先把所有的服务都容器化,并没有使用微服务全家桶。而且有的项目也不需要微服务全家桶,毕竟微服务不是银弹,很多项目单体结构就足够了,有些项目传统的SOA架构也可以了。(唠叨一句,那种毫无流量毫无并发的项目,几人几天就搞完的强上微服务真的好吗?)但是这些项目也可能是分布式的,容器化部署的,那么这些项目我觉得也是需要配置中心的,因为在分布式、容器化环境下更改配置实在是太麻烦了。可以说配置中心并不是微服务独有的。基于以上原因我提炼了一些配置中心必备的功能,做的尽量简单(陋),开发了AgileConfig,为.net core的生态尽一份绵薄之力。 Github求star: AgileConfig

微服务--SpringCloud

守給你的承諾、 提交于 2020-05-09 20:38:25
第一章 微服务与 Spring Cloud 1.1 架构的衍进 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 互联网产品常常面临庞大的用户量,日均数十亿 PV 的高并发, PB 级别的数据存储等问题的挑战,同时要求保证系统的高可用和弹性伸缩,并且能够根据需要进行快速迭代扩展,这些都对于系统架构提出了很高的要求。 互联网架构从简到繁的演进至今,大体上可分为这么几个阶段:单一应用架构 -> 垂直应用架构 -> 微服务架构。 1.1.1 单一应用架构 当网站流量很小时,只需要一个应用,将所有的功能都部署在一起,用来减少部署节点和成本。这时,用于简化增删改查工作量的数据访问框架(ORM)是关键。我们更加关注的是简化开发工作。如图1-1: 特点: 所有的功能集中在一个工程中。 应用与数据库分开部署。 通过部署应用集群和数据库集群来提高系统的性能。 优点: 项目架构简单,前期开发成本低,周期短,小型项目的首选。 缺点: 全部功能集中在一个工程中,代码耦合,对于大型项目不易扩展及维护。 提高系统性能只能通过扩展集群,成本高。 单点容错率低。 1.1.2 垂直应用架构 · 当访问量逐渐增大,功能逐渐复杂起来,单一应用架构就显得有些捉襟见肘,由于所有的功能都写在同一个工程中

java Spring Cloud面试题附pdf答案(最全版本持续更新)

一笑奈何 提交于 2020-05-09 20:26:43
前言 涵盖各大公司会问到的面试点,同时随着版本的升级,可能也会有一些面试题更新,也会同步保持更新,因为篇幅原因(其实是我懒,哈哈)所以列了一部分答案,所有的答案见下文,总共485页合计20个技术点,文末自取pdf. 1、什么是 Spring Cloud? Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。 2、使用 Spring Cloud 有什么优势? 使用 Spring Boot 开发分布式微服务时,我们面临以下问题: 1、与分布式系统相关的复杂性-这种开销包括网络问题,延迟开销,带宽问题,安全问题。 2、服务发现-服务发现工具管理群集中的流程和服务如何查找和互相交谈。它涉及一个服务目录,在该目录中注册服务,然后能够查找并连接到该目录中的服务。 3、冗余-分布式系统中的冗余问题。 4、负载平衡 --负载平衡改善跨多个计算资源的工作负荷,诸如计算机,计算机集群,网络链路,中央处理单元,或磁盘驱动器的分布。 5、性能-问题 由于各种运营开销导致的性能问题。 6、部署复杂性-Devops 技能的要求。 3、服务注册和发现是什么意思?Spring Cloud 如何实现? 当我们开始一个项目时