应用架构

Java分布式应用技术架构介绍

冷暖自知 提交于 2020-01-07 04:46:25
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 分布式架构的演进 系统架构演化历程-初始阶段架构 初始阶段 的小型系统 应用程序、数据库、文件等所有的资源都在一台服务器上通俗称为LAMP 特征: 应用程序、数据库、文件等所有的资源都在一台服务器上。 描述: 通常服务器操作系统使用linux,应用程序使用PHP开发,然后部署在Apache上,数据库使用Mysql,汇集各种免费开源软件以及一台廉价服务器就可以开始系统的发展之路了。 系统架构演化历程-应用服务和数据服务分离 好景不长,发现随着系统访问量的再度增加,webserver机器的压力在高峰期会上升到比较高,这个时候开始考虑增加一台webserver 特征: 应用程序、数据库、文件分别部署在独立的资源上。 描述: 数据量增加,单台服务器性能及存储空间不足,需要将应用和数据分离,并发处理能力和数据存储空间得到了很大改善。 系统架构演化历程-使用缓存改善性能 特征: 数据库中访问较集中的一小部分数据存储在缓存服务器中,减少数据库的访问次数,降低数据库的访问压力。 描述: 系统访问特点遵循二八定律,即80%的业务访问集中在20%的数据上。 缓存分为本地缓存和远程分布式缓存,本地缓存访问速度更快但缓存数据量有限,同时存在与应用程序争用内存的情况。 系统架构演化历程-使用应用服务器集群 在做完分库分表这些工作后

简单web架构实例应用

♀尐吖头ヾ 提交于 2020-01-06 21:53:37
一、架构图 dns完成解析web1,web2来实现负载均衡 web1,web2使用后台的mysql数据库 web1,web2的页面数据全部放在nfs数据上,实现自动挂载 nfs服务器为web1,web2提供网页数据 10.7.2. 准备工作 设置ip信息 nmcli con add ifname ens33 con-name ens33 type ethernet ipv4.method manual \ ipv4.address 192.158.46.150/24 ipv4.gateway 192.168.46.1 Note 我使用的nmcli修改的ip,当然也是可以手工修改的。 10.7.3. ansible的配置 10.7.3.1. 安装ansible [root@localhost ~]# yum install ansible 10.7.3.2. 添加主机 需要添加如下内容到/etc/ansible/hosts文件中去。 [client] 192.168.46.159 [dns] 192.168.46.158 [web] 192.168.46.157 192.168.46.156 [db] 192.168.46.155 [nfs] 192.168.46.154 [self] 192.168.46.150 10.7.3.3. 配置免密码登陆

C#语法——委托,架构的血液

不问归期 提交于 2020-01-06 18:18:30
本篇文章主要介绍委托的应用。 委托是大家最常见的语法了,但会用与精通之间的差别是巨大的。 一个程序员如果不能精通委托,那么,他永远无法成为高级程序员。 所以,让我们把委托刻到血液里吧。 这样,你才能称为[Developer]。 委托的定义 什么是委托? 委托实际上是一种类型,是一种引用类型。 微软用delegate关键字来声明委托,delegate与int,string,double等关键字一样。都是声明用的。 下面先看下声明代码,这里声明了两个委托。 1 2 public delegate void TestDelegate(string message); public delegate int TestDelegate(MyType m, long num); delegate既然是关键字,和int,string一样,那么,为什么delegate后又跟了一个void或者int呢? 如果他们是同等地位的关键字,为什么可以一起使用呢? 很简单,我们把delegate后面的 【void TestDelegate(string message)】理解为一个变量,是不是就清晰明了了一些。 我们把delegate关键字理解为,是用来专门来定义这种复杂的变量的。而这种复杂的变量可以包含一个返回值和任意数目任意类型的传入参数。 有没有感觉,这个复杂的变量特别像一个函数的定义。 没错,官方定义

k8s架构基础介绍

