当前位置: 首页 > news >正文

国外网站 icp备案系统网站开发

国外网站 icp备案,系统网站开发,辽宁省建设工程招标网,经营管理培训课程在分布式架构中#xff0c;服务治理是必须面对的问题#xff0c;如果缺乏简单有效治理方案#xff0c;各服务之间只能通过人肉配置的方式进行服务关系管理#xff0c;当遇到服务关系变化时#xff0c;就会变得极其麻烦且容易出错。Consul[1] 是一个用来实现分布式系统服务… 在分布式架构中服务治理是必须面对的问题如果缺乏简单有效治理方案各服务之间只能通过人肉配置的方式进行服务关系管理当遇到服务关系变化时就会变得极其麻烦且容易出错。Consul[1] 是一个用来实现分布式系统服务发现与配置的开源工具。它内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案不再需要依赖其他工具比如 ZooKeeper 等使用起来也较为简单。Consul 架构Consul 集群支持多数据中心在上图中有两个 DataCenter他们通过 Internet 互联为了提高通信效率只有 Server 节点才加入跨数据中心的通信。在单个数据中心中Consul 分为 Client 和 Server 两种节点所有的节点也被称为 AgentServer 节点保存数据Client 负责健康检查及转发数据请求到 Server本身不保存注册信息Server 节点有一个 Leader 和多个 FollowerLeader 节点会将数据同步到 FollowerServer 节点的数量推荐是3个或者5个在 Leader 挂掉的时候会启动选举机制产生一个新 Leader。Consul 集群搭建这里使用 Docker 搭建 3个 Server 节点 1 个 Client 节点API 服务通过 Client 节点进行服务注册和发现。从 Docker Hub 拉取 Consul 镜像docker pull consul 启动 3个 Server 节点 1 个 Client 节点docker-compose.yaml 如下version: 3services:cs1:image: consulcommand: agent -server -client0.0.0.0 -bootstrap-expect3 -nodecs1 -data-dir/datavolumes:- /usr/local/docker/consul/data/cs1:/datacs2:image: consulcommand: agent -server -client0.0.0.0 -retry-joincs1 -nodecs2 -data-dir/datavolumes:- /usr/local/docker/consul/data/cs2:/datadepends_on:- cs1cs3:image: consulcommand: agent -server -client0.0.0.0 -retry-joincs1 -nodecs3 -data-dir/datavolumes:- /usr/local/docker/consul/data/cs3:/datadepends_on:- cs1cc1:image: consulcommand: agent -client0.0.0.0 -retry-joincs1 -ui -nodecc1 -data-dir/dataports:- 8500:8500volumes:- /usr/local/docker/consul/data/cc1:/datadepends_on:- cs2- cs3 主要参数说明参数名解释-server设置为 Server 类型节点不加则为 Client 类型节点-client注册或者查询等一系列客户端对它操作的IP默认是127.0.0.1-bootstrap-expect集群期望的 Server 节点数只有达到这个值才会选举 Leader-node指定节点名称-data-dir数据存放位置-retry-join指定要加入的节点地址组建集群-ui启用 UI 界面集群状态e002ca62ac24  为容器名称可通过 docker ps | grep consul 查看选择任意一个即可查看节点状态和类型docker exec -t e002ca62ac24 consul members 当前为3 个 Server 类型节点 1 个 Client 类型节点。查看 Server 节点类型docker exec -t e002ca62ac24 consul operator raft list-peers 当前为 cs1 为 leader可以测试将 cs1 stop 观察 leader 的重新选举。通过 http://192.168.124.9:8500 UI 界面查看 Consul 节点状态如下(192.168.124.9 是 consul 容器外部访问 IP).NET Core 接入 Consul创建 .NET Core WebAPI3.1 服务 ServiceA2个实例 和 ServiceBNuGet 安装 Consul注册到 Consul 的核心代码如下源码下载[2]public static class ConsulBuilderExtensions {public static IApplicationBuilder RegisterConsul(this IApplicationBuilder app, IHostApplicationLifetime lifetime, ConsulOption consulOption){var consulClient new ConsulClient(x {x.Address new Uri(consulOption.Address);});var registration new AgentServiceRegistration(){ID Guid.NewGuid().ToString(),Name consulOption.ServiceName,// 服务名Address consulOption.ServiceIP, // 服务绑定IPPort consulOption.ServicePort, // 服务绑定端口Check new AgentServiceCheck(){DeregisterCriticalServiceAfter TimeSpan.FromSeconds(5),//服务启动多久后注册Interval TimeSpan.FromSeconds(10),//健康检查时间间隔HTTP consulOption.ServiceHealthCheck,//健康检查地址Timeout TimeSpan.FromSeconds(5)}};// 服务注册consulClient.Agent.ServiceRegister(registration).Wait();// 应用程序终止时服务取消注册lifetime.ApplicationStopping.Register(() {consulClient.Agent.ServiceDeregister(registration.ID).Wait();});return app;} } 添加配置如下Consul: {ServiceName: service-a,ServiceIP: 192.168.124.11, // 当前服务访问 IPServicePort: 8000,ServiceHealthCheck: http://192.168.124.11:8000/healthCheck,Address: http://192.168.124.9:8500 } 注册成功结果如下ServiceB 调用 ServiceA 接口ServiceB 通过 ConsulClient 进行服务发现获取到 ServiceA 的地址然后随机请求请求任意一个实例关键代码如下using (var consulClient new ConsulClient(a a.Address new Uri(_consulOption.Address))) {var services consulClient.Catalog.Service(service-a).Result.Response;if (services ! null services.Any()){// 模拟随机一台进行请求这里只是测试可以选择合适的负载均衡框架var service services.ElementAt(new Random().Next(services.Count()));var client _httpClientFactory.CreateClient();var response await client.GetAsync($http://{service.ServiceAddress}:{service.ServicePort}/test/get);var result await response.Content.ReadAsStringAsync();return result;} } 多次调用结果如下参考资料[1]Consul: https://www.consul.io/[2]源码下载: https://github.com/beckjin/ConsulDotnetSamples
http://www.zqtcl.cn/news/249345/

