consul

服务消费和负载(Ribbon)

别来无恙 提交于 2020-03-19 04:57:36
使用RestTemplate调用服务 在上一篇教程中,我们是这样调用服务的,先通过 LoadBalancerClient 选取出对应的服务,然后使用 RestTemplate 进行远程调用。 LoadBalancerClient 就是负载均衡器,默认使用的是 Ribbon 的实现 RibbonLoadBalancerClient,采用的负载均衡策略是轮询。 package com.louis.spring.cloud.consul.consumer.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client

【.net core】电商平台升级之微服务架构应用实战(core-grpc)

回眸只為那壹抹淺笑 提交于 2020-03-16 08:23:46
一、前言 这篇文章本来是继续分享 IdentityServer4 的相关文章,由于之前有博友问我关于 微服务 相关的问题,我就先跳过 IdentityServer4 的分享,进行 微服务 相关的技术学习和分享。 微服务 在我的分享目录里面是放到四月份开始系列文章分享的,这里就先穿越下,提前安排 微服务 应用的开篇文章 电商系统升级之微服务架构的应用 。 本博客以及公众号 坚持以架构的思维来分享技术,不仅仅是单纯的分享怎么使用的Demo 。 二、场景 先来回顾下我上篇文章 Asp.Net Core 中IdentityServer4 授权中心之应用实战 中,电商架构由 单体式架构 拆分升级到 多网关架构 升级之前 升级之后: 然而升级之后问题又来了,由于之前增加了代理商业务并且把 授权中心 和 支付网关 单独拆出来了,这使得公司的业务订单量翻了几十倍,这个时候整个电商系统达到了瓶颈,如果再不找解决方案系统又得宕机了。 2.1 问题及解决方案 经过技术的调研及问题分析,导致这个瓶颈的问题主要有以下几个原因,只需要把下面问题解决就可以得到很大的性能提升 每天的订单量暴增,导致订单数据太大,然而整个电商系统数据存储在一个数据库中,并且是 单表 、 单数据库 (未进行读写分离),以致于订单数据持续暴增。 相关业务需要依赖订单查询,订单数据查询慢以至于拖垮数据库 整个电商系统连接数达到瓶颈

springcloud 配置中心(git+config+consul+databus)

99封情书 提交于 2020-03-15 23:49:01
本文主要实现,基于 Spring Cloud Config和git databus实现配置中心以及配置的动态刷新,以及用户认证,加密,解密的功能(代码地址 点这里 ),本文没有原理性的讲解,就是直接讲述怎么使用,原理请自行阅读官方文档 Spring Cloud Config 是 Spring Cloud 团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持, 它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密 / 解密信息等访问接口; 而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。 Spring Cloud Config 实现了对服务端和客户端中环境变量和属性配置的抽象映射,所以它除了适用于 Spring 构建的应用程序之外,也可以在任何其他语言运行的应用程序中使用。由于 Spring Cloud Config 实现的配置中心默认采用 Git 来存储配置信息,所以使用 Spring Cloud Config 构建的配置服务器,天然就支持对微服务应用配置信息的版本管理,并且可以通过 Git 客户端工具来方便的管理和访问配置内容

Nginx(四) nginx+consul+upasync 在ubnutu18带桌面系统 实现动态负载均衡

青春壹個敷衍的年華 提交于 2020-03-14 09:40:40
1.1 什么是动态负载均衡 传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件,因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upstream可配置化、动态化,无需人工重新加载nginx.conf。这类似分布式的配置中心 1.2 动态负载均衡实现方案 1.Consul+Consul-template 每次发现配置更改需要raload nginx,重启Nginx。(不推荐) 2.Consul+OpenResty 实现无需raload动态负载均衡。(推荐) 3.Consul+upsync+Nginx 实现无需raload动态负载均衡 (推荐) 1.3 常用服务器注册与发现框架 常见服务发现框架 Consul、Eureka、 ZooKeeper以及Etcd ZooKeeper是这种类型的项目中历史最悠久的之一,它起源于Hadoop。它非常成熟、可靠,被许多大公司(YouTube、eBay、雅虎等)使用。 etcd是一个采用HTTP协议的健/值对存储系统,它是一个分布式和功能层次配置系统,可用于构建服务发现系统。其很容易部署、安装和使用,提供了可靠的数据持久化特性。它是安全的并且文档也十分齐全。 2 Consul快速入门 Consul是一款开源的分布式服务注册与发现系统,通过HTTP API可以使得服务注册、发现实现起来非常简单

使用Consul做服务发现的若干姿势