ぐ巨炮叔叔 提交于 2020-01-06 17:07:17
kubernetes架构 在这张系统架构图中,我们把服务分为运行在工作节点上的服务和组成集群级别控制板的服务。 Kubernetes节点有运行应用容器必备的服务,而这些都是受Master的控制。 每次个节点上当然都要运行Docker。Docker来负责所有具体的映像下载和容器运行。 Kubernetes主要由以下几个核心组件组成: kubectl: k8s是命令行端,用来发送客户的操作指令。 master节点 1. API server[资源操作入口] :是k8s集群的前端接口,各种各样客户端工具以及k8s的其他组件可以通过它管理k8s集群的各种资源。它提供了HTTP/HTTPS RESTful API,即K8S API。 提供了资源对象的唯一操作入口,其他所有组件都必须通过它提供的API来操作资源数据,只有API Server与存储通信,其他模块通过API Server访问集群状态。 第一,是为了保证集群状态访问的安全。 第二,是为了隔离集群状态访问的方式和后端存储实现的方式:API Server是状态访问的方式,不会因为后端存储技术etcd的改变而改变。 作为kubernetes系统的入口,封装了核心对象的增删改查操作,以 RESTFul 接口方式提供给外部客户和内部组件调用。对相关的资源数据“全量查询”+“变化监听”,实时完成相关的业务功能。 2. Scheduler

简单web架构实例应用

拥有回忆 提交于 2020-01-05 10:57:58
一、架构图 dns完成解析web1,web2来实现负载均衡 web1,web2使用后台的mysql数据库 web1,web2的页面数据全部放在nfs数据上,实现自动挂载 nfs服务器为web1,web2提供网页数据 10.7.2. 准备工作 设置ip信息 nmcli con add ifname ens33 con-name ens33 type ethernet ipv4.method manual \ ipv4.address 192.158.46.150/24 ipv4.gateway 192.168.46.1 Note 我使用的nmcli修改的ip,当然也是可以手工修改的。 10.7.3. ansible的配置 10.7.3.1. 安装ansible [root@localhost ~]# yum install ansible 10.7.3.2. 添加主机 需要添加如下内容到/etc/ansible/hosts文件中去。 [client] 192.168.46.159 [dns] 192.168.46.158 [web] 192.168.46.157 192.168.46.156 [db] 192.168.46.155 [nfs] 192.168.46.154 [self] 192.168.46.150 10.7.3.3. 配置免密码登陆

如何设计出优美的Web API?

扶醉桌前 提交于 2020-01-03 12:15:32
本 系列 前序文章索引: 程序员 为什么必须要懂架构? 架构到底是什么,你知道吗? 架构都有哪些,我该怎么选? 架构师都干什么,你知道吗? 架构师, 我们程序员打怪升级的主要方向,它不像某些技能报个培训班就能获得。胜任架构工作需要具备许多技能,既有硬技能还有软技能。俗话说:一口吃不成胖子。从程序员到架构师也无法一蹴而就,它是一个循序渐进、稳步提升的进阶过程,每个阶段都有每个阶段要掌握的技能,多项技能之间还存在先后顺序。如果想尽快转型升级至架构师,那你必须在日常工作中有意识地储备这些技能,接下来老兵哥结合亲身经历来给小伙伴们分享一下: 1. 硬技能 不像产品、管理等条线更加倚重通用技能,从技术条线转产品或管理,入门相对容易一些。但从产品或管理很难转型至架构,架构师必须从开发测试岗做起,在工作中不断提升专业技能和积累实践经验,从一个模块开始,到一个子系统,再到整个系统,最后到多个系统,这是一个循序渐进提升硬技能的过程,也可以看成构建架构师硬技能“点线面”。 1.1 点 老兵哥我刚入行时的岗位就是开发工程师,跟其他几个毕业生一起被安排在自动化测试平台项目组,整个系统由部门资深同事设计的,我们分别负责开发其中某个子系统的几个模块。这个阶段我主要关注函数、类和模块这个粒度,为了做好工作我要钻研编程语言 C/C++,以及熟悉 Visual C++ MFC、Socket 等代码库的使用

转帖: Serverless架构模式简介

