微服务技术架构实战课件.pptx

上传人(卖家):三亚风情 文档编号:2956927 上传时间:2022-06-15 格式:PPTX 页数:33 大小:1.51MB
下载 相关 举报
微服务技术架构实战课件.pptx_第1页
第1页 / 共33页
微服务技术架构实战课件.pptx_第2页
第2页 / 共33页
微服务技术架构实战课件.pptx_第3页
第3页 / 共33页
微服务技术架构实战课件.pptx_第4页
第4页 / 共33页
微服务技术架构实战课件.pptx_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、微服务技术架构实战背景系统架构持续集成/持续发布典型问题剖析未来规划背景业务背景 巧房主要是为房产中介经纪人房产中介经纪人提供一个安全、稳定、高效、智能的SAAS平台,主要涵盖如下几块功能:房源管理、客源管理、交易管 理、财务管理、人事OA、运营分析等功能。 目前服务4000多家房产中介公司,30W房产经纪人,分布在全国20 多个省份,100多个城市。当前有上海、广州两个IDC机房作为两个分 区并在阿里云上面搭建了第三个分区。单体架构房源管理财务管理客源管理人事OATomcat交易管理运营分析技术挑战开发上线成本高周 期长牵一发而动全身系统扩展、架构演 进难度大成本高应用扩容成本 高、效率低微

2、服务系统架构技术选型Spring Cloud 组件丰富,兼容性好 开发部署,简单快速 系统组件, 扩展性强Kubernetes 管理维护docker,功能强大 超强的扩容、缩容能力 系统稳定,容错能力强基于Spring Cloud和Kubernetes的微服务系统微服务1.0架构核心Eureka微服务2RibbonHystrixFeignEurekaDocker微服务1 DockerKubernetes微服务1RibbonHystrixFeign调用微服务2 Docker 最大限度地实现解耦,开发 效率大大提升、部署上线简 单快速。 各个微服务高内聚,各司其 职,接口设计更加轻量、合 理。 降

3、低了整个服务器的成本,扩容缩容简单易用微服务1.0架构不足 服务上线与下线,调用服务需要一段时间后才从自己 缓存的服务列表中移除。 在客户端做负载均衡,对开发来说需要感知,且微服 务有点重。 无法兼容与使用Kubernetes在微服务运维与监控方面 做的很好的一些功能,比如扩容缩容,灰度发布等等。微服务2.0架构核心 相对于之前的客户端负载均 衡来说,这是典型的服务端 负载均衡,此时客户端非常 轻量,只做业务的处理。 使用Kubernetes代替Eureka做服务治理。 继续使用Spring Cloud中的 其他组件,原来配置name 来访问其他组件的地方,全 部换成使用url来访问。Serv

4、ice1RibbonHystrixFeignhttp:/service2/abc/defService2KubeDNSKubeProxyPod2Feign Ribbon HystrixPod1Feign Ribbon Hystrix 架 构 总 览 图客户端配置中 心 (Spring Cloud Config)Kafka反向代理K8S平台DNSNginx服务网关层网关1(zuul)网关2(zuul)服务BFF层服务BFF1服务BFF2底层服务层底层服务1底层服务2底层服务3底层服务4RabbitMQLTSESRedisKubeDNS+KubeProxyKubeDNS+KubeProxyKube

5、DNS+KubeProxyGit日志平台监控平台NodeDockerFlannelKubeletKube- proxyNodeDockerFlannelKubeletKube- proxyMasterKube-dnsKube-proxydKube- rdashboaApiserverKube-Kube-schedulecontrollermanagerDockerEtcdFlannelKubernetes架构详解配置中心Config Serverconfig-repocommon-onlineservice1-online.ymlonlineGitLabService1Service2调用获取

6、配置调用service2-online.ymlapplication.yml SearchPath中定义两个路径,分别存放服务具体配置与公共配置。 优先使用文件名与服务名完全一致的配置文件,如果没有再去application*.yml中查找并使用找到的配置值。架构详解服务网关1.服务路由:配置时 指定url,服务端负 载均衡找到bff2.Token认证:Filter 中调用用户中心验 证tokenGatewayUserCenter服务路由Token认证gateway-online.ymlzuul:routes:service1bff-route:url: http:/service1bff:8

