最简单的实现服务高可用的方法就是集群化,也就是分布式部署,但是分布式部署会带来一些问题.比如: 1.各个实例之间的协同(锁) 2.负载均衡 3.热删除 这里通过一个简单的实例来说明如何解决注册发现和负载均衡. 1.先解决依赖,这里只给出zk相关的依赖,pom.xml如下 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> &…
gRPC是一个现代的.高性能.开源的和语言无关的通用RPC框架,基于HTTP2协议设计,序列化使用PB(Protocol Buffer),PB是一种语言无关的高性能序列化框架,基于HTTP2+PB保证了的高性能.go-zero是一个开源的微服务框架,支持http和rpc协议,其中rpc底层依赖gRPC,本文会结合gRPC和go-zero源码从实战的角度和大家一起分析下服务注册与发现和负载均衡的实现原理 基本原理 原理流程图如下: 从图中可以看出go-zero实现了gRPC的resolver和ba…
前言 通过新建两个独立服务--提供者.消费者,模拟两个独立分布的应用,通过使用dubbo+zookeeper来实现远程服务调用. 目录 项目搭建 provider-server consumer-server 实现并测试 provider-server注册 consumer-server远程调用 项目搭建 为了方便,新建一个空的项目: 在空项目上new一个module,使用SpringBoot,作为服务提供者 删除不需要的文件: 在来 new一个module,使用SpringBoot,作为服务消…
服务发现与负载均衡 拓展阅读 : dubbo 原理概念图 2016-03-03 杜亦舒 性能与架构 性能与架构 性能与架构 微信号 yogoup 功能介绍 网站性能提升与架构设计 内容整理自文章“实施微服务,我们需要哪些基础框架” 作者杨波 微服务架构是由一系列职责单一的细粒度服务构成的分布式网状结构,服务之间通过轻量机制进行通信 这时候必然引入一个服务注册发现问题,服务提供方要注册通告服务地址,服务的调用方要能发现目标服务,同时服务提供方一般以集群方式提供服务,也就引入了负载均衡和健康检查问题…
前言 在后台服务开发中,高可用性是构建中核心且重要的一环.服务发现(Service discovery)和负载均衡(Load Balance)一直都是我关注的话题.今天来谈一下我在实际中是如何理解及落地的. 负载均衡 && 服务发现 基础 负载均衡 ,顾名思义,是通过某种手段将流量 / 请求分配到不通的服务器上去,保证后台的每个服务收到的请求都尽可能保持平衡    服务发现 ,就是指客户端按照某种约定的方式主动去(注册中心)寻找服务,然后再连接相应的服务    关于负载均衡的构建与实现,可…
上一篇我们说谈了docker+zookeeper+mesos+marathon集群,本篇我们来谈谈marathon的集群和自动发现服务. marathon的服务自动发现和负载均衡有两种,1是mesos-dns,2是marathon-lb,他们是mesosphere 官网提供的两种服务发现和负载均衡工具.官方的文档主要针对DCOS,针对其它系统的相关中文文档不多,下面是我在Centos7上的安装说明和使用总结. 1. Mesos服务发现与负载均衡 默认情况下,mesos marathon会把app…
参考文档: Marathon-lb介绍:https://docs.mesosphere.com/1.9/networking/marathon-lb/ 参考:http://www.cnblogs.com/kevingrace/p/6845980.html 基于脚本实现服务自发现与负载均衡(供参考,marathon-lb之前的方案): http://dockone.io/article/439 https://github.com/draculavlad/SetUpMesosphereOnCent…
看到一篇介绍 Docker swarm以及如何编排的好文章,挪放到这里,自己学习的同时也分享出来. 原文链接: http://wwwbuild.net/dockerone/414200.html ----- Docker社区目前最热的话题莫过于Docker 1.12的发布, 明显的感觉就是大家都在讨论Docker 1.12的新功能,各种关于1.12的使用手册,文章,深度教程层出不穷, 一句话总结来说, 不知道Docker 1.12都不好意思跟人打招呼了. 个人理解Docker 1.12最大的功能…
作者 | 阿里巴巴技术专家  溪恒 一.需求来源 为什么需要服务发现 在 K8s 集群里面会通过 pod 去部署应用,与传统的应用部署不同,传统应用部署在给定的机器上面去部署,我们知道怎么去调用别的机器的 IP 地址.但是在 K8s 集群里面应用是通过 pod 去部署的, 而 pod 生命周期是短暂的.在 pod 的生命周期过程中,比如它创建或销毁,它的 IP 地址都会发生变化,这样就不能使用传统的部署方式,不能指定 IP 去访问指定的应用. 另外在 K8s 的应用部署里,之前虽然学习了 dep…
原文:https://www.infoq.cn/article/rEzx9X598W60svbli9aK (本文转载自阿里巴巴云原生微信公众号(ID:Alicloudnative)) 一.需求来源 为什么需要服务发现 在 K8s 集群里面会通过 pod 去部署应用,与传统的应用部署不同,传统应用部署在给定的机器上面去部署,我们知道怎么去调用别的机器的 IP 地址.但是在 K8s 集群里面应用是通过 pod 去部署的, 而 pod 生命周期是短暂的.在 pod 的生命周期过程中,比如它创建或销毁,…