栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

后端学习第一天

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

后端学习第一天

微服务

1. 什么是微服务

微服务是分布式架构的一种,分布式架构就是要把服务的过程做拆分,而拆分的过程中会产生各种需要解决的问题,SpringCloud解决的是服务拆分中的服务治理问题。
微服务要做的第一件事就是拆分,传统的单体架构所有的业务功能都写在一起,随着越来越复杂,代码也越来越多,想升级维护就会很困难,所以大型的互联网项目都必须去做拆分。
根据业务功能模块把单体的项目拆分成许多独立的项目,每个项目完成一部分功能,将来独立开发和部署,把这些独立的项目称为一个服务,一个大型的互联网项目会包含数百上千个项目而形成一个服务集群,一个业务需要多个服务来共同完成,服务之间的调用关系越来越复杂的情况下,就需要注册中心来记录每个服务的IP、端口以及它能干什么事,当一个服务需要另一个服务的时候,只需要从注册中心拉去对应的服务信息。
配置中心可以统一地管理服务群中成千上百的配置,当有配置需要变更,通知配置中心即可,它会通知相关的微服务,实现配置的热更新。
服务网关一方面用于对用户的身份做校验,另一方面可以把用户的请求路由到具体的服务,以及做负载均衡。服务接收到请求去处理业务,并访问数据库集群,再把查询到的数据返回给用户。
数据库无法实现高并发,所以还要加入分布式缓存,缓存就是把数据库数据放入到内存当中,为了应对高并发不能是单体缓存,需要做成分布式缓存(集群),用户请求先到缓存再到数据库,对于复杂的搜索功能,简单查询可以走缓存,一些海量数据复杂的搜索统计和分析,缓存无法实现,就需要分布式搜索功能,数据库主要实现数据的写操作和事务类型,对数据安全要求较高的数据存储。
异步通信的消息队列组件,对于分布式或者微服务,一个业务会涉及多个服务,性能会有一定的下降,通过异步通信消息队列变短了响应时间也缩短了,吞吐能力也可以增强,提高服务的并发。
解决服务的一场定位问题:分布式日志服务(统计整个集群中成千上百的服务的运行日志,统一地存储统计分析),系统的监控和链路追踪(实时监控整个集群中每一个服务节点的运行状态、cpu的负载和内存的占用等)。
如何部署?自动化部署:jenkins对服务项目实现自动化的编译,利用docker打包形成镜像,再基于kubernetes和RANCHER实现自动化的部署,这一套统称为持续集成,结合微服务技术和持续集成就是完整的微服务技术栈。



1.认识微服务
微服务架构演变
单体架构:将业务的所有功能集中在一个项目中开发,达成一个包部署
优点:架构简单,部署成本低
缺点:耦合度高,不利于大型项目开发
分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,成为一个服务
优点:降低服务耦合,有利于服务升级拓展
缺点:服务拆分粒度如何?服务集群地址如何维护?服务之间如何实现远程调用?服务健康状态如何感知?
如何解决?webserviceESBHessionDubboSpringCloud*微服务*
微服务是一种经过良好架构设计的分布式架构方案
微服务架构特征:实现高内聚低耦合,降低服务之间的影响和影响的范围,避免整个集群的故障

    单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发面向服务:微服务对外暴露业务接口自治:团队独立、技术独立、数据独立、部署独立隔离性强:服务调用做好隔离、容错、降级、避免出现级联问题
    微服务技术对比
DubboSpringCloudSpringCloudAlibaba
注册中心zookeeper、RedisEureka、Consul专业的注册中心Nacos、Eureka
服务远程调用Dubbo协议Feign(http协议)Dubbo、Feign
配置中心SpringCloudConfig专业的配置中心SpringCloudConfig、Nacos
服务网关SpringCloudGateway最新的响应式编程,吞吐能力强、zuulSpringCloudGateway、zuul
服务监控和保护dubbo-admin服务的响应时间等,功能弱Hystrix核心是保护,实现服务的隔离、熔断、级联故障Sentinel

协议方式不同,提供的接口标准不同,项目架构的方案就不同。
SpringCloud

    服务注册发现EurekaNacosConsul统一配置管理SpringCloudConfigNacos服务远程调用OpenFeignDubbo统一网关路由SpringCloudGatewayZuul服务链路监控ZipkinSleuth流量控制、降级、保护HystixSentinel

    服务拆分与远程调用
    服务拆分注意事项:
    1.不同微服务不要重复开发相同业务
    2.微服务数据独立,不要访问其他微服务的数据库
    3.微服务可以将自己的业务暴露为借口,供其他微服务调用
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/736592.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号