7、080 path: /api/service1bff/*架构详解服务调用(1)Service1 TestClientService2 TestFacadepublic interfaceTest1Facade public testabc(request);实现接口Service2 TestFacadeImplpublic class Test1FacadeImpl RequestMapping(value = /testabc) public testabc(request)/实现代码调用接口FeignClient(url=$feign.url.service1)public interfa

8、ce TestClient RequestMapping(value = /testabc)public testabc();架构详解服务调用(2)Service1Service2 TestFacadeFeignClient(url=$feign.url.service1) public interfaceTest1Facade RequestMapping(value = /testabc) public testabc(request);Service2 TestFacadeImplpublic class Test1FacadeImpl public testabc(request)/实

9、现代码依赖service2 接口jar包实现接口调用service2接口架构详解服务调用(3)NexusService2-StubService2ImplService1依赖发布appliaction.ymlfeign: url:service1: http:/service2:8080获取stub.jar调用Service1获取配置架构详解日志处理(1)Storm钉钉发送 报警Elastic SearchLog Service查询 数据异常报警 关键字服务负责 人映射Kafka消费日志消费 日志微服务1生成 日志微服务2架构详解日志处理(2)持续集成/持续发布CICD 代码分支管理Devel

10、opFeature1Feature2MasterHotfix1.0Tag1.0.1Tag1.0.2CICD流 程 图LocalIDE代码静态检查GitlabGit Commit消息 校验SonarQube增量代码静态检查合并代码Dev拉取代码全量代码静态检查单元测试DevTest单元测试全量代码静态检查生成镜像Test生成镜像UAT拉取镜像Online拉取镜像DevTestUATOnline部署镜像部署镜像部署镜像部署镜像单元测试UATOnline触发触发KubernetesHarborJenkins典型问题分析服务拆分错了怎么办(1)服务1Start子服务Jvm内部调用子服务b Facade

11、-stubFacade Service Cache Dao子服务a Facade-stubFacade Service Cache Dao服务拆分错了怎么办(2)服务1DaoServiceCache子服务a Facade-stub FacadeStart子服务服务bDaoServiceCacheFacadeFacade-stubFeign调用数据库连接不够问题(1)单体:20(连接数)*10(服务实例数)*1(服务数 量)*100(公司数) =20000连接数微服务:10(连接数)*5(服务实例数)*50(微服 务数量)*100(公司数)=250000 连接数一台数据库服务器所能接受 的连接数

12、也就是几万,微服 务架构下远远超过这个值。Common数 据库Service1.根据公司uuid获取公司数据库信息2.返回公司 数据库信息公司数据库4.访问公司库3.获取数据源数据库连接不够问题(2)微服务:100(连接 数)*5(服务实例数)*1(数据库服务器) * 50(微服务数量)=25000 连接数Common数 据库Service1.根据公 司uuid获 取公司数据库信息2.返回公司 数据库信息公司数据库修改SQL,添加“usecompanyDB”3.以数据库serverId为 4.Mybatis拦截器来key,创建数据源5.访问数据库数据库连接不够问题(3)USE dbName;c

13、onnection.setCatalog( dbName)com.microsoft.sqlserver.jdbc.SQL ServerException: The prepared statement handle 6 is not valid in this context. Please verify that current database, user default schema, and ANSI_NULLS and QUOTED_IDENTIFIER set options are not changed since the handle is prepared.unable to create new native threadCaused by: java.lang.OutOfMemoryError: unable to create new native thread未来规划 架 构 规 划 图客户端KafkaK8S微服务平台DNSNginxRabbitMQLTSESRedis日志平台监控平台灰度发布平 台服务管理平台中间件容器 化中间件管理 平台服务网关1服务网关2微服务BFF1微服务BFF2核心微服务1 核心微服务2NodeJS谢谢聆听!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(微服务技术架构实战课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|