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

弘泽建设集团网站网页设计公司蒙特

弘泽建设集团网站,网页设计公司蒙特,做网站需要展示工厂么?,网站制作公司去哪找目录 一、认识微服务 1. 单体架构 2. 分布式架构 3. 微服务 3.1. 特点 3.2. 优点 3.3 缺点 二、微服务设计、拆分原则 1. AKF 拆分原则 2. Y轴#xff08;功能#xff09;关注应用中功能划分#xff0c;基于不同的业务拆分 3. X轴#xff08;水平扩展#xff09…目录 一、认识微服务 1. 单体架构 2. 分布式架构 3. 微服务 3.1. 特点 3.2. 优点 3.3 缺点 二、微服务设计、拆分原则 1. AKF 拆分原则 2. Y轴功能关注应用中功能划分基于不同的业务拆分 3. X轴水平扩展关注水平扩展也就是“加速器解决问题” 4. Z轴数据分区关注服务与数据的优先级划分如按地域划分 4.1. 工程领域常见的Z轴扩展有以下两种方案 单元化架构 数据分区 4.2. 场景说明 4.3. 结论 三、前后端分离原则 四、无状态服务 1. 何为状态服务 2. 场景说明 3. 生活中例子 4. Restful 通信风格 一、认识微服务 随着互联网行业的发展对服务的要求也越来越高服务架构也从单体架构逐渐演变为现在流行的微服务 架构。这些架构之间有怎样的差别呢 1. 单体架构 单体架构将业务的所有功能集中在一个项目中开发打成一个包部署。 单体架构的优缺点如下 优点 架构简单部署成本低 缺点 耦合度高维护困难、升级困难 2. 分布式架构 分布式架构根据业务功能对系统做拆分每个业务功能模块作为独立项目开发称为一个服务。 分布式架构的优缺点 优点 降低服务耦合有利于服务升级和拓展 缺点 服务调用关系错综复杂 分布式架构虽然降低了服务耦合但是服务拆分时也有很多问题需要思考 服务拆分的粒度如何界定服务之间如何调用服务的调用关系如何管理 人们需要制定一套行之有效的标准来约束分布式架构。 3. 微服务 微服务就是将一个单体架构的应用按业务划分为一个个的独立运行的程序即服务它们之间通过 HTTP 协 议进行通信也可以采用消息队列来通信如 RabbitMQKafaka 等可以采用不同的编程语言使用 不同的存储技术自动化部署如 Jenkins减少人为控制降低出错概率。服务数量越多管理起来越复 杂因此采用集中化管理。例如 EurekaZookeeper 等都是比较常见的服务集中化管理框架。微服务是 一种架构风格。一个大型的复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部 署各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好的完成该任务。 3.1. 特点 单一职责微服务拆分粒度更小每一个服务都对应唯一的业务能力做到单一职责 微微服务的服务拆分粒度很小例如一个用户管理就可以作为一个服务。每个服务虽小但“五脏俱 全”。 面向服务面向服务是说每个服务都要对外暴露服务接口API指的就是提供统一标准的接口。 也就是不关心服务的技术实现做到与平台和语言无关也不限定用什么技术实现只要提供 Rest 的接口 即可。 自治自治是说服务间互相独立互不干扰即团队独立、技术独立、数据独立独立部署和交付 团队独立每个服务都是一个独立的开发团队人数不能过多。 技术独立因为是面向服务提供 Rest 接口使用什么技术没有别人干涉。 隔离性强服务调用做好隔离、容错、降级避免出现级联问题 前后端分离采用前后端分离开发提供统一 Rest 接口后端不用再为 PC、移动端开发不同接口。 数据库分离每个服务都使用自己的数据源 部署独立服务间虽然有调用但要做到服务重启不影响其它服务。 有利于持续集成和持续交付。每个服务都是独立的组件可复用可替换降低耦合易维护 Docker 部 署服务 将系统服务层完全独立出来并将服务层抽取为一个一个的微服务。微服务中每一个服务都对应唯一的业务能力遵循单一原则。微服务之间采用 RESTful 等轻量协议传输。 微服务的上述特性其实是在给分布式架构制定一个标准进一步降低服务之间的耦合度提供服务的独立 性和灵活性做到高内聚低耦合因此可以认为微服务是一种经过良好架构设计的分布式架构方案。但 方案该怎么落地选用什么样的技术栈 全球的互联网公司都在积极尝试自己的微服务落地方案。其中在 Java 领域最引人注目的就是 SpringCloud 提供的方案了! 3.2. 优点 团队独立每个服务都是一个独立的开发团队这个小团队可以是 2 到 5 人的开发人员组成技术独立采用去中心化思想服务之间采用 RESTful 等轻量协议通信使用什么技术什么语言开发别人无需干涉前后端分离采用前后端分离开发提供统一 Rest 接口后端不用再为 PC、移动端开发不同接口数据库分离每个微服务都有自己的存储能力可以有自己的数据库。也可以有统一数据库服务拆分粒度更细有利于资源重复利用提高开发效率一个团队的新成员能够更快投入生产微服务易于被一个开发人员理解修改和维护这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值可以更加精准的制定每个服务的优化方案比如扩展提高系统可维护性适用于互联网时代产品迭代周期更短。 3.3 缺点 微服务过多服务治理成本高不利于系统维护分布式系统开发的技术成本高网络问题、容错问题、调用关系、分布式事务等对团队挑战大微服务将原来的函数式调用改为服务调用不管是用 rpc还是 http rest 方式都会增大系统整体延迟。这个是再所难免的这个就需要我们将原来的串行编程改为并发编程甚至异步编程增加了技术门槛多服务运维难度随着服务的增加运维的压力也在增大测试的难度提升。服务和服务之间通过接口来交互当接口有改变的时候对所有的调用方都是有影响的这时自动化测试就显得非常重要了如果要靠人工一个个接口去测试那工作量就太大了所以 API 文档的管理尤为重要。 二、微服务设计、拆分原则 1. AKF 拆分原则 业界对于可扩展的系统架构设计有一个朴素的理念就是通过加机器可以解决容量和可用性问题 如果一台不行就两台。 这一理念在云计算概念疯狂流行的今天得到了广泛的认可对于一个规模迅速增长的系统而言容量和 性能问题当然是首当其冲的。 但随着时间的向前系统规模的增长除了面对性能与容量的问题外还要面对功能与模块数量上的增长 带来的系统复杂性问题以及业务的变化带来的提供差异化服务的问题。然而许多系统在架构设计时为充分 考虑这些问题导致系统重构成为常态而影响业务交付能力还浪费人力财力。对此《可扩展艺术》一 书提出了一个系统可扩展模型--AKF可扩展立方Scalability Cube。 2. Y轴功能关注应用中功能划分基于不同的业务拆分 Y轴扩展会将庞大的整体应用拆分为多个服务每个服务实现一组相关的功能如订单管理、客户管理等。 在工程上常见的方案是服务化架构SOA比如对于一个电子商务平台我们可以拆分成不同的服务 组成类似下面的架构 但通过上图可以发现当服务数量增多时服务调用关系变得复杂为系统添加一个新功能要调用的服 务数变得不可控由此引发了服务管理上的混乱所以一般情况下需要采用服务注册的机制形成服务网 关来进行服务治理 结论 Y 轴就是我们所说的微服务的拆分模式就是基于不同的业务拆分。 3. X轴水平扩展关注水平扩展也就是“加速器解决问题” X轴扩展与我们前面朴素理念是一致的通过绝对平等的复制服务与数据以解决容量与可用性的问题其 实就是将微服务运行多个实例做集群加负载均衡的模式。为了提升单个服务的可用性与容量对每一个 服务进行X轴扩展划分。 结论 X 轴指的就是水平复制很好理解就是讲单体系统多运行几个实例成为集群加负载均衡的模式。 4. Z轴数据分区关注服务与数据的优先级划分如按地域划分 Z轴扩展通常是指基于请求者或用户独特的需求进行系统划分并使得划分出来的子系统相互隔离但又是 完整的。以生产汽车的工厂来举例福特公司为了发展在中国的业务或者利用中国的廉价劳动力在中 国建立一个完整的子工厂与美国工厂一样负责完整的汽车生产。这就是一种Z 轴扩展。 4.1. 工程领域常见的Z轴扩展有以下两种方案 单元化架构 在分布式服务设计领域一个单元Cell就是满足某个分区所有业务操作的自包含闭环。如上面我们说到的Y 轴扩展的SOA架构。 客户端对服务端节点的选择一般是随机的但是如果在此上加Z轴扩展那服务节点的选择将不再是随机 的而是每个单元自成一体。 数据分区 为了性能数据安全上的考虑我们会将一个完整的数据集按一定维度划分出不同的子集 一个分区Shard就是整体数据集的一个子集。比如用尾号来划分用户那同样尾号的那部分用户就可 以认为是同一个分区数据分区一般包括以下几种数据划分形式 数据类型如业务类型数据范围如时间段、用户ID数据热度如用户活跃度、商品热度按读写分如商品描述、商品库存 4.2. 场景说明 比如打车应用一个集群撑不住时分了多个集群后来用户激增还是不够用经过分析发现是乘客和车 主访问量很大就将打车应用拆成了三个分别为乘客服务、车主服务、支付服务。 三个服务的业务特点各不相同独立维护各自都可以再次按需扩展。 4.3. 结论 Z 轴指的就是基于类似的数据分区比如一个互联网打车应用突然火了用户量激增集群模式撑不住 了那就按照用户请求的地区进行数据分区北京、上海、四川等多建几个集群。 三、前后端分离原则 前后端技术分离可以由各自的专家来对各自的领域进行优化这样前端的用户体验优化效果更好。 前后端分离模式下前后端交互界面更清晰就剩下了接口模型后端的接口简洁明了更容易维护。 前端多渠道集成场景更容易实现后端服务无需变更采用统一的数据和模型可以支持多个前端 例如微信 h5 前端、PC 前端、安卓前端、IOS 前端。 四、无状态服务 1. 何为状态服务 状态如果一个数据需要被多个服务共享才能完成一笔交易那么这个数据被称为状态。 无状态服务进而依赖这个“状态”数据的服务被称为有状态服务反之称为无状态服务。 那么这个无状态服务原则并不是说在微服务架构里就不允许存在状态表达的真实意思是要把有状态的业 务服务改变为无状态的计算类服务那么状态数据也就相应的迁移到对应的“有状态数据服务”中。 2. 场景说明 例如我们以前在本地内存中建立的数据缓存、Session 缓存到现在的微服务架构中就应该把这些数据迁 移到分布式缓存中存储让业务服务变成一个无状态的计算节点。迁移后就可以做到按需动态伸缩微 服务应用在运行时动态增删节点就不再需要考虑缓存数据如何同步的问题。也就是对同一个 url 请求没有 上下文关系。 3. 生活中例子 比如空调遥控器你按上下调整温度时空调温度设定值会变化遥控器信号到空调是单向传输。 现在空调显示温度 20 度遥控器 20 度。 如果遥控器与空调之间是有状态的假设你离开空调接收范围调整了遥控器温度变成 19 那回到范围内你按一次升高一度基于原先温度状态遥控器给空调发送一个“提高1度”的指令 就会出现遥控器提高到 20而空调变成21。 如果要空间与空调之前是无状态的假设你离开空调接收范围调整了遥控器温度变成 19 那回到范围内你按一次升高一度遥控器给空调发送一个“设定温度值20”这样两者最终还是相同的 值。 4. Restful 通信风格 基于“无状态通信原则”在这里我直接推荐一个实践优选的 Restful 通信风格 因为他有很多好处 无状态协议 HTTP具备先天优势扩展能力很强。例如需要安全加密时有现成的成熟方案 HTTPS 可 用。JSON 报文序列化轻量简单人与机器均可读学习成本低搜索引擎友好。 语言无关各大热门语言都提供成熟的 Restful API 框架相对其他的一些 RPC 框架生态更完善。
http://www.w-s-a.com/news/631656/

