最近学习的内容很杂,转型做售前,突然发现很多技术都不太理解,压力很大,但也从中看到了一束通往未来的光芒,在未来,当客户问题起,可以做为技术专家侃侃而谈,同时,精通产品相关的方方面面,可以和各类人物侃侃而谈,指点四方。好了,梦想是美好的,现实很骨感,那就朝着那束光好好努力吧。最近的内容也会写得比较杂,比较乱,比较慢,以自看为主。
微服务架构的风格,就是将单一程序开发成一个微服务,每个微服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP RESTFUL API。这些服务围绕业务能力来划分构建的,并通过完全自动化部署机制来独立部署。这些服务可以使用不同的编程语言,以及不同数据存储技术,以保证最低限度的集中式管理。
微服务具有如下特点。
•按业务划分为一个独立运行的程序,即服务单元。
•服务之间通过HTTP协议相互通信。
•自动化部署。
•可以用不同的编程语言。
•可以用不同的存储技术。
•服务集中化管理。
•微服务是一个分布式系统。
根据Martin Fowler的定义,微服务的“微”是按照业务来划分的。
微服务架构是分布式架构,分布式系统比单体系统更加复杂,主要体现在服务的独立性和服务相互调用的可靠性,以及分布式事务、全局锁、全局Id等。
另外,分布式系统的应用都是集群化部署,会给数据一致性带来困难。
在分布式系统中,服务之间相互依赖,如果一个服务出现了故障或者是网络延迟,在高并发的情况下,会导致线程阻塞,在很短的时间内该服务的线程资源会消耗殆尽,最终使得该服务不可用。由于服务的相互依赖,可能会导致整个系统的不可用,这就是“雪崩效应”。为了防止此类事件的发生,分布式系统必然要采取相应的措施,例如“熔断机制”。
maven相关命令:
(1)mvn clean:删除工程的target目录下的所有文件;
(2)mvn package:将工程打为jar包
(3)mvn package -Dmaven.test.skip=true;打包时跳过测试
(4)mvn compile:编译代码
(5)mvn install:包含了mvn package的所有过程,并且将生成的Jar包安装到本地仓库
(6)mvn spring-boot:run使用spring-boot插件,启动Spring Boot工程。该命令执行时先检查Spring Boot工程源码是否编译,如果工程源码没有编译,则先编译;如果编译了,则启动工程
(7)mvn test测试
(8)mvn idea:idea生成idea项目
(9)mvn jar:jar只打Jar包
(10)mvn validate检验资源是否可用
对比传统的Spring框架,Spring Boot有三大特点:自动配置、起步依赖和Actuator对运行期间状态的监控。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。