相关文章:

  • 自定义表单网站网站建设营销型号的区别
  • 有个网站做彩盒的贵阳网站建设托管
  • 网站制作属于什么专业做网站需要什么配置服务器吗
  • 网站开发学习培训广州网站优化关键词公司
  • 毕节金海湖新区城乡建设局网站企业网站的步骤
  • 网站后台设计教程网站建设判断题
  • 珠海网站建设 金蝶天元建设集团有限公司李华
  • 海安市建设局网站成都官网seo技术
  • 网站建设策划书结束语wordpress付费版
  • 进口网站建设做网站用什么格式的图片
  • 青海省住房和城乡建设部网站进入网站空间
  • 做公司简介的开源网站企业seo多少费用
  • 学校网站建设工作方案昆明做网站词排名优化
  • 镇江企业做网站针对人群不同,网站做细分
  • 个人单页网站建设台州网站建设惠店
  • 专做婚礼logo的网站做搜狗pc网站快速排
  • 北京网站建设公司分享网站改版注意事项做网站需要多大空间
  • 主机网站建设制作天津西青区天气预报
  • 网站没有内容可以备案吗横向网站源码
  • 做的网站浏览器提示不安全站优化
  • dede移动端网站源码电子商务网站建设开题报告
  • 做网站价格多少优质做网站哪家好
  • 网站建设及推广服务的合同范本留言网站建设的报告
  • 工程师招聘网站做网站需要公司资质吗
  • 苏州模板网站建站开网店如何运营和推广
  • 换空间网站备案北京网页设计平台
  • 德德模板网站建设步骤可信的品牌网站建设
  • 网站权重0免费好用的ip代理
  • 赣州建设网站公司敬请期待英文怎么写
  • 可以做多边形背景的网站深圳网站建设 套餐