mvc5网站开发项目下载,国外域名注册,建设一个网站需要提供什么手续,网站建设公司面临的问题目录 一、前言二、单体服务的弊端三、微服务化四、服务如何拆分#xff1f;五、使用微服务的注意事项1、服务如何定义2、服务如何发布和订阅3、服务如何监控4、服务如何治理5、故障如何定位 大家好#xff0c;我是哪吒。
一、前言
微服务已经是Java开发的必备技能#xff… 目录 一、前言二、单体服务的弊端三、微服务化四、服务如何拆分五、使用微服务的注意事项1、服务如何定义2、服务如何发布和订阅3、服务如何监控4、服务如何治理5、故障如何定位 大家好我是哪吒。
一、前言
微服务已经是Java开发的必备技能甲方不管项目大小都想上微服务感觉上了就高大上了牛逼了。
微服务确实给我们带来了一定的便利性但是也带来了麻烦比如学习成本高存在很多不可预见的问题。
我是做互联网项目的刚开始的时候用的是springbootvue的单体架构虽然也用了很多中间件云服务器数据库集群等但终究还是单体服务存在着一定的限制随着业务架构的不断扩大每次功能发布上线都需要每个开发负责人对代码进行打包再进行最后的代码合并这时候就会遇到各种各样的问题代码忘记提交了提交了忘记打包了提交的时候忘记更新了代码冲突了jar包版本不统一、jar包版本冲突等各式各样的问题。
有一次项目部署测试后台通过SVN提交记录进行增量打包然后通过xshell进行Linux服务器程序更新再重启。一套下来差不多需要半个多小时的时间而且因为缺少class文件的原因反反复复更新了三次我都要崩溃了~
你是否也遇到过同样的问题
如果也是这样是时候将架构升级为微服务了。分功能开发每个小团队负责一个功能然后部署为微服务引入Docker容器技术。
系统架构经历了单体服务 - 微服务架构 - 容器化应用- DevOps的发展历程。
微服务的概念是在2014年由Martin Fowler和James Lewis共同提出的他们定义了微服务是由单一应用程序构成的小服务拥有自己的进程和轻量化处理按照业务功能分别处理以全自动的方式部署与其它服务使用HTTP API通讯。同时服务会使用最小规模的集中管理比如Docker每个服务可以使用自己的语言和数据库。
二、单体服务的弊端
部署成本高效率低下团队协作开发成本高两个人同时编写一个类谁先提交谁舒服哈哈系统高可用性差因为所有功能最后都部署在一个war包里运行在同一个Tomcat进程中一旦某一功能出现问题就会导致整个系统的崩盘虽然还有其它机器提供服务但因为一个小问题就挂了一个机器这不蛋疼吗线上发布变慢一般单体服务都是通过人工去更新代码然后再重启一个服务部署了16个机器就要手动替换16次而且可能还会有更多的服务。
想要解决以上问题微服务应运而生。
三、微服务化
微服务化在我看来就是将 传统的单机应用中通过jar包依赖产生的本地调用 改造成 通过RPC远程接口调用。对于一些通用的业务逻辑想办法将其抽象并独立成专门的模块因此对代码复用、分小组开发、单业务理解都大有裨益。
在最近的项目经历里我深有体会比如将一个项目分为公共模块、注册中心、网关模块、管理模块、某个单业务模块等。一个人一个模块自己开发自己的互不干预每个模块独立开发独立部署、独立测试、独立上线、独立运维与其它模块基本上零联系。
可见通过微服务化可以解决应用单体膨胀团队开发耦合度高、测试难、部署难的问题。
四、服务如何拆分
比较常见的是根据不同的业务去拆分一条业务线一个服务这种拆分方式被称为纵向拆分是从业务维度进行拆分。标准是按照业务关联程度来绝对关联比较密切的业务适合拆分成一个微服务而功能相对独立的业务适合拆分成一个微服务。
还有一种拆分方式是横向拆分核心思想是拆分出通用共用的服务就像单体服务中的工具类供每个服务去调用。
五、使用微服务的注意事项
1、服务如何定义
对于微服务而言每个服务都运行在各自的进程中通过定义接口的形式去定义服务约定好接口名、接口参数、接口返回值。
2、服务如何发布和订阅
单体应用时将整个项目都部署在一个war包中接口之间的调用属于进程内的方法调用。
在微服务架构中可以将每个接口注册到注册中心并由注册中心再对外提供服务。
3、服务如何监控
对于一个接口我们最关心的是QPS调用量、AvgTime平均耗时、吞吐量等指标。这时候需要一个通用的监控方案能够覆盖所有业务接口进行数据收集、数据处理、最后到数据展示的全链路功能。
4、服务如何治理
当某个服务有性能问题的时候依赖的服务也会受到影响可以根据实际情况设置一个阈值超过这个时间就进行服务熔断直接返回。
5、故障如何定位
在微服务中一次用户请求可能会依赖多个服务每个服务又部署在不同的节点上如果用户请求出现问题需要一种解决方案能够将一次用户请求进行标记并在多个依赖的服务系统中继续传递以便串联所有路径从而进行故障定位。 哪吒多年工作总结Java学习路线总结搬砖工逆袭Java架构师。 华为OD机试 2023B卷题库疯狂收录中刷题点这里 刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。