相关文章:

  • 去哪网站备案吗昭通网站建设
  • flash企业网站源码建筑材料采购网站
  • 网站可以换虚拟主机吗部门做网站优点
  • 如何做分类网站信息营销莱芜网页定制
  • 班级网站建设感想中国做视频网站有哪些
  • 做刷票的网站wordpress图片链接插件
  • 给客户做网站图片侵权沈阳做网站的地方
  • 网站开发步骤规划蓝天云免费空间主机
  • 网站字体规范wordpress找不到页面内容编辑
  • 静态网站建设参考文献茂名营销型网站制作公司
  • 君山区建设局网站风铃微网站怎么做
  • 购物网站销售管理合肥网络推广平台
  • 网站建设规划书txt微盘注册帐号
  • 小说网站开发实训报告企业网盘收费标准
  • mvc网站开发医疗医院网站建设
  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做
  • 海南三亚做网站公众号版面设计创意
  • 学校网站建设目的与意义合肥网页定制
  • 网站查询地址网站建设与维护费用
  • 做网站哪些软件比较好合肥外贸网站建设公司
  • 建网站需要哪些条件专业网站设计报价
  • 定制网站开发技术化妆品的网站布局设计图片大全
  • 网站模糊设计发布产品的免费平台有哪些
  • 网站建站什么目录桂林网站建设内容
  • 光明新区城市建设局网站长沙营销型网站制作费用
  • 网站建设制度制定wordpress主题哥
  • 门户网站的种类php网站开发实训心得
  • 流程图制作网页网络优化seo