空扰寡人 提交于 2020-01-03 02:09:21
Serverless架构模式简介 原贴地址:https://blog.csdn.net/chdhust/article/details/71250099?utm_medium=referral&utm_source=itdadao 一. 简介 Serverless是一种无服务的架构,类似aws lambda。Serverless与跟传统架构不同,由开发者实现的服务端逻辑运行在无状态的计算容器中,它是由事件触发,短暂的(可能只存在于一次请求过程中),完全被第三方管理。另一种思考方式,这是函数服务‘Functions as a Service / FaaS’。 其实Serverless和FaaS是在不同维度概括述这个新架构的特性。Serverless从部署运维形态角度,强调其无需关注底层执行环境的优势;而FaaS则是描述是它以服务化的方式提供函数式计算能力。 在这个领域 AWS Lambda是先行者,随后其他厂商相继推出了自己的函数服务,比如Google Cloud Functions和阿里云函数服务等等。 二. 架构分析 Serverless应用通常基于的Event-driven编程范型。它的开发方式和经典的Event-condition-action (ECA)非常类似。其通常包含如下方面 事件(Event)的触发器:用于描述触发应用逻辑 事件处理器: 应该是无状态、原子化的任务

推荐图书

落花浮王杯 提交于 2020-01-02 16:49:18
 《应用架构设计入门与实例》   目录   第1章 绪论   第2章 应用架构魅力之泉源-双向沟通   第3章 群组之概念   第4章 包装之概念   第5章 实例专题-群组之应用   第6章 实例专题-模拟MFC的ODBC类别   内容提要   随着OOP 、Windows的普及﹐对程序师而言﹐应用架构所扮演的角色﹐越来越重要了。在已来临的O-O软体发展环境中﹐架构观念是软体设计的基础。因之﹐本书专注于这个受大家青睐的软体观念与技术。 原文( http://www.miiceic.org.cn/zhuanti/RJYYPT/index.htm ) 中程在线(北京)科技有限公司 中国信息产业培训网 www.miiceic.org.cn 咨询热线: 400-7068-123 来源: https://www.cnblogs.com/miiceic/archive/2009/11/24/1609656.html

架构风格:你真的懂REST吗?

十年热恋 提交于 2020-01-02 01:47:01
本文探讨如下几个问题: 什么是REST REST包含哪些约束 什么是RESTful 纯RESTful API的难点在哪里 如果你去搜索「什么是REST」的话,大部分情况下,你看到的基本都是RESTful! 这类内容主要说的是: 资源URL应该怎么写 要用GET来获取资源 要用POST来新建资源 要用PUT来更新资源 要用DELETE来删除资源 而实际上REST并不是这些,或者说并不完全是这些! 什么是REST REST全称Representational State Transfer,出自Roy Thomas Fielding博士的博士论文《Architectural Styles and the Design of Network-based Software Architectures》第五章(Fielding博士的这篇论文会在后面单独讨论),一般翻译为「表述性状态转移」。 在论文的第6章第一节提到了为什么会取REST这么一个名字: The name 「Representational State Transfer」 is intended to evoke an image of how a well-designed Web application behaves: a network of web pages (a virtual state-machine),

DBA职业发展之路:去“IOE”等挑战之下,DBA将何去何从?

半城伤御伤魂 提交于 2020-01-01 14:41:01
DBA职业发展之路:去“IOE”等挑战之下,DBA将何去何从? 摘要:随着近些年来,开源、自动化、云化的兴起,DBA职业也正悄然发生一些变化。面对一系列新的挑战,DBA将如何进行职业发展?本文将给出一些建议。 开篇 随着近些年来,开源、自动化、云化的兴起,DBA职业也正悄然发生一些变化。经常有朋友咨询我,职业发展规划;特别是近期Oracle的大幅裁员之后,针对DBA这一职业未来该如何发展?本文是个人对此问题的一些看法,仅供各位参考! 数据是核心 将DBA单词分解一下。其对应的 操作对象:数据 操作介质:库 操作角色:管理员 这里的核心是数据,也是DBA这一角色最大的价值所在。他们最了解数据、最懂得数据的价值;因此DBA后续可发展的一些方向,也基本是与数据有关。 此外,对于数据要有更加宏观的认识,无论是企业的自有数据,还是外部获得;无论是关系数据,还是其他模式数据;无论是保存在数据库中,还是其他诸如日志等介质中,数据对企业都非常有价值,要将数据作为一种"资产"来管理。只有上升到这样的高度,数据相关岗位的价值也就凸显出来。 阶段不同,侧重不同 企业对数据应用水平不同,因而造成工作重心及岗位需求也有所不同。下面简单描述下各个层次: 层次一,是以数据库维护为主,常见表现是"救火队员"型。很多初创企业,都经历过这一过程。数据库维护基本靠人,随着运维体量的增加,需要线性增加人员