半腔热情 提交于 2020-03-14 03:53:57
从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后来逐步应用于生产环境,并总结了少许使用经验。最开始使用Consul的人不多,为了方便交流创建了一个QQ群,这两年微服务越来越火,使用Consul的人也越来越多,目前群里已有400多人,经常有人问一些问题,比如: 服务注册到节点后,其他节点为什么没有同步? Client是干什么的?(Client有什么作用?) 能不能直接注册到Server?(是否只有Server节点就够了?) 服务信息是保存在哪里的? 如果节点挂了健康检查能不能转移到别的节点? 有些人可能对服务注册和发现还没有概念,有些人可能使用过其它服务发现的工具,比如zookeeper,etcd,会有一些先入为主的经验。这篇文章将结合Consul的官方文档和自己的实际经验,谈一下Consul做服务发现的方式,文中尽量不依赖具体的框架和开发语言,从原理上进行说明,希望能够讲清楚上边的几个问题。 为什么使用服务发现 防止硬编码、容灾、水平扩缩容、提高运维效率等等,只要你想使用服务发现总能找到合适的理由。 一般的说法是因为使用微服务架构。传统的单体架构不够灵活不能很好的适应变化,从而向微服务架构进行转换,而伴随着大量服务的出现,管理运维十分不便,于是开始搞一些自动化的策略,服务发现应运而生。所以如果需要使用服务发现,你应该有一些对服务治理的痛点。

工作记录一-mesos+marathon

泄露秘密 提交于 2020-03-09 07:30:55
################## 1. 环境准备 ##################################### 1. 使用mesosphere的rpm源安装相关软件 rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm yum -y install mesos marathon yum -y install mesosphere-zookeeper 2. 配置zookeeper touch /var/lib/zookeeper/myid echo 1 > /var/lib/zookeeper/myid # 机器在zk中ID为1 vi /etc/zookeeper/conf/zoo.cfg # 2888是主从监视等内部交换数据,3888为选举leader用的,clientPort表示客户端连接端口,一般为2181 server.1=192.168.1.110:2888:3888 3. 配置mesos主从部分 # 主mesos echo 192.168.1.110 | sudo tee /etc/mesos-master/ip cp /etc/mesos-master/ip /etc/mesos-master/hostname #

.NET Core微服务实施之Consul服务发现与治理

a 夏天 提交于 2020-03-08 23:58:43
Consul官网:https://www.consul.io Consul下载地址:https://www.consul.io/downloads.html Consul nuget 命令:Install-Package Consul   我的理解是,Consul是一个服务管理者,系统中所有使用到的服务他都帮你管理好,促销高峰需要新增服务的时候,服务开启来就自动注册到Consul中,服务下线关闭,也自动从Consul注销,无缝衔接,对于使用者来说,你只需要跟Consul说我要某某某服务,Consul就会返回当前在Consul上注册的可用的服务给回你,你也无需像以前那样将服务的地址配置在系统当中,就好像DNS服务器那样,你输入域名,DNS服务器返回其中一个IP地址给你,然后你就可以正常访问, 另外在集群环境下选择服务的策略交给调用方,你可以选择随机、轮询、权重等方式,具体视乎你的需求。 一、Windows系统启动Consul 这里以Windows系统进行演示,实际项目中可以搭建在Linux上,下载到本地之后解压,使用命令行模式进入到Consul目录,输入命令启动Consul服务: consul.exe agent -dev 启动Consul成功,命令行信息中显示,可以使用地址: http://127.0.0.1:8500 打开UI管理界面进行查看管理操作。 二、.NET Core

consul命令

 ̄綄美尐妖づ 提交于 2020-03-07 03:57:40
删除服务 curl --request PUT http://10.135.80.83:8500/v1/agent/service/deregister/{service-name} 来源: CSDN 作者: hvk687 链接: https://blog.csdn.net/hvk687/article/details/104702931

注册中心:Eureka、Zookeeper、Consul异同点简单总结

蓝咒 提交于 2020-03-06 16:44:26
组件名称 语言 CAP 健康检查 对外暴露方式 有无管理界面 SpringCloud集成 Eureka Java AP (弱一致) 可配置化支持 HTTP 有 是 Zookeeper Java CP (强一致) 支持 貌似无,只能用命令行查看 无 是 Consul Go CP (强一致) 支持 HTTP、DNS 有 是 来源: oschina 链接: https://my.oschina.net/zhousc1992/blog/3189108

【微服务】网关Kong整合SpringBoot和Consul设计

天大地大妈咪最大 提交于 2020-03-06 16:32:36
前面的博客已经整理了SpringBoot整合Consul以及Kong的相关文章。这次讲讲对于这套微服务架构如何实施我的理解。 先上图,整体架构图如下: 模块说明: Client: 外部访问应用 Api-GateWay-Cluster:网关集群,外部调用统一入口; Consul-Server-Cluster:Consul服务端集群,用于管理服务注册发现; Monitor-Cluster:服务监控集群,用于拉取Consul上的可用服务,注册到服务网关Kong上; Service1-3:对外服务能力提供方 ConsulClient1-3:服务能力提供方服务器上部署的Consul客户端; 另外,如果使用自定义服务注册的话可以再加入监测脚本,注册到Consul上 其实图一画,整体架构也七七八八了,另外需要说明一点,如果服务仅内部调用,比如基础的用户服务等不用注册在Kong上,直接Service从Consul发现进行调用即可。 来源: oschina 链接: https://my.oschina.net/u/11638/blog/1605726