consul

重磅:Consul、Terraform、Vagrant 等禁止中国使用!部分 Spring Cloud 用户或受影响

主宰稳场 提交于 2020-08-11 10:35:36
近日, 国外HashiCorp在官网宣布: 不允许中国境内使用、部署和安装该企业旗下的【企业版】产品和软件。 PLEASE NOTE THAT THE SOFTWARE MAY NOT BE USED, DEPLOYED OR INSTALLED IN THE PEOPLE’S REPUBLIC OF CHINA. 请注意,本软件不得在中华人民共和国境内使用、部署或安装。 (开源版等其它版本没有提及) HashiCorp旗下的知名的开源软件: Terraform: Terraform 是一种安全有效地构建、更改和版本控制基础设施的开源工具(基础架构自动化的编排工具)。它的目标是 "Write, Plan, and create Infrastructure as Code", 基础架构即代码,Terraform也 提供了Kubernetes应用程序的完整生命周期管理,包含Pod的创建、删除以及副本控制等。国内众多公有云都支持Terraform。 Consul : 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发,目前在国内也有大量的使用和落地案例。 Vagrant: 也是一个比较流行的虚拟机管理软件,使用 Vagrant 可以让我们用命令直接从云上下载虚拟机的镜像,然后进行创建和管理等。 其中, Consul 有被整合入

SpringBoot + Spring Cloud Eureka 服务注册与发现

家住魔仙堡 提交于 2020-08-11 09:59:31
什么是Spring Cloud Eureka Eureka是Netflix公司开发的开源服务注册发现组件,服务发现可以说是微服务开发的核心功能了,微服务部署后一定要有服务注册和发现的能力,Eureka就是担任这个角色。如果你用过Dubbo的话,Dubbo里服务注册和发现就是通过Zookeeper框架完成的。 Eureka 目前是2.2.x版本,目前官方已经宣布不再维护和更新了,不过Eureka 做注册中心已经在生产环境中大规模使用了,可以说很稳定了。从我个人的角度看,目前大家使用的更多的是阿里的 Nacos 和 Consul 这两个组件实现了不止服务发现和注册,微服务开发不用再去依赖更多的组件和框架。这篇文章模拟一下Eureka Server集群和服务提供者集群和服务消费。 版本说明 SpringCloud + SpringBoot开发微服务并不是版本越新越好,Spring Cloud官方提供了一个版本对应关系。目前最新的就是Hoxton, 对应SpringBoot 2.2.x版本。 准备工作 新建父工程, 主要约定SpringCloud, SpringBoot版本号,我使用的是Hoxton.SR1, SpringBoot2.2。 新建5个子Module,这里两个Eureka Server,两个Service,一个consumer, 两个Eureka

Spring Cloud 系列之 Consul 配置中心

最后都变了- 提交于 2020-08-11 08:50:41
前面我们已经学习过 Spring Cloud Config 了: Spring Cloud 系列之 Config 配置中心(一) Spring Cloud 系列之 Config 配置中心(二) Spring Cloud 系列之 Config 配置中心(三) 它提供了配置中心的功能,但是需要配合 git、svn 或外部存储(例如各种数据库),且需要配合 Spring Cloud Bus 《Spring Cloud 系列之 Bus 消息总线》 实现配置刷新。 前面的课程中我们也学习了 Spring Cloud Consul,当时讲解了它作为注册中心的使用方案,且作为 Spring Cloud 官方推荐替换 Eureka 注册中心的方案。既然使用了 Consul,就可以使用 Consul 提供的配置中心功能,并且不需要额外的 git 、svn、数据库等配合,且无需配合 Bus 即可实现配置刷新。 Spring Cloud 官方声明 Consul 可以作为 Spring Cloud Config 配置中心的替代方案。 官方文档:https://cloud.spring.io/spring-cloud-static/spring-cloud-consul/2.2.2.RELEASE/reference/html/#spring-cloud-consul-config 关于 Consul

ASP.NET Core 服务使用IIS托管注册Consul时的坑

帅比萌擦擦* 提交于 2020-08-11 08:46:20
大家习惯将服务注册写进Startup中的Configure管道配置,用来在服务启动时进行Consul服务注册,如图: 然后由于某些原因,我更适合将服务部署在IIS,部署好之后,点击启动网站,却发现服务并没有注册进Consul,然后我就查其原因: 使用 IIS 在 Windows 上托管 ASP.NET Core Windows 进程激活服务 (WAS) 也就是说,使用IIS托管时,不管是进程内外托管,都会有这个问题,第一个请求时,应用才会运行起来,我用Exceptionless做了实测(进程外托管程序是dotnet),验证后无疑。 解决方案:1. 不管是进程内托管还是进程外托管的方式, 不使用IIS托管需要注册的服务。      2.服务部署在IIS后,手动点击浏览一下网站或其他发请求的方式,来发送第一个请求。 来源: oschina 链接: https://my.oschina.net/u/4260256/blog/4277467

Nginx系列(四)——配置文件自动化管理

