springcloud项目

整体理解

要想了解java咋用,就得知道能干什么?解决啥问题?

  1. 做稳定且便于用户使用的固定系统(也就是生态完整经得起用户考验)
  2. 不仅仅是做erp,oa这些东西,至少现在来看阿里,jd等一线互联网大厂java写服务器还是比较多的。
  3. 了解一个组件为啥出现,出现的好处,能解决啥问题。(就跟自己为什么选择互联网-搞钱,为啥放弃互联网-自己在互联网里面不挣钱),了解一件事情的本质才是最主要的

就跟那个女的为啥不合你一起吃饭-----人家有男朋友一个道理,自己没有咋办,整一个。这就是感觉互联网技术不断更新迭代的原因,不是啥火学啥,就通过现象看本质

首先在2000年左右的时候互联网中的东西基本是all in one ,就跟梭哈没啥区别,这种显然是不合情理,我们在开发了解一点就是查询数据的操作远远大于对数据库数据的操作,同时一个个业务直接耦合性较强导致,后面维护的时候熵增较大,我们要做的是减少熵增,同时一个比较简单且致命的问题就是我们在操作数据库的时候会导致数据库加锁,加的锁还不是RWLOCK,且粒度较大,会让系统的可用性大打折扣,对用户不友好,对程序员也不太友好。

image

基于之前的那些不好,不自洽的地方就要做出对应的优化,接下来就出来了服务划分等。

服务划分,也就是一个个的【项目】,但是一个个的项目并不能满足服务相互调用,这样就引出注册平台,服务。
Featureeuerka
Consulzookeeperetcd nacos
这五个,其中现在比较火的就是consul和etcd,nacos(个人觉得),各个服务之间的调用有如下的一个结构,
image

其中一系列代码写完了,各个代码之间也通过maven管理引入了,也就是大致的业务框架完成了。
对于服务直接各个可能放在不同的服务器上面(机子)上面,这个时候又出现了问题,,,,在不同机子上面,ip不一样,访问起来不方便(虽然也没人拿ip访问但是确实不方便),这时候就出现了反向代理nginx,nginx也可以做正向代理,同时nginx可以将一些常用到爆炸的东西放到静态资源里面去,加快访问速度,差不对就是这样。代码写完之后就交给运维的同学部署上线

posted @ 2021-12-27 16:09  maskpd  阅读(63)  评论(0编辑  收藏  举报