微服务
Lee Howard
江湖人称浩哥~现围绕Java技术栈展开,目标是全栈工程师。
展开
-
一键去除dubbo泛化调用返回的class字段
dubbo 2.7.6以后 支持是否过滤class的开关。generic.include.class=false如果版本比较低,需要手动过滤掉返回体中的class字段。/** * remove specify class field refer to dubbo generic invoke */ private static final SimplePropertyPreFilter CLASS_NAME_PRE_FILTER = new SimpleProperty.原创 2020-09-11 10:19:06 · 1815 阅读 · 1 评论 -
手写RPC通信和服务发现——模拟Dubbo的实现机制(下篇)
接上篇。服务端如何将某些指定的方法暴露出去,比如服务端有:类A,方法A1()类B,方法B1(),方法B2()类C,方法C1()我们想把类中的方法暴露一部分出来,供客户端调用,如:类A :暴露,方法A1():暴露类B:暴露,方法B1():暴露,方法B2():不暴露类C:不暴露,方法C1()怎么才能做到动态方便的进行设置?这种情况下,注解方式则派上了用场。注...原创 2019-09-25 21:34:36 · 173 阅读 · 0 评论 -
手写RPC通信和服务发现——模拟Dubbo的实现机制(上篇)
文章借鉴了鲁班学院中的思路,在此致以感谢。一、背景如果服务在一个应用中调用,那么不需要考虑那么多,因为所有的调用都在一个进程中。但随着分布式微服务架构的逐渐应用,服务之间的调用越来越复杂,越来越多的调用都需要跨服务、跨进程、跨机器。如何有效合理的来解决这些问题,RPC(远程服务调用)通信应运而生,随之衍生了诸多分布式服务调用夸框架。Dubbo则是其中的一种框架,由阿里团队开发,简单的说,...原创 2019-09-25 21:00:40 · 299 阅读 · 0 评论 -
微服务之SpringCloud架构第六篇(下)——配置中心(Apollo)
Apollo客户端依赖于AppId,Apollo Meta Server等环境信息来工作,所以请确保下面的配置正确:1、 AppIdAppId是应用的身份信息,是配置中心的一个项目id,一般和应用名称保持一致,是从服务端获取配置的一个重要信息。有以下3种方式设置,按照优先级从高到底分别为:1、System Property 通过System Property传入app.id...原创 2018-10-07 15:58:12 · 8812 阅读 · 1 评论 -
微服务之SpringCloud架构第六篇(上)——配置中心(Apollo)
随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……并且对配置的期望也越来越高,配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……并且随着采用分布式的开发模式,项目之间的相互引用随着服务的不断增多,相互之间的调用复杂度成指数升高,每次投产或者上线新的项目时苦不堪言,因此需要引用配置中心治理。开源配置中心 spri...原创 2018-10-07 13:27:28 · 1638 阅读 · 0 评论 -
微服务之SpringCloud架构第五篇——Zuul路由转发过滤
1、ZuulZuul主要是路由转发和过滤。路由功能是微服务的一部分,比如/api/a转发到到a服务,/api/b转发到到b服务,转发到具体的服务后,再根据ribbon或者feign访问多实例中具体的某一个节点,实现负载均衡负载,zuul默认和Ribbon结合实现了负载均衡的功能。2、实例0、前期工作,建立在前面项目的基础上1、创建zuul-serveice工程,导入依赖包:&...原创 2018-10-04 00:39:03 · 1114 阅读 · 0 评论 -
微服务之SpringCloud架构第三篇——服务调用及Feign介绍和使用
1、Feign介绍Feign是一个声明式的Web服务客户端,使用Feign可使得Web服务客户端的写入更加方便。 它具有可插拔注释支持,包括Feign注解和JAX-RS注解、Feign还支持可插拔编码器和解码器、Spring Cloud增加了对Spring MVC注释的支持,并HttpMessageConverters在Spring Web中使用了默认使用的相同方式。Spring Cloud...原创 2018-09-07 16:03:13 · 891 阅读 · 0 评论 -
微服务之SpringCloud架构第二篇——服务调用及客户端负载均衡器Ribbon
1、Ribbon介绍Ribbon是一个客户端负载均衡器,它可以很好地控制HTTP和TCP客户端的行为。Ribbon提供基于规则的负载平衡,它支持循环,响应时间加权和开箱即用的随机负载平衡机制,并可以通过插入不同的规则进一步扩展。其中ribbon-eureka中提供了与基于Eureka的服务发现的集成。2、实例1、创建多实例服务提供者在第一篇的基础上,再创建一个客户端eurekaCl...原创 2018-09-07 12:10:59 · 621 阅读 · 0 评论 -
微服务之SpringCloud架构第四篇——Hystrix熔断器的初级使用
1、Hystrix 熔断机制所谓的熔断机制和日常生活中见到电路保险丝是非常相似的,当出现了问题之后,保险丝会自动烧断,以保护我们的电器。 在程序中,为了保证其高可用,单个服务通常会集群部署。由于网络或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性...原创 2018-09-09 22:39:16 · 564 阅读 · 0 评论 -
微服务之SpringCloud架构第一篇——Eureka服务端和客户端
1、SpringCloud 简介Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式环境中运行良好,包括开发人员自己的笔记本电脑,裸机数据中心,以及Cloud Foundry等托管平台。Spring Cl...原创 2018-09-03 22:58:15 · 4309 阅读 · 2 评论