最后都变了- 提交于 2020-08-11 02:25:41
Automation 自动化 需要安装Puppet class nginx { package {"nginx": ensure => 'installed',} #确认Nginx已安装 service {"nginx": ensure => 'true', hasrestart => 'true', #确认开机自启 restart => '/etc/init.d/nginx reload', #重启Nginx } file { "nginx.conf": path => '/etc/nginx/nginx.conf', require => Package['nginx'], notify => Service['nginx'], content => template('nginx/templates/nginx.conf.erb'), user=>'root', group=>'root', mode='0644'; } } Chef 安装Chef package 'nginx' do action :install end service 'nginx' do supports :status => true, :restart => true, :reload => true action [ :start, :enable ] end template 'nginx

微服务系列(即将开启)

久未见 提交于 2020-08-11 02:19:18
。。。。 0. 业务代码准备 1. consul的注册发现 及 Webapi业务代码的准备 2. Polly的简单用法(熔断、降级、充实、短路、超时处理) 3. 框架的自行封装 结合 AspectCore 4. Ocelot 路由功能以及与Consul结合 5. Ocelot+Polly、Ocelot的缓存机制、限流机制、熔断机制 6. Ocelot 配合 Jwt 进行校验 7. ID4介绍 和 Ocelot+ Id4 配合校验 8. Nginx + Ocelot集群解决负载问题 来源: oschina 链接: https://my.oschina.net/u/4364212/blog/4282042

k8s实践(2) etcd集群安装

被刻印的时光 ゝ 提交于 2020-08-11 02:00:06
k8s实践系列的相关文件都在github: https://github.com/huangguisu/k8s.git etcd分布式键值存储系统,用于保持集群状态,比如Pod、Service等对象信息。因此我们在k8s集群安装之前,先把搭建好etcd集群。 一、ETCD简介 ​ etcd是由CoreOS团队发的一个分布式一致性的KV存储系统,可用于服务注册发现和共享配置,随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐渐为开发人员所关注。在云计算时代,如何让服务快速透明地接入到计算集群中,如何让共享配置信息快速被集群中的所有机器发现,更为重要的是,如何构建这样一套高可用、安全、易于部署以及响应快速的服务集群,已经成为了迫切需要解决的问题。 1、优点: etcd作为一个受到ZooKeeper与doozer启发而催生的项目,除了拥有与之类似的功能外,更专注于以下四点: 简单: 安装配置简单,而且提供了 HTTP API 进行交互,使用也很简单 安全: 支持 SSL 证书验证 快速: 根据官方提供的 benchmark 数据,单实例支持每秒 2k+ 读操作 可靠: 采用 raft 算法,实现分布式系统数据的可用性和一致性 2、使用场景 1、服务发现(Service Discovery):

How to design a system that can manage configurations in a dynamic way efficiently?

我们两清 提交于 2020-08-10 19:34:30
问题 I am working on designing a system where I need to manage configuration (config files) in a dynamic way across bunch of application servers. I am working with Consul key value store to manage configurations. I created below node in consul kv store for the purpose of managing configurations. {"remoteConfig":"abc-123.tgz", "...."} Here remoteConfig contains the config file that all the app servers will use (atleast this is the design I got). Below is what I am trying to do: All the app servers

.Net Core微服务入门全纪录(二)——Consul-服务注册与发现(上)

北城余情 提交于 2020-08-10 13:29:43
前言 上一篇【 .Net Core微服务入门全纪录(一)——项目搭建 】讲到要做到服务的灵活伸缩,那么需要有一种机制来实现它,这个机制就是服务注册与发现。当然这也并不是必要的,如果你的服务实例很少,并且很稳定,那么就没有必要使用服务注册与发现。 服务注册与发现 服务注册:简单理解,就是有一个注册中心,我们的每个服务实例启动时,都去注册中心注册一下,告诉注册中心我的地址,端口等信息。同样的服务实例要删除时,去注册中心删除一下,注册中心负责维护这些服务实例的信息。 服务发现:既然注册中心维护了各个服务实例的信息,那么客户端通过注册中心就很容易发现服务的变化了。 有了服务注册与发现,客户端就不用再去配置各个服务实例的地址,改为从注册中心统一获取。 那注册中心又是怎么保证每个地址的可用状态呢,假如某个实例挂了怎么办呢?原则上挂掉的实例不应该被客户端获取到,所以就要提到:健康检查 。 健康检查:每个服务都需要提供一个用于健康检查的接口,该接口不具备业务功能。服务注册时把这个接口的地址也告诉注册中心,注册中心会定时调用这个接口来检测服务是否正常,如果不正常,则将它移除,这样就保证了服务的可用性。 常见注册中心有 Consul、ZooKeeper、etcd、Eureka。 Consul Consul官网: https://www.consul.io/ Consul的主要功能有服务注册与发现

疫情期间,学习半年源码,终于拿到了蚂蚁Offer,分享面试过程

纵饮孤独 提交于 2020-08-10 10:01:00
小伙伴年初就一直嚷嚷这要跳槽,但由于今年情况特殊,在家待了大半年,在这期间TA也没有荒废时间,吸取之前的不足,努力钻研 源码,还有框架的知识....... 其实,大大小小的公司面试了很多, 但总没有拿到一个满意的offer,要么package太低 ,要么就是面试被虐。 经过前几次的面试失利,终于明白了什么叫基础不牢,地动山摇。 面试官随便针对一个知识点深入考察一下,就回答不出来,就这样,还怎么能通过面试? 不过,最近收到了小伙伴的捷报,已拿到阿里的offer,公司足够大,base还可以,虽然是个 P6,但还是隐隐感觉到他很满意。 其实,我还是有点疑惑,他之前的基础很一般,咋就突然拿到了阿里的offer 。 后来没忍住,问他: “你最近都干啥了,阿里面试都问你什么了?” 结果,这小伙这大半年居然一直在闭关修炼,把一些基础的源码慢慢都啃了一遍。 最基本的HashMap 和 ConcurrentHashMap 线程池的源码实现 阻塞队列BlockingQueue相关实现 ReentrantLock 实现,以及其内部同步器Sync的实现原理 Future的实现原理 AtomicXXX是如何运转的 技术面 项目中的监控:那个监控指标常见的有哪些? 微服务涉及到的技术以及需要注意的问题有哪些? 注册中心你了解了哪些? consul 的可靠性你了解吗? consul 的机制你有没有具体深入过