简述网站开发设计流程,seo厂家电话,网上学学网站开发工程师,p2p网站建设公司初识服务发现及Consul框架的简单使用 1.什么是服务发现#xff1f; 服务发现组件记录了#xff08;大规模#xff09;分布式系统中所有服务的信息#xff0c;人们或者其它服务可以据此找到这些服务。 DNS 就是一个简单的例子。 当然#xff0c;复杂系统的服务发现组件要提…初识服务发现及Consul框架的简单使用 1.什么是服务发现 服务发现组件记录了大规模分布式系统中所有服务的信息人们或者其它服务可以据此找到这些服务。 DNS 就是一个简单的例子。 当然复杂系统的服务发现组件要提供更多的功能例如服务元数据存储、健康监控、多种查询和实时更新等。 服务发现是支撑大规模 SOA 的核心服务。 2.服务发的关键特性 高可用的 服务目录 服务查找 服务注册 3.为什么要使用服务发现 假设我们写的代码会调用 WebService、Rest Api、 Thrift API 的服务。在调用过程中,为了完成一次请求代码需要知道服务实例的网络位置IP 地址和端口。 整个过程对于基于云端的、现代化的微服务应用而言这却是一大难题。 为了更好的让大家了解服务发现的发展过程现在举个例子。 3-1【单体应用】 假设你是项目经理或者公司的架构师正准备组织团队开发一款产品类似滴滴与Uber的出租车调度软件。 其中系统的核心业务有客户端、司机端、定位、通知、支付 传统的架构图为六边形架构即模块化的单体是应用也称单体式应用如下图 单体应用的不足 这种简单方法却有很大的局限性。 一个简单的应用会随着时间推移逐渐变大。在每次的迭代中开发团队都会面对新“故事”需求然后开发许多新代码。 几年后这个小而简单的应用会变成了一个巨大的怪物。 如果有经验的管理者都知道一旦你的应用变成一个又大又复杂的怪物那开发团队肯定很痛苦。 敏捷开发和部署举步维艰其中最主要问题就是这个应用太复杂以至于任何单个开发者都不可能搞懂它。 1 降低开发速度 2 不利于持续性开发 3 模块相互冲突 4 可靠性低 5 重构困难 3-1【微服务】 随着时间的发展和项目的发展业务团队越来越庞大业务越来越复杂单体应用架构已经无法满足项目需求所以微服务就腾空出世了。 许多公司比如Amazon、eBay通过采用微处理结构模式解决了单体应用出现的问题。 其思路不是开发一个巨大的单体式的应用而是将应用分解为小的、互相连接的微服务。 微服务架构的好处 1.单个服务很容易开发、理解和维护。 2.这种架构使得每个服务都可以有专门开发团队来开发。 3.微服务架构模式是每个微服务独立的部署。 4.微服务架构模式使得每个服务独立扩展。 微服务架构的不足 微服务应用是分布式系统由此会带来固有的复杂性。 服务地址目录服务健康度部署困难服务依赖问题数据库分区问题。 如何解决微服务出现的这些问题呢服务发现框架在这时就闪亮登场了。 4.常见的服务发现框架有哪些 常见服务发现框架 Consul、 ZooKeeper以及Etcd ZooKeeper是这种类型的项目中历史最悠久的之一它起源于Hadoop。它非常成熟、可靠被许多大公司YouTube、eBay、雅虎等使用。 etcd是一个采用HTTP协议的健/值对存储系统它是一个分布式和功能层次配置系统可用于构建服务发现系统。其很容易部署、安装和使用提供了可靠的数据持久化特性。它是安全的并且文档也十分齐全。 Zookeeper etcd Consul 产生时间 长 短 短 原生语言 JAVA Go Go 算法 Paxos Raft Raft 多数据中心 不支持 不支持 支持 健康检查 支持 不支持 支持 web管理界面 支持 不支持 支持 http协议 较为复杂 支持 支持 DNS协议 较为复杂 不支持 支持 4.Consul服务发现框架介绍 Consul是强一致性的数据存储使用gossip形成动态集群。它提供分级键/值存储方式不仅可以存储数据而且可以用于注册器件事各种任务从发送数据改变通知到运行健康检查和自定义命令具体如何取决于它们的输出。下面两张图是Consul的原理图 4.Consul配置入门及健康监测 4-1 配置拓扑图 4-2 Consul 集群配置 服务端配置 N1节点 consul agent -server -bootstrap-expect 2 -data-dir ./tmp/consul -noden1 -bind192.168.109.241 -ui-dir ./dist -dcdc1 N2节点 consul agent -server -bootstrap-expect 2 -data-dir ./tmp/consul -noden2 -bind192.168.109.203 -ui-dir ./dist -dcdc1 客户端配置 C1节点 consul agent -data-dir ./tmp/consul -ui-dir ./dist -bind192.168.109.204 -dcdc1 4-3 Consul 服务注册及健康检验 客户端配置 consul agent -data-dir ./tmp/consul -ui-dir ./dist -bind192.168.109.204 -dcdc1 -config-file./conf 查看集群命令 consul info 查看当前consul 信息里面可以找到state属性 consul members 查看consul成员 健康监测 监测Service1.svc服务是否正常 {log_level: TRACE,encrypt: 7TnJPB4lKtjEcCWWjN6jSA,service: {name: web3,tags: [master],address: 127.0.0.1,port: 80,checks: [{http: http://127.0.0.1:1111/Service1.svc,interval: 10s}]}} 5 C#调用Consul源码 https://github.com/PlayFab/consuldotnet 参考资料 http://consul.la/start http://www.alauda.cn/2016/07/20/microservices-service-discovery/ http://mp.weixin.qq.com/s?__bizMzAwNTMxMzg1MAmid2654067913idx1sn57be320f6b196a5b74e459263ea3854dscene2srcid0909dAdQMn3SBkUyX2sNqLMufromtimelineisappinstalled0ptlang2052ADUIN136208196ADSESSION1473379431ADTAGCLIENT.QQ.5485_.0ADPUBNO26602#wechat_redirect https://mp.weixin.qq.com/s?__bizMzA5OTAyNzQ2OAmid208173179idx1sn392c17b136c2bf570429785702d98353scene0keydffc561732c226516d4dccb1f165c5b24e823a11384b262d55dc20e3bd0d4cd21c219e8fc2bb2817fd3ccd46f36db04aascene14uinODY5ODkzMzQwdevicetypeiPhoneOS8.4.1version16020610nettypeWIFIfontScale100pass_ticketyxu6Cmc0yX5TWpekVDtFbQhGNYo%2BPbTVmjkpYiq2xiXv6Mbhq3rZUqZkbefMNm11 转载于:https://www.cnblogs.com/Jeely/p/10790034.html