线程通讯
每个线程都有自己的内存空间(栈),这个空间存在于线程代码运行开始直至结束,期间若线程不与其他线程交互配合,几乎就没有价值。而交互配合,便涉及到线程间的通讯。暂且不表通讯前的安全问题,先熟悉下
有哪些常用的通信方式。
每个线程都有自己的内存空间(栈),这个空间存在于线程代码运行开始直至结束,期间若线程不与其他线程交互配合,几乎就没有价值。而交互配合,便涉及到线程间的通讯。暂且不表通讯前的安全问题,先熟悉下
有哪些常用的通信方式。
SpringBoot 有N种Config方式
N多种,这里只介绍俩基础的,properties文件配置和yml文件配置
配置形式如下
1 | environments.dev.url=https://dev.example.com |
配置形式
1 | environments: |
yml层次清晰,虽然行数多一些,但实际代码并不比properties文件多,所以yml的配置越来越流行
孰优孰劣都不至于深究,习惯了好用即可
类配置
喜欢请点个赞
转载请注明出处:https://www.jianshu.com/u/4915ed24d1e3
如有错误,请务必不吝指正。谢谢
我的博客:https://xzing.github.io/
如果你是IT从业者,你可能听过SOA和微服务的争论,毕竟,现在微服务和敏捷开发应用非常流行。
首先,这两种架构听起来非常相似,他们跟单体应用架构有着明显的区别,单体应用是将所有服务集成到自身中。而这两种每个服务都各自负责一部分,两者对解耦都有一定程度的帮助
二者主要的区别就是服务范围。简而言之,面向服务体系架构(SOA)面向的范围更加企业化(范围更广),而微服务的范围更加应用化。
这里有一些基本的定义来区分(两者):
SOA 是面向企业级的架构,主要用来构建可重用,统一同步的服务API。帮助开发人员更快的构建,并集成其他系统的数据(更关心企业服务)
微服务 是一种构建灵活,可扩展,可伸缩应用的一种架构。(更关心应用架构)
面向服务的体系结构(SOA)是一种软件设计风格,其中服务通过应用组件的形式,通过网络通信协议给其他组件提供服务。面向服务的体系结构的基本原则独立于厂商,产品和技术的。[1]服务是一个独立的功能单元,可以远程访问并独立操作和更新,例如在线检索信用卡对帐单。
根据SOA众多特征可以总结出4个属性:
wikipedia_Service-oriented_architecture
wikipidia_Microsercices
[1]”Chapter 1: Service Oriented Architecture (SOA)”. msdn.microsoft.com. Archived from the original on February 6, 2016. Retrieved September 21, 2016.
喜欢请点个赞
转载请注明出处:https://www.jianshu.com/u/4915ed24d1e3
如有错误,请务必不吝指正。谢谢
我的博客:https://xzing.github.io/
简而言之,微服务架构风格是以一组小服务来开发单个应用程序的方法,每一个服务运行在自己独立的进程中并且使用轻量级的方法通信,通常是一个HTTP API接口。这些服务围绕相关业务范围构建并且由全自动化部署机器独立部署。这些服务只需要最低限度的管理,可以用不同的编程语言去编写并且使用不同的数据存储技术。 ————MartinFowler
微服务具有以下优势:
面临的挑战:
喜欢请点个赞
转载请注明出处:https://www.jianshu.com/u/4915ed24d1e3
如有错误,请务必指正。谢谢
我的博客:https://xzing.github.io/
将软件设计成一系列独立部署的服务的架构方式叫做【微服务】,这个词在过去的几年中越来越火爆。尽管目前尚没有对这种架构风格的明确定义,但是围绕组织结构、业务能力、自动化部署、终端结点的智能化程度,编程语言和数据的去中心化控制这几个方面,这种架构风格有着某些共同的特征。
【微服务】——在软件架构拥挤的街道出现的又一个新词。尽管我们习惯性地投以这类事物轻蔑的一瞥,但是这个小小的词却描述了一种被发现越来越具有吸引力的软件架构风格。在过去的几年中,我们已经看到许多个项目使用了这种风格,目前为止这些项目的结果都是积极的,以至于对我的许多同事而言这已成为构建企业应用的默认风格。然而,令人沮丧的是,没有大量的信息明确指出微服务是什么以及我们如何实现它。
简而言之,微服务架构风格是以一组小服务来开发单个应用程序的方法,每一个服务运行在自己独立的进程中并且使用轻量级的方法通信,通常是一个HTTP API接口。这些服务围绕相关业务范围构建并且由全自动化部署机器独立部署。这些服务只需要最低限度的管理,可以用不同的编程语言去编写并且使用不同的数据存储技术。
若要解释清楚微服务风格,将它与单体风格(一个单个应用程序作为一个独立单元构建)对比将会很有帮助。企业应用程序通常由三个主要部分组成:一个客户端用户界面(由运行在用户机器上的浏览器中的HTML页面和javscript代码组合成),一个数据库(由多个插入到一种常见的,通常是关系型数据库管理系统中的数据表组合成),以及一个服务端应用程序。这个服务端应用程序将会处理HTTP请求,执行领域逻辑,从数据库获取和更新数据,并且选择和填充发送给浏览器的HTML视图。这个服务器端的应用程序就是单体——一个单一的可执行的逻辑。任何对这个系统的改动都需要重新构建和部署一个服务器端应用程序的新版本。
很自然地,这样的单体服务器是构建这样一个系统的一种方式。处理一条请求的所有逻辑都在一个单一的进程中运行,这允许你使用编程语言的基本功能将应用程序拆分成类、函数和命名空间。更谨慎的做法是,你可以在一个开发者的笔记本上运行和测试这个应用程序,并且使用一个部署管道来确保改动都被正确的测试并且部署到了生产环境中。你可以通过在一个负载均衡器后运行多个实例的方式来横向缩放这个单体应用。
单体应用可以被成功运用,但是渐渐地人们对单体应用感到不满——尤其是当越来越多的应用程序被部署到云端。任何改动都会牵一发动全身——哪怕是对应用程序一个小地方的改变都需要整个单体应用被重新构建和部署。随着时间的推移通常会很难保持一个良好的模块结构,使得控制变更仅影响模块内部变得越加困难。如要实现可伸缩,需要变动整个应用程序而不是应用程序的某一部分,这要求更多的资源。
学习时的步骤
1.了解来历,概念,定义
2.使用方式
3.底层实现,原理
首先 微服务 ≠ SpringBoot
“Microservices” became the hot term in 2014, attracting lots of attention as a new way to think about structuring applications. I’d come across this style several years earlier, talking with my contacts both in ThoughtWorks and beyond. It’s a style that many good people find is an effective way to work with a significant class of systems. But to gain any benefit from microservice thinking, you have to understand what it is, how to do it, and why you should usually do something else.
In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.
– James Lewis and Martin Fowler
https://www.martinfowler.com/microservices/
“微服务”成为2014年的热门词汇,吸引了大量关注,成为构建应用程序的新的参考方式之一。
几年前我遇到这种架构方式,并与ThoughtWorks及其他人交流过。
许多优秀的人发现,微服务的方式是架构核心级别服务的有效风格。
但是从微服务思维中受益前,你必须了解它是什么,如何构建,以及为什么应该使用这种方式做系统架构。简而言之:微服务架构是一种将程序分成多个小的子服务,每个服务运行在各自不同的进程中,服务之间通过轻量级通讯机制进行通信,通常是HTTP资源API。
这些服务通过围绕业务进行构建,并且可以通过某些自动部署机制进行独立部署。
这些服务可以使用不同的语言编写,使用各自的存储技术,并且只需要极少的中心化管理。
微服务是一种架构风格,广泛用于拆分模、业务。并且能够自动部署
————微服务课程学习笔记
学习步骤:
ps: 任何问题都可以通过增加一个中间层来解决
————微服务课程学习笔记
From configuration to security, web apps to big data – whatever the infrastructure needs of your application may be, there is a Spring Project to help you build it. Start small and use just what you need – Spring is modular by design.
从配置到安全,从Web应用到大数据 - 无论您的应用程序需要什么样的基础架构,都有一个Spring项目可以帮助您构建它。 从小处着手,只使用你需要的东西 - Spring是模块化的设计。
SpringBoot 表面上看起来非常非常简单,实际上内部是封装了一个完整的Web结构。一个软件框架复杂性是一定存在的。一种是把复杂沉淀到框架内部,方便使用。另一种是将复杂性交给开发者,方便定制化。
了解复杂性的好处:差错、模仿、定制
SpringBoot的好处:独立运行,免配置,集成第三方库
Spring Cloud是一系列软件的统称。具体可以参考官网:https://spring.io/projects/spring-cloud
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state).
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分布式 会话,集群状态)
spring clould 用于分布式环境下
学习Spring的同时,需要客观对待Spring,既要学习优点,又要了解缺点
————微服务课程学习笔记