Java架构师的第一周相关笔记

  1. 电商业务历史以及业务模式

萌芽期(96-99)、发展期(00-10)、稳定期(稳定至今)

98年11月:腾讯成立

99年5月:8848网成立

99年9月:阿里巴巴

00年5月:卓越网开启B2C模式

03年10月:阿里推出支付宝

10年1月:苏宁易购上线

淘宝商城是天猫的前身

12年1月:淘宝商城改为天猫

12年3月:唯品会上市

19年:天猫双十一交易额2648亿

  1. 什么是B2C?

企业对客户的一种消费模式(一般以网络零售业为主)

  1. B2C的特点?

面向大量的消费者,网站的访问量较大,交易方式简单,对网络的并发行有一定要求。

  1. 什么是C2C?

个人对个人之间的电子商务。(地摊市场)

  1. C2C的系统特点?

网络的访问量是重点,例如:咸鱼,58交易

  1. 什么是B2B?

企业与企业直接通过互联网进行产品服务以及信息的交换。

例如:阿里巴巴

  1. B2B特点?

访问量相对较小,交易周期的流程,以及交易的监督相对复杂。

  1. O2O是啥?

线上与线下相结合。(各类团购、外卖网、滴滴打车等)

针对用户的定制性服务比如:位置定位。

  1. 电商中台造成问题?(偏向于业务)

  1. 重复功能建设和维护带来的反复投资

  1. 系统间的集成和协作成本高昂

  1. 不利于业务的沉淀和持续发展

  1. 技术中台都包括啥?

  1. 什么叫中间件?

中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。(可以理解为双向接口)

  1. 什么叫容器化?

容器化是将应用程序代码和依赖项捆绑到一个单一的虚拟包中。

  1. 什么叫docker?

Docker 是一种开源项目,用于将应用程序自动部署为可在云或本地运行的便携式独立容器。

  1. 什么叫SKU、SPU?

通俗点讲,属性值、特性相同的商品就可以称为一个SPU

SKU即库存进出计量的单位, 可以是以件、盒、托盘等为单位

在服装、鞋类商品中使用最多最普遍。 例如纺织品中一个SKU通常表示:规格、颜色、款式。

  1. 什么叫运维?

运维,本质上是对网络、服务器、服务的生命周期各个阶段的运营与维护,在成本、稳定性、效率上达成一致可接受的状态。

  1. 什么叫云存储?

云储存是一种在线的网络存储方式,也就是将数据储存在多个虚拟服务器中,这些服务器一般都是由第三方提供。

  1. 基本框架结构

  1. 什么是MQ?

MQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据结构。一般用来解决应用解耦,异步消息,流量削峰等问题,实现高性能,高可用,可伸缩和最终一致性架构。

  1. rabbitmQ传输?

RabbitMQ是基于信道Channel的方式来传输数据

  1. 什么是Kafka传输?

Apache Kafka 是一个开源的分布式流处理平台。

  1. Redis

redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

  1. 什么是Jvm?

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

  1. 什么是Oom?

OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了“。

  1. 什么是Uml?

UML 是统一建模语言(Unified Modeling Language)的缩写。UML 提供了标准通用的图形化设计语言,使得在构建计算机应用时,开发团队的成员更高校直观地进行交流,用来绘制软件的蓝图。同时,UML 很好地支持面向对象的设计范式。

  1. 什么是乐观锁和悲观锁?

乐观锁首先来看乐观锁,顾名思义,乐观锁就是持比较乐观态度的锁。就是在操作数据时非常乐观,认为别的线程不会同时修改数据,所以不会上锁,但是在更新的时候会判断在此期间别的线程有没有更新过这个数据。

悲观锁反之,悲观锁就是持悲观态度的锁。就在操作数据时比较悲观,每次去拿数据的时候认为别的线程也会同时修改数据,所以每次在拿数据的时候都会上锁,这样别的线程想拿到这个数据就会阻塞直到它拿到锁。

  1. 什么是Dba?

数据库管理员(Database Administrator,简称DBA)

  1. 什么是缓存击穿?

缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂(意味着对数据库压力相对较大)的key突然失效了(可以理解为redis的缓存突然无了),无数的请求访问会在瞬间给数据库带来巨大的冲击

  1. 什么是缓存雪崩?

缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。

  1. 什么是缓存穿透?

缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,进而给数据库带来压力

  1. 什么是CDN?

CDN其全称是Content Delivery Network,即内容分发网络。

  1. 什么是lua脚本?

Lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序种,从而为程序提供灵活的扩展和定制功能。

  1. 什么叫爬虫?

简而言之,爬虫就是通过不间断地访问互联网,然后从中获取你指定的信息并返回给你。

  1. 什么是Nginx缓存?

Nginx是一个HTTP服务器,它非常适合提供静态文件和代理请求。由于其异步性质,它具有轻量级资源利用率。

  1. 什么是User-agent?

User-Agent 即用户代理,简称“UA”,它是一个特殊字符串头。网站服务器通过识别“UA”来确定用户所使用的操作系统版本、CPU 类型、浏览器版本等信息。

  1. 什么是微服务?

微服务就是采用容器技术的面向服务架构

  1. 什么是Fallback?
    某些核心功能,已经预测到运行时会产生某些意外,于是技术人员编写代码,补充了针对意外情况的功能,统称为fallback的功能。

  1. 什么是Nginx?

“Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务”。

从架构层面看设计模式

  1. 设计模式:是一套反复使用、多数人知晓、经过分类编目的、代码设计经验的总结。

  1. 使用场景:程序软件架构设计、软件架构设计

  1. GOF的23种设计模式:

  1. 设计原则特点:可扩展性、灵活性、组件化可插拔式。

  1. 单一职责原则:实现高内聚、低耦合的指导方针

  1. 开闭原则:在不修改源码的基础下改变对象的行为

  1. 里氏代换原则:继承关系的相关约束(一个可以接受父类的必然可以继承子类)

  1. 依赖倒转原则:面向接口编程或者是面向抽象编程。

  1. 接口隔离原则:将一个接口对应的功能详细化

  1. 合成复用原则:不推荐使用继承关系(抽象继承没关系),推荐使用合成。

  1. 迪米特法则:降低程序的耦合度。

  1. 设计模式的分类

创建型模式、结构型模式(将多个类组合起来来完成一个类完成不了的事)、行为型模式。

  1. 常用的是设计模式

单利模式:

涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。该类还提供了一种访问它唯一对象的方式,其他类可以直接访问该方法获取该对象实例,而不需要实例化该类的对象。

特点:

  1. 单例类只能有一个实例。

  1. 单例类必须自己创建自己的唯一实例。

3、单例类必须给所有其他对象提供这一实例。

优点:

在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例。 避免对资源的多重占用(比如写文件操作)。

  1. 单利模式实现的代码:

  1. 其实单利模式多次输出的是一个对象.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值